@class-kit/vue 0.1.1 → 0.1.2

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 (274) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +5 -1
  3. package/dist/components/affix.cjs.map +1 -1
  4. package/dist/components/affix.js.map +1 -1
  5. package/dist/components/backtop.cjs.map +1 -1
  6. package/dist/components/backtop.js.map +1 -1
  7. package/dist/components/badge.cjs.map +1 -1
  8. package/dist/components/badge.js.map +1 -1
  9. package/dist/components/barcode.cjs.map +1 -1
  10. package/dist/components/barcode.js.map +1 -1
  11. package/dist/components/breadcrumb.cjs.map +1 -1
  12. package/dist/components/breadcrumb.js.map +1 -1
  13. package/dist/components/button.cjs.map +1 -1
  14. package/dist/components/button.js.map +1 -1
  15. package/dist/components/calendar.cjs.map +1 -1
  16. package/dist/components/calendar.js.map +1 -1
  17. package/dist/components/canvas-editor.cjs.map +1 -1
  18. package/dist/components/canvas-editor.js.map +1 -1
  19. package/dist/components/canvas-image.cjs.map +1 -1
  20. package/dist/components/canvas-image.js.map +1 -1
  21. package/dist/components/chat-textarea.cjs +234 -0
  22. package/dist/components/chat-textarea.cjs.map +1 -0
  23. package/dist/components/chat-textarea.d.ts +2 -0
  24. package/dist/components/chat-textarea.d.ts.map +1 -0
  25. package/dist/components/chat-textarea.js +232 -0
  26. package/dist/components/chat-textarea.js.map +1 -0
  27. package/dist/components/chat-virtual-list.cjs +89 -12
  28. package/dist/components/chat-virtual-list.cjs.map +1 -1
  29. package/dist/components/chat-virtual-list.js +89 -12
  30. package/dist/components/chat-virtual-list.js.map +1 -1
  31. package/dist/components/checkbox.cjs.map +1 -1
  32. package/dist/components/checkbox.js.map +1 -1
  33. package/dist/components/checked.cjs.map +1 -1
  34. package/dist/components/checked.js.map +1 -1
  35. package/dist/components/code-preview.cjs +343 -0
  36. package/dist/components/code-preview.cjs.map +1 -0
  37. package/dist/components/code-preview.d.ts +2 -0
  38. package/dist/components/code-preview.d.ts.map +1 -0
  39. package/dist/components/code-preview.js +341 -0
  40. package/dist/components/code-preview.js.map +1 -0
  41. package/dist/components/color-picker.cjs +1 -1
  42. package/dist/components/color-picker.cjs.map +1 -1
  43. package/dist/components/color-picker.js +1 -1
  44. package/dist/components/color-picker.js.map +1 -1
  45. package/dist/components/comic-reader.cjs.map +1 -1
  46. package/dist/components/comic-reader.js.map +1 -1
  47. package/dist/components/config-provider.cjs.map +1 -1
  48. package/dist/components/config-provider.js.map +1 -1
  49. package/dist/components/config-table.cjs.map +1 -1
  50. package/dist/components/config-table.js.map +1 -1
  51. package/dist/components/countdown.cjs.map +1 -1
  52. package/dist/components/countdown.js.map +1 -1
  53. package/dist/components/danmaku.cjs.map +1 -1
  54. package/dist/components/danmaku.js.map +1 -1
  55. package/dist/components/date-picker.cjs.map +1 -1
  56. package/dist/components/date-picker.js.map +1 -1
  57. package/dist/components/date-range-picker.cjs.map +1 -1
  58. package/dist/components/date-range-picker.js.map +1 -1
  59. package/dist/components/design-effect.cjs.map +1 -1
  60. package/dist/components/design-effect.js.map +1 -1
  61. package/dist/components/drag-drop-board.cjs +24 -0
  62. package/dist/components/drag-drop-board.cjs.map +1 -1
  63. package/dist/components/drag-drop-board.js +24 -0
  64. package/dist/components/drag-drop-board.js.map +1 -1
  65. package/dist/components/draggable.cjs.map +1 -1
  66. package/dist/components/draggable.js.map +1 -1
  67. package/dist/components/ellipsis-text.cjs.map +1 -1
  68. package/dist/components/ellipsis-text.js.map +1 -1
  69. package/dist/components/empty.cjs.map +1 -1
  70. package/dist/components/empty.js.map +1 -1
  71. package/dist/components/field.cjs.map +1 -1
  72. package/dist/components/field.js.map +1 -1
  73. package/dist/components/file-preview.cjs.map +1 -1
  74. package/dist/components/file-preview.js.map +1 -1
  75. package/dist/components/floating-ball.cjs.map +1 -1
  76. package/dist/components/floating-ball.js.map +1 -1
  77. package/dist/components/form.cjs.map +1 -1
  78. package/dist/components/form.js.map +1 -1
  79. package/dist/components/gradient-text.cjs.map +1 -1
  80. package/dist/components/gradient-text.js.map +1 -1
  81. package/dist/components/height-transition.cjs +118 -0
  82. package/dist/components/height-transition.cjs.map +1 -0
  83. package/dist/components/height-transition.d.ts +2 -0
  84. package/dist/components/height-transition.d.ts.map +1 -0
  85. package/dist/components/height-transition.js +116 -0
  86. package/dist/components/height-transition.js.map +1 -0
  87. package/dist/components/input.cjs.map +1 -1
  88. package/dist/components/input.js.map +1 -1
  89. package/dist/components/lazy-image.cjs.map +1 -1
  90. package/dist/components/lazy-image.js.map +1 -1
  91. package/dist/components/live-room.cjs.map +1 -1
  92. package/dist/components/live-room.js.map +1 -1
  93. package/dist/components/loading.cjs.map +1 -1
  94. package/dist/components/loading.js.map +1 -1
  95. package/dist/components/marquee.cjs.map +1 -1
  96. package/dist/components/marquee.js.map +1 -1
  97. package/dist/components/masonry-virtual-list.cjs.map +1 -1
  98. package/dist/components/masonry-virtual-list.js.map +1 -1
  99. package/dist/components/menu.cjs +259 -0
  100. package/dist/components/menu.cjs.map +1 -0
  101. package/dist/components/menu.d.ts +2 -0
  102. package/dist/components/menu.d.ts.map +1 -0
  103. package/dist/components/menu.js +257 -0
  104. package/dist/components/menu.js.map +1 -0
  105. package/dist/components/modal.cjs.map +1 -1
  106. package/dist/components/modal.js.map +1 -1
  107. package/dist/components/multi-column-picker.cjs.map +1 -1
  108. package/dist/components/multi-column-picker.js.map +1 -1
  109. package/dist/components/novel-reader.cjs.map +1 -1
  110. package/dist/components/novel-reader.js.map +1 -1
  111. package/dist/components/number-input.cjs.map +1 -1
  112. package/dist/components/number-input.js.map +1 -1
  113. package/dist/components/orbital-sphere.cjs +128 -0
  114. package/dist/components/orbital-sphere.cjs.map +1 -0
  115. package/dist/components/orbital-sphere.d.ts +2 -0
  116. package/dist/components/orbital-sphere.d.ts.map +1 -0
  117. package/dist/components/orbital-sphere.js +126 -0
  118. package/dist/components/orbital-sphere.js.map +1 -0
  119. package/dist/components/pagination.cjs.map +1 -1
  120. package/dist/components/pagination.js.map +1 -1
  121. package/dist/components/password-input.cjs.map +1 -1
  122. package/dist/components/password-input.js.map +1 -1
  123. package/dist/components/popconfirm.cjs +64 -23
  124. package/dist/components/popconfirm.cjs.map +1 -1
  125. package/dist/components/popconfirm.js +65 -24
  126. package/dist/components/popconfirm.js.map +1 -1
  127. package/dist/components/popup.cjs +1 -3
  128. package/dist/components/popup.cjs.map +1 -1
  129. package/dist/components/popup.js +1 -3
  130. package/dist/components/popup.js.map +1 -1
  131. package/dist/components/progress-bar.cjs.map +1 -1
  132. package/dist/components/progress-bar.js.map +1 -1
  133. package/dist/components/qr-code.cjs.map +1 -1
  134. package/dist/components/qr-code.js.map +1 -1
  135. package/dist/components/radio-group.cjs.map +1 -1
  136. package/dist/components/radio-group.js.map +1 -1
  137. package/dist/components/rating.cjs.map +1 -1
  138. package/dist/components/rating.js.map +1 -1
  139. package/dist/components/rolling-number.cjs.map +1 -1
  140. package/dist/components/rolling-number.js.map +1 -1
  141. package/dist/components/select.cjs.map +1 -1
  142. package/dist/components/select.js.map +1 -1
  143. package/dist/components/signature.cjs +1 -1
  144. package/dist/components/signature.cjs.map +1 -1
  145. package/dist/components/signature.js +1 -1
  146. package/dist/components/signature.js.map +1 -1
  147. package/dist/components/skeleton.cjs.map +1 -1
  148. package/dist/components/skeleton.js.map +1 -1
  149. package/dist/components/slide-captcha.cjs.map +1 -1
  150. package/dist/components/slide-captcha.js.map +1 -1
  151. package/dist/components/swiper.cjs.map +1 -1
  152. package/dist/components/swiper.js.map +1 -1
  153. package/dist/components/switch.cjs.map +1 -1
  154. package/dist/components/switch.js.map +1 -1
  155. package/dist/components/table.cjs.map +1 -1
  156. package/dist/components/table.js.map +1 -1
  157. package/dist/components/tabs.cjs.map +1 -1
  158. package/dist/components/tabs.js.map +1 -1
  159. package/dist/components/tag.cjs.map +1 -1
  160. package/dist/components/tag.js.map +1 -1
  161. package/dist/components/textarea.cjs.map +1 -1
  162. package/dist/components/textarea.js.map +1 -1
  163. package/dist/components/tilt-card.cjs.map +1 -1
  164. package/dist/components/tilt-card.js.map +1 -1
  165. package/dist/components/timeline.cjs.map +1 -1
  166. package/dist/components/timeline.js.map +1 -1
  167. package/dist/components/toast.cjs +161 -22
  168. package/dist/components/toast.cjs.map +1 -1
  169. package/dist/components/toast.d.ts +1 -1
  170. package/dist/components/toast.d.ts.map +1 -1
  171. package/dist/components/toast.js +159 -23
  172. package/dist/components/toast.js.map +1 -1
  173. package/dist/components/tooltip.cjs +56 -17
  174. package/dist/components/tooltip.cjs.map +1 -1
  175. package/dist/components/tooltip.js +57 -18
  176. package/dist/components/tooltip.js.map +1 -1
  177. package/dist/components/typewriter-text.cjs.map +1 -1
  178. package/dist/components/typewriter-text.js.map +1 -1
  179. package/dist/components/upload.cjs.map +1 -1
  180. package/dist/components/upload.js.map +1 -1
  181. package/dist/components/verification-code.cjs.map +1 -1
  182. package/dist/components/verification-code.js.map +1 -1
  183. package/dist/components/video-detail-transition.cjs.map +1 -1
  184. package/dist/components/video-detail-transition.js.map +1 -1
  185. package/dist/components/video-player.cjs.map +1 -1
  186. package/dist/components/video-player.js.map +1 -1
  187. package/dist/components/virtual-list.cjs.map +1 -1
  188. package/dist/components/virtual-list.js.map +1 -1
  189. package/dist/components/virtual-select.cjs.map +1 -1
  190. package/dist/components/virtual-select.js.map +1 -1
  191. package/dist/components/virtual-table.cjs.map +1 -1
  192. package/dist/components/virtual-table.js.map +1 -1
  193. package/dist/{import-transform-DLby8nRN.js → import-transform-BFq5_6VQ.js} +7 -1
  194. package/dist/import-transform-BFq5_6VQ.js.map +1 -0
  195. package/dist/{import-transform-BiXH181o.js → import-transform-CvGKNZyR.js} +7 -1
  196. package/dist/import-transform-CvGKNZyR.js.map +1 -0
  197. package/dist/import-transform.d.ts.map +1 -1
  198. package/dist/index.cjs +952 -79
  199. package/dist/index.cjs.map +1 -1
  200. package/dist/index.d.ts +514 -8
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +934 -82
  203. package/dist/index.js.map +1 -1
  204. package/dist/styles/base.css +168 -41
  205. package/dist/styles/components/barcode.css +206 -0
  206. package/dist/styles/components/button.css +7 -2
  207. package/dist/styles/components/calendar.css +0 -23
  208. package/dist/styles/components/canvas-editor.css +18 -21
  209. package/dist/styles/components/canvas-image.css +0 -23
  210. package/dist/styles/components/chat-textarea.css +124 -0
  211. package/dist/styles/components/chat-virtual-list.css +15 -26
  212. package/dist/styles/components/checkbox.css +39 -23
  213. package/dist/styles/components/checked.css +39 -23
  214. package/dist/styles/components/code-preview.css +208 -0
  215. package/dist/styles/components/color-picker.css +46 -27
  216. package/dist/styles/components/config-table.css +0 -23
  217. package/dist/styles/components/date-picker.css +39 -23
  218. package/dist/styles/components/date-range-picker.css +39 -23
  219. package/dist/styles/components/design-effect.css +5 -1
  220. package/dist/styles/components/drag-drop-board.css +6 -1
  221. package/dist/styles/components/field.css +39 -23
  222. package/dist/styles/components/form.css +39 -23
  223. package/dist/styles/components/gradient-text.css +4 -0
  224. package/dist/styles/components/height-transition.css +50 -0
  225. package/dist/styles/components/input.css +39 -23
  226. package/dist/styles/components/loading.css +47 -0
  227. package/dist/styles/components/menu.css +286 -0
  228. package/dist/styles/components/modal.css +2 -23
  229. package/dist/styles/components/number-input.css +39 -23
  230. package/dist/styles/components/orbital-sphere.css +224 -0
  231. package/dist/styles/components/password-input.css +39 -23
  232. package/dist/styles/components/popconfirm.css +5 -0
  233. package/dist/styles/components/popup.css +2 -23
  234. package/dist/styles/components/qr-code.css +206 -0
  235. package/dist/styles/components/radio-group.css +39 -23
  236. package/dist/styles/components/rating.css +39 -23
  237. package/dist/styles/components/select.css +39 -23
  238. package/dist/styles/components/signature.css +39 -23
  239. package/dist/styles/components/switch.css +39 -23
  240. package/dist/styles/components/table.css +0 -23
  241. package/dist/styles/components/tabs.css +10 -0
  242. package/dist/styles/components/textarea.css +39 -23
  243. package/dist/styles/components/tilt-card.css +2 -23
  244. package/dist/styles/components/toast.css +109 -48
  245. package/dist/styles/components/tooltip.css +8 -23
  246. package/dist/styles/components/typewriter-text.css +4 -0
  247. package/dist/styles/components/upload.css +39 -23
  248. package/dist/styles/components/verification-code.css +39 -23
  249. package/dist/styles/components/virtual-select.css +39 -23
  250. package/dist/styles/components/virtual-table.css +0 -23
  251. package/dist/styles/components.css +1250 -165
  252. package/dist/styles/themes/business-blue.css +375 -0
  253. package/dist/styles/themes/cartoon-3d.css +695 -0
  254. package/dist/styles/themes/creative-purple.css +376 -0
  255. package/dist/styles/themes/dark-tech.css +495 -0
  256. package/dist/styles/themes/liquid-glass.css +526 -21
  257. package/dist/styles/themes/minimal.css +406 -14
  258. package/dist/styles/themes/soft-pink.css +376 -0
  259. package/dist/styles.css +1250 -165
  260. package/dist/vite.cjs +1 -1
  261. package/dist/vite.cjs.map +1 -1
  262. package/dist/vite.d.ts +1 -1
  263. package/dist/vite.js +1 -1
  264. package/dist/vite.js.map +1 -1
  265. package/dist/webpack-loader.cjs +1 -1
  266. package/dist/webpack-loader.js +1 -1
  267. package/package.json +3 -3
  268. package/dist/import-transform-BiXH181o.js.map +0 -1
  269. package/dist/import-transform-DLby8nRN.js.map +0 -1
  270. package/dist/styles/themes/amber.css +0 -19
  271. package/dist/styles/themes/emerald.css +0 -19
  272. package/dist/styles/themes/rose.css +0 -19
  273. package/dist/styles/themes/sky.css +0 -19
  274. package/dist/styles/themes/violet.css +0 -19
@@ -0,0 +1,234 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var core = require('@class-kit/core');
5
+
6
+ const classIconPaths = {
7
+ chevronDown: ["M6 9l6 6 6-6"],
8
+ chevronLeft: ["M15 18l-6-6 6-6"],
9
+ chevronRight: ["M9 18l6-6-6-6"],
10
+ chevronUp: ["M18 15l-6-6-6 6"],
11
+ check: ["M20 6 9 17l-5-5"],
12
+ settings: [
13
+ "M12 15.5A3.5 3.5 0 1 0 12 8a3.5 3.5 0 0 0 0 7.5Z",
14
+ "M19.4 15a1.8 1.8 0 0 0 .36 1.98l.04.04a2.18 2.18 0 0 1-3.08 3.08l-.04-.04a1.8 1.8 0 0 0-1.98-.36 1.8 1.8 0 0 0-1 1.62V21a2.2 2.2 0 0 1-4.4 0v-.06a1.8 1.8 0 0 0-1-1.62 1.8 1.8 0 0 0-1.98.36l-.04.04A2.18 2.18 0 0 1 3.2 16.64l.04-.04A1.8 1.8 0 0 0 3.6 14.6a1.8 1.8 0 0 0-1.62-1H2a2.2 2.2 0 0 1 0-4.4h.06a1.8 1.8 0 0 0 1.62-1 1.8 1.8 0 0 0-.36-1.98l-.04-.04A2.18 2.18 0 0 1 6.36 3.1l.04.04a1.8 1.8 0 0 0 1.98.36h.08A1.8 1.8 0 0 0 9.4 1.88V1.8a2.2 2.2 0 0 1 4.4 0v.06a1.8 1.8 0 0 0 1 1.62 1.8 1.8 0 0 0 1.98-.36l.04-.04A2.18 2.18 0 0 1 19.9 6.16l-.04.04a1.8 1.8 0 0 0-.36 1.98v.08a1.8 1.8 0 0 0 1.62.94h.08a2.2 2.2 0 0 1 0 4.4h-.06A1.8 1.8 0 0 0 19.4 15Z",
15
+ ],
16
+ star: [
17
+ "M12 2l3.09 6.26 6.91 1-5 4.87 1.18 6.87L12 17.77 5.82 21 7 14.13l-5-4.87 6.91-1L12 2Z",
18
+ ],
19
+ x: ["M18 6 6 18", "M6 6l12 12"],
20
+ };
21
+ function classIcon(name, className = "cc-icon") {
22
+ return vue.h("svg", {
23
+ "aria-hidden": "true",
24
+ class: className,
25
+ fill: "none",
26
+ focusable: "false",
27
+ viewBox: "0 0 24 24",
28
+ }, classIconPaths[name].map((d) => vue.h("path", {
29
+ d,
30
+ "stroke-linecap": "round",
31
+ "stroke-linejoin": "round",
32
+ "stroke-width": 2,
33
+ stroke: "currentColor",
34
+ })));
35
+ }
36
+ function resolveClassKitThemeName(theme) {
37
+ if (typeof theme === "string")
38
+ return theme;
39
+ return theme?.name ?? "minimal";
40
+ }
41
+ vue.defineComponent({
42
+ name: "ClassConfigProvider",
43
+ props: {
44
+ class: {
45
+ type: String,
46
+ default: "",
47
+ },
48
+ locale: {
49
+ type: Object,
50
+ default: undefined,
51
+ },
52
+ style: {
53
+ type: [String, Object, Array],
54
+ default: undefined,
55
+ },
56
+ theme: {
57
+ type: [String, Object],
58
+ default: "minimal",
59
+ },
60
+ },
61
+ setup(props, { slots }) {
62
+ const version = vue.ref(0);
63
+ const applyConfig = () => {
64
+ core.configureClassComponents({
65
+ locale: props.locale,
66
+ theme: props.theme,
67
+ });
68
+ version.value += 1;
69
+ };
70
+ vue.watch(() => [props.locale, props.theme], applyConfig, {
71
+ deep: true,
72
+ immediate: true,
73
+ });
74
+ return () => vue.h("div", {
75
+ class: ["cc-config-provider", props.class].filter(Boolean),
76
+ "data-cc-theme": resolveClassKitThemeName(props.theme),
77
+ style: props.style,
78
+ }, [
79
+ vue.h("div", { key: version.value, class: "cc-config-provider__content" }, slots.default?.()),
80
+ ]);
81
+ },
82
+ });
83
+ function optionalBooleanProp() {
84
+ return { type: Boolean, default: undefined };
85
+ }
86
+ function getVueTextareaMetrics(element) {
87
+ const computed = window.getComputedStyle(element);
88
+ const fontSize = Number.parseFloat(computed.fontSize) || 14;
89
+ const lineHeight = Number.parseFloat(computed.lineHeight) || fontSize * 1.5;
90
+ const paddingY = (Number.parseFloat(computed.paddingTop) || 0) +
91
+ (Number.parseFloat(computed.paddingBottom) || 0);
92
+ const borderY = (Number.parseFloat(computed.borderTopWidth) || 0) +
93
+ (Number.parseFloat(computed.borderBottomWidth) || 0);
94
+ return { borderY, lineHeight, paddingY };
95
+ }
96
+ const ClassChatTextarea = /*#__PURE__*/ vue.defineComponent({
97
+ name: "ClassChatTextarea",
98
+ inheritAttrs: false,
99
+ props: {
100
+ className: { type: String, default: "cc-chat-textarea" },
101
+ clearable: { type: Boolean, default: true },
102
+ clearIcon: {
103
+ type: null,
104
+ default: () => classIcon("x"),
105
+ },
106
+ clearLabel: {
107
+ type: String,
108
+ default: () => core.getClassComponentsLocale().inputClearLabel,
109
+ },
110
+ defaultValue: { type: String, default: "" },
111
+ disabled: optionalBooleanProp(),
112
+ maxRows: { type: Number, default: 3 },
113
+ minRows: { type: Number, default: 1 },
114
+ modelValue: String,
115
+ placeholder: String,
116
+ readOnly: optionalBooleanProp(),
117
+ readonly: optionalBooleanProp(),
118
+ textareaClass: { type: String, default: "cc-chat-textarea__control" },
119
+ textareaStyle: Object,
120
+ value: String,
121
+ },
122
+ emits: ["change", "input", "update:modelValue", "update:value"],
123
+ setup(props, { attrs, emit, expose }) {
124
+ const textareaRef = vue.ref(null);
125
+ const controller = new core.ChatTextareaController({
126
+ maxRows: props.maxRows,
127
+ minRows: props.minRows,
128
+ value: props.modelValue ?? props.value ?? props.defaultValue,
129
+ });
130
+ const state = vue.ref(controller.getState());
131
+ const controlled = vue.computed(() => props.modelValue !== undefined || props.value !== undefined);
132
+ let resizeObserver;
133
+ const resize = () => {
134
+ const element = textareaRef.value;
135
+ if (!element || typeof window === "undefined")
136
+ return;
137
+ const { borderY, lineHeight, paddingY } = getVueTextareaMetrics(element);
138
+ const minHeight = lineHeight * state.value.minRows + paddingY + borderY;
139
+ const maxHeight = lineHeight * state.value.maxRows + paddingY + borderY;
140
+ element.style.height = "auto";
141
+ const nextHeight = Math.min(Math.max(element.scrollHeight, minHeight), maxHeight);
142
+ element.style.height = `${nextHeight}px`;
143
+ element.style.overflowY =
144
+ element.scrollHeight > maxHeight + 1 ? "auto" : "hidden";
145
+ };
146
+ const syncState = () => {
147
+ state.value = controller.update({
148
+ maxRows: props.maxRows,
149
+ minRows: props.minRows,
150
+ value: controlled.value
151
+ ? (props.modelValue ?? props.value ?? "")
152
+ : state.value.value,
153
+ });
154
+ vue.nextTick(resize);
155
+ };
156
+ vue.watch(() => [props.maxRows, props.minRows, props.modelValue, props.value], syncState);
157
+ vue.onMounted(() => {
158
+ resize();
159
+ if (typeof ResizeObserver === "undefined" || !textareaRef.value)
160
+ return;
161
+ resizeObserver = new ResizeObserver(resize);
162
+ resizeObserver.observe(textareaRef.value);
163
+ });
164
+ vue.onBeforeUnmount(() => {
165
+ resizeObserver?.disconnect();
166
+ });
167
+ const commit = (nextValue, event) => {
168
+ const nextState = controller.setValue(nextValue);
169
+ if (!controlled.value)
170
+ state.value = nextState;
171
+ emit("update:modelValue", nextValue);
172
+ emit("update:value", nextValue);
173
+ emit("input", nextValue, event);
174
+ emit("change", nextValue, event);
175
+ vue.nextTick(resize);
176
+ };
177
+ expose({
178
+ blur: () => textareaRef.value?.blur(),
179
+ focus: () => textareaRef.value?.focus(),
180
+ getElement: () => textareaRef.value,
181
+ });
182
+ return () => {
183
+ const locked = props.disabled || props.readOnly || props.readonly;
184
+ const currentValue = controlled.value
185
+ ? (props.modelValue ?? props.value ?? "")
186
+ : state.value.value;
187
+ const canClear = props.clearable && currentValue !== "" && !locked;
188
+ return vue.h("div", {
189
+ class: props.className,
190
+ "data-disabled": Boolean(props.disabled),
191
+ "data-readonly": Boolean(props.readOnly || props.readonly),
192
+ "data-scrollable": currentValue.length > 0,
193
+ }, [
194
+ vue.h("textarea", {
195
+ ...attrs,
196
+ class: [
197
+ props.textareaClass,
198
+ canClear ? "cc-chat-textarea__control--clearable" : "",
199
+ ],
200
+ disabled: props.disabled,
201
+ placeholder: props.placeholder,
202
+ readonly: props.readOnly || props.readonly,
203
+ ref: textareaRef,
204
+ rows: state.value.minRows,
205
+ style: {
206
+ "--cc-chat-textarea-max-rows": state.value.maxRows,
207
+ "--cc-chat-textarea-min-rows": state.value.minRows,
208
+ ...(props.textareaStyle ?? {}),
209
+ },
210
+ value: currentValue,
211
+ onInput: (event) => {
212
+ if (locked)
213
+ return;
214
+ commit(event.currentTarget.value, event);
215
+ },
216
+ }),
217
+ canClear
218
+ ? vue.h("button", {
219
+ "aria-label": props.clearLabel,
220
+ class: "cc-chat-textarea__clear",
221
+ type: "button",
222
+ onClick: (event) => {
223
+ commit("", event);
224
+ textareaRef.value?.focus();
225
+ },
226
+ }, props.clearIcon)
227
+ : null,
228
+ ]);
229
+ };
230
+ },
231
+ });
232
+
233
+ exports.ClassChatTextarea = ClassChatTextarea;
234
+ //# sourceMappingURL=chat-textarea.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-textarea.cjs","sources":["../../src/index.ts"],"names":["h","defineComponent","ref","configureClassComponents","watch","getClassComponentsLocale","ChatTextareaController","computed","nextTick","onMounted","onBeforeUnmount"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { ClassChatTextarea } from "../index";
2
+ //# sourceMappingURL=chat-textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-textarea.d.ts","sourceRoot":"","sources":["../../src/components/chat-textarea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,232 @@
1
+ import { defineComponent, ref, watch, h, computed, onMounted, onBeforeUnmount, nextTick } from 'vue';
2
+ import { ChatTextareaController, getClassComponentsLocale, configureClassComponents } from '@class-kit/core';
3
+
4
+ const classIconPaths = {
5
+ chevronDown: ["M6 9l6 6 6-6"],
6
+ chevronLeft: ["M15 18l-6-6 6-6"],
7
+ chevronRight: ["M9 18l6-6-6-6"],
8
+ chevronUp: ["M18 15l-6-6-6 6"],
9
+ check: ["M20 6 9 17l-5-5"],
10
+ settings: [
11
+ "M12 15.5A3.5 3.5 0 1 0 12 8a3.5 3.5 0 0 0 0 7.5Z",
12
+ "M19.4 15a1.8 1.8 0 0 0 .36 1.98l.04.04a2.18 2.18 0 0 1-3.08 3.08l-.04-.04a1.8 1.8 0 0 0-1.98-.36 1.8 1.8 0 0 0-1 1.62V21a2.2 2.2 0 0 1-4.4 0v-.06a1.8 1.8 0 0 0-1-1.62 1.8 1.8 0 0 0-1.98.36l-.04.04A2.18 2.18 0 0 1 3.2 16.64l.04-.04A1.8 1.8 0 0 0 3.6 14.6a1.8 1.8 0 0 0-1.62-1H2a2.2 2.2 0 0 1 0-4.4h.06a1.8 1.8 0 0 0 1.62-1 1.8 1.8 0 0 0-.36-1.98l-.04-.04A2.18 2.18 0 0 1 6.36 3.1l.04.04a1.8 1.8 0 0 0 1.98.36h.08A1.8 1.8 0 0 0 9.4 1.88V1.8a2.2 2.2 0 0 1 4.4 0v.06a1.8 1.8 0 0 0 1 1.62 1.8 1.8 0 0 0 1.98-.36l.04-.04A2.18 2.18 0 0 1 19.9 6.16l-.04.04a1.8 1.8 0 0 0-.36 1.98v.08a1.8 1.8 0 0 0 1.62.94h.08a2.2 2.2 0 0 1 0 4.4h-.06A1.8 1.8 0 0 0 19.4 15Z",
13
+ ],
14
+ star: [
15
+ "M12 2l3.09 6.26 6.91 1-5 4.87 1.18 6.87L12 17.77 5.82 21 7 14.13l-5-4.87 6.91-1L12 2Z",
16
+ ],
17
+ x: ["M18 6 6 18", "M6 6l12 12"],
18
+ };
19
+ function classIcon(name, className = "cc-icon") {
20
+ return h("svg", {
21
+ "aria-hidden": "true",
22
+ class: className,
23
+ fill: "none",
24
+ focusable: "false",
25
+ viewBox: "0 0 24 24",
26
+ }, classIconPaths[name].map((d) => h("path", {
27
+ d,
28
+ "stroke-linecap": "round",
29
+ "stroke-linejoin": "round",
30
+ "stroke-width": 2,
31
+ stroke: "currentColor",
32
+ })));
33
+ }
34
+ function resolveClassKitThemeName(theme) {
35
+ if (typeof theme === "string")
36
+ return theme;
37
+ return theme?.name ?? "minimal";
38
+ }
39
+ defineComponent({
40
+ name: "ClassConfigProvider",
41
+ props: {
42
+ class: {
43
+ type: String,
44
+ default: "",
45
+ },
46
+ locale: {
47
+ type: Object,
48
+ default: undefined,
49
+ },
50
+ style: {
51
+ type: [String, Object, Array],
52
+ default: undefined,
53
+ },
54
+ theme: {
55
+ type: [String, Object],
56
+ default: "minimal",
57
+ },
58
+ },
59
+ setup(props, { slots }) {
60
+ const version = ref(0);
61
+ const applyConfig = () => {
62
+ configureClassComponents({
63
+ locale: props.locale,
64
+ theme: props.theme,
65
+ });
66
+ version.value += 1;
67
+ };
68
+ watch(() => [props.locale, props.theme], applyConfig, {
69
+ deep: true,
70
+ immediate: true,
71
+ });
72
+ return () => h("div", {
73
+ class: ["cc-config-provider", props.class].filter(Boolean),
74
+ "data-cc-theme": resolveClassKitThemeName(props.theme),
75
+ style: props.style,
76
+ }, [
77
+ h("div", { key: version.value, class: "cc-config-provider__content" }, slots.default?.()),
78
+ ]);
79
+ },
80
+ });
81
+ function optionalBooleanProp() {
82
+ return { type: Boolean, default: undefined };
83
+ }
84
+ function getVueTextareaMetrics(element) {
85
+ const computed = window.getComputedStyle(element);
86
+ const fontSize = Number.parseFloat(computed.fontSize) || 14;
87
+ const lineHeight = Number.parseFloat(computed.lineHeight) || fontSize * 1.5;
88
+ const paddingY = (Number.parseFloat(computed.paddingTop) || 0) +
89
+ (Number.parseFloat(computed.paddingBottom) || 0);
90
+ const borderY = (Number.parseFloat(computed.borderTopWidth) || 0) +
91
+ (Number.parseFloat(computed.borderBottomWidth) || 0);
92
+ return { borderY, lineHeight, paddingY };
93
+ }
94
+ const ClassChatTextarea = /*#__PURE__*/ defineComponent({
95
+ name: "ClassChatTextarea",
96
+ inheritAttrs: false,
97
+ props: {
98
+ className: { type: String, default: "cc-chat-textarea" },
99
+ clearable: { type: Boolean, default: true },
100
+ clearIcon: {
101
+ type: null,
102
+ default: () => classIcon("x"),
103
+ },
104
+ clearLabel: {
105
+ type: String,
106
+ default: () => getClassComponentsLocale().inputClearLabel,
107
+ },
108
+ defaultValue: { type: String, default: "" },
109
+ disabled: optionalBooleanProp(),
110
+ maxRows: { type: Number, default: 3 },
111
+ minRows: { type: Number, default: 1 },
112
+ modelValue: String,
113
+ placeholder: String,
114
+ readOnly: optionalBooleanProp(),
115
+ readonly: optionalBooleanProp(),
116
+ textareaClass: { type: String, default: "cc-chat-textarea__control" },
117
+ textareaStyle: Object,
118
+ value: String,
119
+ },
120
+ emits: ["change", "input", "update:modelValue", "update:value"],
121
+ setup(props, { attrs, emit, expose }) {
122
+ const textareaRef = ref(null);
123
+ const controller = new ChatTextareaController({
124
+ maxRows: props.maxRows,
125
+ minRows: props.minRows,
126
+ value: props.modelValue ?? props.value ?? props.defaultValue,
127
+ });
128
+ const state = ref(controller.getState());
129
+ const controlled = computed(() => props.modelValue !== undefined || props.value !== undefined);
130
+ let resizeObserver;
131
+ const resize = () => {
132
+ const element = textareaRef.value;
133
+ if (!element || typeof window === "undefined")
134
+ return;
135
+ const { borderY, lineHeight, paddingY } = getVueTextareaMetrics(element);
136
+ const minHeight = lineHeight * state.value.minRows + paddingY + borderY;
137
+ const maxHeight = lineHeight * state.value.maxRows + paddingY + borderY;
138
+ element.style.height = "auto";
139
+ const nextHeight = Math.min(Math.max(element.scrollHeight, minHeight), maxHeight);
140
+ element.style.height = `${nextHeight}px`;
141
+ element.style.overflowY =
142
+ element.scrollHeight > maxHeight + 1 ? "auto" : "hidden";
143
+ };
144
+ const syncState = () => {
145
+ state.value = controller.update({
146
+ maxRows: props.maxRows,
147
+ minRows: props.minRows,
148
+ value: controlled.value
149
+ ? (props.modelValue ?? props.value ?? "")
150
+ : state.value.value,
151
+ });
152
+ nextTick(resize);
153
+ };
154
+ watch(() => [props.maxRows, props.minRows, props.modelValue, props.value], syncState);
155
+ onMounted(() => {
156
+ resize();
157
+ if (typeof ResizeObserver === "undefined" || !textareaRef.value)
158
+ return;
159
+ resizeObserver = new ResizeObserver(resize);
160
+ resizeObserver.observe(textareaRef.value);
161
+ });
162
+ onBeforeUnmount(() => {
163
+ resizeObserver?.disconnect();
164
+ });
165
+ const commit = (nextValue, event) => {
166
+ const nextState = controller.setValue(nextValue);
167
+ if (!controlled.value)
168
+ state.value = nextState;
169
+ emit("update:modelValue", nextValue);
170
+ emit("update:value", nextValue);
171
+ emit("input", nextValue, event);
172
+ emit("change", nextValue, event);
173
+ nextTick(resize);
174
+ };
175
+ expose({
176
+ blur: () => textareaRef.value?.blur(),
177
+ focus: () => textareaRef.value?.focus(),
178
+ getElement: () => textareaRef.value,
179
+ });
180
+ return () => {
181
+ const locked = props.disabled || props.readOnly || props.readonly;
182
+ const currentValue = controlled.value
183
+ ? (props.modelValue ?? props.value ?? "")
184
+ : state.value.value;
185
+ const canClear = props.clearable && currentValue !== "" && !locked;
186
+ return h("div", {
187
+ class: props.className,
188
+ "data-disabled": Boolean(props.disabled),
189
+ "data-readonly": Boolean(props.readOnly || props.readonly),
190
+ "data-scrollable": currentValue.length > 0,
191
+ }, [
192
+ h("textarea", {
193
+ ...attrs,
194
+ class: [
195
+ props.textareaClass,
196
+ canClear ? "cc-chat-textarea__control--clearable" : "",
197
+ ],
198
+ disabled: props.disabled,
199
+ placeholder: props.placeholder,
200
+ readonly: props.readOnly || props.readonly,
201
+ ref: textareaRef,
202
+ rows: state.value.minRows,
203
+ style: {
204
+ "--cc-chat-textarea-max-rows": state.value.maxRows,
205
+ "--cc-chat-textarea-min-rows": state.value.minRows,
206
+ ...(props.textareaStyle ?? {}),
207
+ },
208
+ value: currentValue,
209
+ onInput: (event) => {
210
+ if (locked)
211
+ return;
212
+ commit(event.currentTarget.value, event);
213
+ },
214
+ }),
215
+ canClear
216
+ ? h("button", {
217
+ "aria-label": props.clearLabel,
218
+ class: "cc-chat-textarea__clear",
219
+ type: "button",
220
+ onClick: (event) => {
221
+ commit("", event);
222
+ textareaRef.value?.focus();
223
+ },
224
+ }, props.clearIcon)
225
+ : null,
226
+ ]);
227
+ };
228
+ },
229
+ });
230
+
231
+ export { ClassChatTextarea };
232
+ //# sourceMappingURL=chat-textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-textarea.js","sources":["../../src/index.ts"],"names":[],"mappings":"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"}