@qxs-bns/components 0.0.89 → 0.0.91

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 (799) hide show
  1. package/README.md +11 -15
  2. package/es/base/define.mjs +2 -0
  3. package/es/base/define.mjs.map +1 -0
  4. package/es/base/uid.mjs +2 -0
  5. package/es/base/uid.mjs.map +1 -0
  6. package/es/data-chart.mjs +142 -0
  7. package/es/data-chart.mjs.map +1 -0
  8. package/es/editor/blocksuite-editor.mjs +1115 -0
  9. package/es/editor/blocksuite-editor.mjs.map +1 -0
  10. package/es/editor/content-format.mjs +2 -0
  11. package/es/editor/content-format.mjs.map +1 -0
  12. package/es/editor/index.mjs +2 -0
  13. package/es/editor/index.mjs.map +1 -0
  14. package/es/editor/toolbar.mjs +2 -0
  15. package/es/editor/toolbar.mjs.map +1 -0
  16. package/es/entry-data-chart.mjs +2 -0
  17. package/es/entry-data-chart.mjs.map +1 -0
  18. package/es/entry-editor.mjs +2 -0
  19. package/es/entry-editor.mjs.map +1 -0
  20. package/es/entry-file-upload.mjs +2 -0
  21. package/es/entry-file-upload.mjs.map +1 -0
  22. package/es/entry-fixed-action-bar.mjs +2 -0
  23. package/es/entry-fixed-action-bar.mjs.map +1 -0
  24. package/es/entry-icon.mjs +2 -0
  25. package/es/entry-icon.mjs.map +1 -0
  26. package/es/entry-image-upload.mjs +2 -0
  27. package/es/entry-image-upload.mjs.map +1 -0
  28. package/es/entry-photo-crop-tool.mjs +2 -0
  29. package/es/entry-photo-crop-tool.mjs.map +1 -0
  30. package/es/entry-subject.mjs +2 -0
  31. package/es/entry-subject.mjs.map +1 -0
  32. package/es/file-upload.mjs +157 -0
  33. package/es/file-upload.mjs.map +1 -0
  34. package/es/fixed-action-bar.mjs +39 -0
  35. package/es/fixed-action-bar.mjs.map +1 -0
  36. package/es/icon.mjs +20 -0
  37. package/es/icon.mjs.map +1 -0
  38. package/es/image-upload.mjs +333 -0
  39. package/es/image-upload.mjs.map +1 -0
  40. package/es/index.mjs +1 -1
  41. package/es/index.mjs.map +1 -1
  42. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs +1 -1
  43. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs.map +1 -1
  44. package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs +2 -0
  45. package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs.map +1 -0
  46. package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs +2 -0
  47. package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs.map +1 -0
  48. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs +2 -0
  49. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs.map +1 -0
  50. package/es/package.json.mjs +1 -1
  51. package/es/photo-crop-tool.mjs +147 -0
  52. package/es/photo-crop-tool.mjs.map +1 -0
  53. package/es/src/alert/index.mjs +2 -0
  54. package/es/src/alert/index.mjs.map +1 -0
  55. package/es/src/alert/src/alert.mjs +2 -0
  56. package/es/src/alert/src/alert.mjs.map +1 -0
  57. package/es/src/components.mjs +1 -1
  58. package/es/src/data-chart/index.mjs +1 -1
  59. package/es/src/data-chart/index.mjs.map +1 -1
  60. package/es/src/dialog/src/dialog.mjs +2 -0
  61. package/es/src/dialog/src/dialog.mjs.map +1 -0
  62. package/es/src/feedback-plugin/index.mjs +2 -0
  63. package/es/src/feedback-plugin/index.mjs.map +1 -0
  64. package/es/src/file-upload/index.mjs +1 -1
  65. package/es/src/file-upload/index.mjs.map +1 -1
  66. package/es/src/image-upload/index.mjs +1 -1
  67. package/es/src/image-upload/index.mjs.map +1 -1
  68. package/es/src/make-installer.mjs +1 -1
  69. package/es/src/make-installer.mjs.map +1 -1
  70. package/es/src/message/src/message.mjs +2 -0
  71. package/es/src/message/src/message.mjs.map +1 -0
  72. package/es/src/photo-crop-tool/index.mjs +1 -1
  73. package/es/src/photo-crop-tool/index.mjs.map +1 -1
  74. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +1 -1
  75. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +1 -1
  76. package/es/src/ui/button/index.mjs +2 -0
  77. package/es/src/ui/button/index.mjs.map +1 -0
  78. package/es/src/ui/checkbox/index.mjs +2 -0
  79. package/es/src/ui/checkbox/index.mjs.map +1 -0
  80. package/es/src/ui/dialog/index.mjs +2 -0
  81. package/es/src/ui/dialog/index.mjs.map +1 -0
  82. package/es/src/ui/input/index.mjs +2 -0
  83. package/es/src/ui/input/index.mjs.map +1 -0
  84. package/es/src/ui/input-number/index.mjs +2 -0
  85. package/es/src/ui/input-number/index.mjs.map +1 -0
  86. package/es/src/ui/layout/index.mjs +2 -0
  87. package/es/src/ui/layout/index.mjs.map +1 -0
  88. package/es/src/ui/link/index.mjs +2 -0
  89. package/es/src/ui/link/index.mjs.map +1 -0
  90. package/es/src/ui/popover/index.mjs +2 -0
  91. package/es/src/ui/popover/index.mjs.map +1 -0
  92. package/es/src/ui/radio/index.mjs +2 -0
  93. package/es/src/ui/radio/index.mjs.map +1 -0
  94. package/es/src/ui/scrollbar/index.mjs +2 -0
  95. package/es/src/ui/scrollbar/index.mjs.map +1 -0
  96. package/es/src/ui/select/index.mjs +2 -0
  97. package/es/src/ui/select/index.mjs.map +1 -0
  98. package/es/src/ui/table/index.mjs +2 -0
  99. package/es/src/ui/table/index.mjs.map +1 -0
  100. package/es/src/ui/tag/index.mjs +2 -0
  101. package/es/src/ui/tag/index.mjs.map +1 -0
  102. package/es/src/wc-bridge.mjs +2 -0
  103. package/es/src/wc-bridge.mjs.map +1 -0
  104. package/es/subject/action.mjs +171 -0
  105. package/es/subject/action.mjs.map +1 -0
  106. package/es/subject/blank-fill.mjs +385 -0
  107. package/es/subject/blank-fill.mjs.map +1 -0
  108. package/es/subject/draft.mjs +2 -0
  109. package/es/subject/draft.mjs.map +1 -0
  110. package/es/subject/layout.mjs +21 -0
  111. package/es/subject/layout.mjs.map +1 -0
  112. package/es/subject/page-end.mjs +28 -0
  113. package/es/subject/page-end.mjs.map +1 -0
  114. package/es/subject/pagination.mjs +2 -0
  115. package/es/subject/pagination.mjs.map +1 -0
  116. package/es/subject/runtime.mjs +2 -0
  117. package/es/subject/runtime.mjs.map +1 -0
  118. package/es/subject/scale.mjs +267 -0
  119. package/es/subject/scale.mjs.map +1 -0
  120. package/es/subject/shared-methods.mjs +2 -0
  121. package/es/subject/shared-methods.mjs.map +1 -0
  122. package/es/subject/shared-styles.mjs +75 -0
  123. package/es/subject/shared-styles.mjs.map +1 -0
  124. package/es/subject/single.mjs +600 -0
  125. package/es/subject/single.mjs.map +1 -0
  126. package/es/subject/sort-controller.mjs +2 -0
  127. package/es/subject/sort-controller.mjs.map +1 -0
  128. package/es/subject/sortable.mjs +30 -0
  129. package/es/subject/sortable.mjs.map +1 -0
  130. package/es/subject/sorting-card.mjs +52 -0
  131. package/es/subject/sorting-card.mjs.map +1 -0
  132. package/es/subject/text-fill.mjs +395 -0
  133. package/es/subject/text-fill.mjs.map +1 -0
  134. package/es/subject/title-prefix.mjs +2 -0
  135. package/es/subject/title-prefix.mjs.map +1 -0
  136. package/es/subject/types.mjs +2 -0
  137. package/es/subject/types.mjs.map +1 -0
  138. package/lib/base/define.cjs +2 -0
  139. package/lib/base/define.cjs.map +1 -0
  140. package/lib/base/uid.cjs +2 -0
  141. package/lib/base/uid.cjs.map +1 -0
  142. package/lib/data-chart.cjs +142 -0
  143. package/lib/data-chart.cjs.map +1 -0
  144. package/lib/editor/blocksuite-editor.cjs +1115 -0
  145. package/lib/editor/blocksuite-editor.cjs.map +1 -0
  146. package/lib/editor/content-format.cjs +2 -0
  147. package/lib/editor/content-format.cjs.map +1 -0
  148. package/lib/editor/index.cjs +2 -0
  149. package/lib/editor/index.cjs.map +1 -0
  150. package/lib/editor/toolbar.cjs +2 -0
  151. package/lib/editor/toolbar.cjs.map +1 -0
  152. package/lib/entry-data-chart.cjs +2 -0
  153. package/lib/entry-data-chart.cjs.map +1 -0
  154. package/lib/entry-editor.cjs +2 -0
  155. package/lib/entry-editor.cjs.map +1 -0
  156. package/lib/entry-file-upload.cjs +2 -0
  157. package/lib/entry-file-upload.cjs.map +1 -0
  158. package/lib/entry-fixed-action-bar.cjs +2 -0
  159. package/lib/entry-fixed-action-bar.cjs.map +1 -0
  160. package/lib/entry-icon.cjs +2 -0
  161. package/lib/entry-icon.cjs.map +1 -0
  162. package/lib/entry-image-upload.cjs +2 -0
  163. package/lib/entry-image-upload.cjs.map +1 -0
  164. package/lib/entry-photo-crop-tool.cjs +2 -0
  165. package/lib/entry-photo-crop-tool.cjs.map +1 -0
  166. package/lib/entry-subject.cjs +2 -0
  167. package/lib/entry-subject.cjs.map +1 -0
  168. package/lib/file-upload.cjs +157 -0
  169. package/lib/file-upload.cjs.map +1 -0
  170. package/lib/fixed-action-bar.cjs +39 -0
  171. package/lib/fixed-action-bar.cjs.map +1 -0
  172. package/lib/icon.cjs +20 -0
  173. package/lib/icon.cjs.map +1 -0
  174. package/lib/image-upload.cjs +333 -0
  175. package/lib/image-upload.cjs.map +1 -0
  176. package/lib/index.cjs +1 -1
  177. package/lib/index.cjs.map +1 -1
  178. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs +1 -1
  179. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs.map +1 -1
  180. package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs +2 -0
  181. package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs.map +1 -0
  182. package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs +2 -0
  183. package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs.map +1 -0
  184. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs +2 -0
  185. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs.map +1 -0
  186. package/lib/package.json.cjs +1 -1
  187. package/lib/photo-crop-tool.cjs +147 -0
  188. package/lib/photo-crop-tool.cjs.map +1 -0
  189. package/lib/src/alert/index.cjs +2 -0
  190. package/lib/src/alert/index.cjs.map +1 -0
  191. package/lib/src/alert/src/alert.cjs +2 -0
  192. package/lib/src/alert/src/alert.cjs.map +1 -0
  193. package/lib/src/components.cjs +1 -1
  194. package/lib/src/data-chart/index.cjs +1 -1
  195. package/lib/src/data-chart/index.cjs.map +1 -1
  196. package/lib/src/dialog/src/dialog.cjs +2 -0
  197. package/lib/src/dialog/src/dialog.cjs.map +1 -0
  198. package/lib/src/feedback-plugin/index.cjs +2 -0
  199. package/lib/src/feedback-plugin/index.cjs.map +1 -0
  200. package/lib/src/file-upload/index.cjs +1 -1
  201. package/lib/src/file-upload/index.cjs.map +1 -1
  202. package/lib/src/image-upload/index.cjs +1 -1
  203. package/lib/src/image-upload/index.cjs.map +1 -1
  204. package/lib/src/make-installer.cjs +1 -1
  205. package/lib/src/make-installer.cjs.map +1 -1
  206. package/lib/src/message/src/message.cjs +2 -0
  207. package/lib/src/message/src/message.cjs.map +1 -0
  208. package/lib/src/photo-crop-tool/index.cjs +1 -1
  209. package/lib/src/photo-crop-tool/index.cjs.map +1 -1
  210. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +1 -1
  211. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +1 -1
  212. package/lib/src/ui/button/index.cjs +2 -0
  213. package/lib/src/ui/button/index.cjs.map +1 -0
  214. package/lib/src/ui/checkbox/index.cjs +2 -0
  215. package/lib/src/ui/checkbox/index.cjs.map +1 -0
  216. package/lib/src/ui/dialog/index.cjs +2 -0
  217. package/lib/src/ui/dialog/index.cjs.map +1 -0
  218. package/lib/src/ui/input/index.cjs +2 -0
  219. package/lib/src/ui/input/index.cjs.map +1 -0
  220. package/lib/src/ui/input-number/index.cjs +2 -0
  221. package/lib/src/ui/input-number/index.cjs.map +1 -0
  222. package/lib/src/ui/layout/index.cjs +2 -0
  223. package/lib/src/ui/layout/index.cjs.map +1 -0
  224. package/lib/src/ui/link/index.cjs +2 -0
  225. package/lib/src/ui/link/index.cjs.map +1 -0
  226. package/lib/src/ui/popover/index.cjs +2 -0
  227. package/lib/src/ui/popover/index.cjs.map +1 -0
  228. package/lib/src/ui/radio/index.cjs +2 -0
  229. package/lib/src/ui/radio/index.cjs.map +1 -0
  230. package/lib/src/ui/scrollbar/index.cjs +2 -0
  231. package/lib/src/ui/scrollbar/index.cjs.map +1 -0
  232. package/lib/src/ui/select/index.cjs +2 -0
  233. package/lib/src/ui/select/index.cjs.map +1 -0
  234. package/lib/src/ui/table/index.cjs +2 -0
  235. package/lib/src/ui/table/index.cjs.map +1 -0
  236. package/lib/src/ui/tag/index.cjs +2 -0
  237. package/lib/src/ui/tag/index.cjs.map +1 -0
  238. package/lib/src/wc-bridge.cjs +2 -0
  239. package/lib/src/wc-bridge.cjs.map +1 -0
  240. package/lib/subject/action.cjs +171 -0
  241. package/lib/subject/action.cjs.map +1 -0
  242. package/lib/subject/blank-fill.cjs +385 -0
  243. package/lib/subject/blank-fill.cjs.map +1 -0
  244. package/lib/subject/draft.cjs +2 -0
  245. package/lib/subject/draft.cjs.map +1 -0
  246. package/lib/subject/layout.cjs +21 -0
  247. package/lib/subject/layout.cjs.map +1 -0
  248. package/lib/subject/page-end.cjs +28 -0
  249. package/lib/subject/page-end.cjs.map +1 -0
  250. package/lib/subject/pagination.cjs +2 -0
  251. package/lib/subject/pagination.cjs.map +1 -0
  252. package/lib/subject/runtime.cjs +2 -0
  253. package/lib/subject/runtime.cjs.map +1 -0
  254. package/lib/subject/scale.cjs +267 -0
  255. package/lib/subject/scale.cjs.map +1 -0
  256. package/lib/subject/shared-methods.cjs +2 -0
  257. package/lib/subject/shared-methods.cjs.map +1 -0
  258. package/lib/subject/shared-styles.cjs +75 -0
  259. package/lib/subject/shared-styles.cjs.map +1 -0
  260. package/lib/subject/single.cjs +600 -0
  261. package/lib/subject/single.cjs.map +1 -0
  262. package/lib/subject/sort-controller.cjs +2 -0
  263. package/lib/subject/sort-controller.cjs.map +1 -0
  264. package/lib/subject/sortable.cjs +30 -0
  265. package/lib/subject/sortable.cjs.map +1 -0
  266. package/lib/subject/sorting-card.cjs +52 -0
  267. package/lib/subject/sorting-card.cjs.map +1 -0
  268. package/lib/subject/text-fill.cjs +395 -0
  269. package/lib/subject/text-fill.cjs.map +1 -0
  270. package/lib/subject/title-prefix.cjs +2 -0
  271. package/lib/subject/title-prefix.cjs.map +1 -0
  272. package/lib/subject/types.cjs +2 -0
  273. package/lib/subject/types.cjs.map +1 -0
  274. package/package.json +94 -41
  275. package/types/base/define.d.ts +1 -0
  276. package/types/base/uid.d.ts +1 -0
  277. package/types/data-chart.d.ts +65 -0
  278. package/types/editor/blocksuite-editor.d.ts +191 -0
  279. package/types/editor/content-format.d.ts +4 -0
  280. package/types/editor/index.d.ts +4 -0
  281. package/types/editor/toolbar.d.ts +6 -0
  282. package/types/editor/types.d.ts +42 -0
  283. package/types/entry-data-chart.d.ts +1 -0
  284. package/types/entry-editor.d.ts +2 -0
  285. package/types/entry-file-upload.d.ts +1 -0
  286. package/types/entry-fixed-action-bar.d.ts +1 -0
  287. package/types/entry-icon.d.ts +2 -0
  288. package/types/entry-image-upload.d.ts +1 -0
  289. package/types/entry-photo-crop-tool.d.ts +1 -0
  290. package/types/entry-subject.d.ts +2 -0
  291. package/types/file-upload.d.ts +48 -0
  292. package/types/fixed-action-bar.d.ts +25 -0
  293. package/types/icon.d.ts +30 -0
  294. package/types/image-upload.d.ts +68 -0
  295. package/types/index.d.ts +21 -6
  296. package/types/photo-crop-tool.d.ts +43 -0
  297. package/types/src/alert/index.d.ts +66 -0
  298. package/types/src/alert/index.d.ts.map +1 -0
  299. package/types/src/alert/src/alert.d.ts +73 -0
  300. package/types/src/alert/src/alert.d.ts.map +1 -0
  301. package/types/src/components.d.ts +4 -6
  302. package/types/src/components.d.ts.map +1 -1
  303. package/types/src/data-chart/index.d.ts +11 -27
  304. package/types/src/data-chart/index.d.ts.map +1 -1
  305. package/types/src/dialog/index.d.ts +3 -0
  306. package/types/src/dialog/index.d.ts.map +1 -0
  307. package/types/src/dialog/src/dialog.d.ts +25 -0
  308. package/types/src/dialog/src/dialog.d.ts.map +1 -0
  309. package/types/src/feedback-plugin/index.d.ts +9 -0
  310. package/types/src/feedback-plugin/index.d.ts.map +1 -0
  311. package/types/src/file-upload/index.d.ts +10 -28
  312. package/types/src/file-upload/index.d.ts.map +1 -1
  313. package/types/src/icon/index.d.ts +3 -3
  314. package/types/src/icon/src/icon.d.ts +3 -3
  315. package/types/src/image-upload/index.d.ts +10 -46
  316. package/types/src/image-upload/index.d.ts.map +1 -1
  317. package/types/src/make-installer.d.ts +1 -4
  318. package/types/src/make-installer.d.ts.map +1 -1
  319. package/types/src/message/index.d.ts +3 -0
  320. package/types/src/message/index.d.ts.map +1 -0
  321. package/types/src/message/src/message.d.ts +21 -0
  322. package/types/src/message/src/message.d.ts.map +1 -0
  323. package/types/src/message/src/toaster.vue.d.ts +3 -0
  324. package/types/src/message/src/toaster.vue.d.ts.map +1 -0
  325. package/types/src/photo-crop-tool/index.d.ts +9 -52
  326. package/types/src/photo-crop-tool/index.d.ts.map +1 -1
  327. package/types/src/subject-action/src/subject-action.vue.d.ts.map +1 -1
  328. package/types/src/subject-layout/index.d.ts +2 -2
  329. package/types/src/subject-layout/src/subject-layout.vue.d.ts +2 -2
  330. package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +1 -1
  331. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts.map +1 -1
  332. package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +1 -1
  333. package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +1 -1
  334. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts.map +1 -1
  335. package/types/src/subject-list/src/subject-list.vue.d.ts.map +1 -1
  336. package/types/src/subject-type/src/subject-type.vue.d.ts.map +1 -1
  337. package/types/src/ui/button/index.d.ts +96 -0
  338. package/types/src/ui/button/index.d.ts.map +1 -0
  339. package/types/src/ui/checkbox/index.d.ts +111 -0
  340. package/types/src/ui/checkbox/index.d.ts.map +1 -0
  341. package/types/src/ui/dialog/index.d.ts +134 -0
  342. package/types/src/ui/dialog/index.d.ts.map +1 -0
  343. package/types/src/ui/index.d.ts +16 -0
  344. package/types/src/ui/index.d.ts.map +1 -0
  345. package/types/src/ui/input/index.d.ts +132 -0
  346. package/types/src/ui/input/index.d.ts.map +1 -0
  347. package/types/src/ui/input-number/index.d.ts +106 -0
  348. package/types/src/ui/input-number/index.d.ts.map +1 -0
  349. package/types/src/ui/layout/index.d.ts +373 -0
  350. package/types/src/ui/layout/index.d.ts.map +1 -0
  351. package/types/src/ui/link/index.d.ts +57 -0
  352. package/types/src/ui/link/index.d.ts.map +1 -0
  353. package/types/src/ui/popover/index.d.ts +89 -0
  354. package/types/src/ui/popover/index.d.ts.map +1 -0
  355. package/types/src/ui/radio/index.d.ts +84 -0
  356. package/types/src/ui/radio/index.d.ts.map +1 -0
  357. package/types/src/ui/scrollbar/index.d.ts +35 -0
  358. package/types/src/ui/scrollbar/index.d.ts.map +1 -0
  359. package/types/src/ui/select/index.d.ts +113 -0
  360. package/types/src/ui/select/index.d.ts.map +1 -0
  361. package/types/src/ui/table/index.d.ts +152 -0
  362. package/types/src/ui/table/index.d.ts.map +1 -0
  363. package/types/src/ui/tag/index.d.ts +69 -0
  364. package/types/src/ui/tag/index.d.ts.map +1 -0
  365. package/types/src/wc-bridge.d.ts +23 -0
  366. package/types/src/wc-bridge.d.ts.map +1 -0
  367. package/types/subject/action.d.ts +37 -0
  368. package/types/subject/blank-fill.d.ts +79 -0
  369. package/types/subject/draft.d.ts +63 -0
  370. package/types/subject/index.d.ts +13 -0
  371. package/types/subject/layout.d.ts +7 -0
  372. package/types/subject/page-end.d.ts +16 -0
  373. package/types/subject/pagination.d.ts +23 -0
  374. package/types/subject/runtime.d.ts +12 -0
  375. package/types/subject/scale.d.ts +55 -0
  376. package/types/subject/shared-methods.d.ts +8 -0
  377. package/types/subject/shared-styles.d.ts +5 -0
  378. package/types/subject/single.d.ts +288 -0
  379. package/types/subject/sort-controller.d.ts +3 -0
  380. package/types/subject/sortable.d.ts +19 -0
  381. package/types/subject/sorting-card.d.ts +2 -0
  382. package/types/subject/text-fill.d.ts +88 -0
  383. package/types/subject/title-prefix.d.ts +2 -0
  384. package/types/subject/types.d.ts +12 -0
  385. package/types/tsconfig.tsbuildinfo +1 -1
  386. package/es/_virtual/_plugin-vue_export-helper.mjs +0 -2
  387. package/es/_virtual/_plugin-vue_export-helper.mjs.map +0 -1
  388. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +0 -2
  389. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs.map +0 -1
  390. package/es/src/data-chart/src/analyze.mjs +0 -2
  391. package/es/src/data-chart/src/analyze.mjs.map +0 -1
  392. package/es/src/data-chart/src/components/area.vue.mjs +0 -2
  393. package/es/src/data-chart/src/components/area.vue.mjs.map +0 -1
  394. package/es/src/data-chart/src/components/area.vue2.mjs +0 -2
  395. package/es/src/data-chart/src/components/area.vue2.mjs.map +0 -1
  396. package/es/src/data-chart/src/components/area.vue3.mjs +0 -2
  397. package/es/src/data-chart/src/components/area.vue3.mjs.map +0 -1
  398. package/es/src/data-chart/src/components/bar.vue.mjs +0 -2
  399. package/es/src/data-chart/src/components/bar.vue.mjs.map +0 -1
  400. package/es/src/data-chart/src/components/bar.vue2.mjs +0 -2
  401. package/es/src/data-chart/src/components/bar.vue2.mjs.map +0 -1
  402. package/es/src/data-chart/src/components/bar.vue3.mjs +0 -2
  403. package/es/src/data-chart/src/components/bar.vue3.mjs.map +0 -1
  404. package/es/src/data-chart/src/components/card.vue.mjs +0 -2
  405. package/es/src/data-chart/src/components/card.vue.mjs.map +0 -1
  406. package/es/src/data-chart/src/components/card.vue2.mjs +0 -2
  407. package/es/src/data-chart/src/components/card.vue2.mjs.map +0 -1
  408. package/es/src/data-chart/src/components/card.vue3.mjs +0 -2
  409. package/es/src/data-chart/src/components/card.vue3.mjs.map +0 -1
  410. package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs +0 -2
  411. package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs.map +0 -1
  412. package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs +0 -2
  413. package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs.map +0 -1
  414. package/es/src/data-chart/src/components/empty.svg.mjs +0 -2
  415. package/es/src/data-chart/src/components/empty.svg.mjs.map +0 -1
  416. package/es/src/data-chart/src/components/empty.vue.mjs +0 -2
  417. package/es/src/data-chart/src/components/empty.vue.mjs.map +0 -1
  418. package/es/src/data-chart/src/components/empty.vue2.mjs +0 -2
  419. package/es/src/data-chart/src/components/empty.vue2.mjs.map +0 -1
  420. package/es/src/data-chart/src/components/funnel.vue.mjs +0 -2
  421. package/es/src/data-chart/src/components/funnel.vue.mjs.map +0 -1
  422. package/es/src/data-chart/src/components/funnel.vue2.mjs +0 -2
  423. package/es/src/data-chart/src/components/funnel.vue2.mjs.map +0 -1
  424. package/es/src/data-chart/src/components/funnel.vue3.mjs +0 -2
  425. package/es/src/data-chart/src/components/funnel.vue3.mjs.map +0 -1
  426. package/es/src/data-chart/src/components/line.vue.mjs +0 -2
  427. package/es/src/data-chart/src/components/line.vue.mjs.map +0 -1
  428. package/es/src/data-chart/src/components/line.vue2.mjs +0 -2
  429. package/es/src/data-chart/src/components/line.vue2.mjs.map +0 -1
  430. package/es/src/data-chart/src/components/line.vue3.mjs +0 -2
  431. package/es/src/data-chart/src/components/line.vue3.mjs.map +0 -1
  432. package/es/src/data-chart/src/components/pie.vue.mjs +0 -2
  433. package/es/src/data-chart/src/components/pie.vue.mjs.map +0 -1
  434. package/es/src/data-chart/src/components/pie.vue2.mjs +0 -2
  435. package/es/src/data-chart/src/components/pie.vue2.mjs.map +0 -1
  436. package/es/src/data-chart/src/components/pie.vue3.mjs +0 -2
  437. package/es/src/data-chart/src/components/pie.vue3.mjs.map +0 -1
  438. package/es/src/data-chart/src/components/radar.vue.mjs +0 -2
  439. package/es/src/data-chart/src/components/radar.vue.mjs.map +0 -1
  440. package/es/src/data-chart/src/components/radar.vue2.mjs +0 -2
  441. package/es/src/data-chart/src/components/radar.vue2.mjs.map +0 -1
  442. package/es/src/data-chart/src/components/radar.vue3.mjs +0 -2
  443. package/es/src/data-chart/src/components/radar.vue3.mjs.map +0 -1
  444. package/es/src/data-chart/src/components/scatter-simple.vue.mjs +0 -2
  445. package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +0 -1
  446. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +0 -2
  447. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +0 -1
  448. package/es/src/data-chart/src/components/scatter-simple.vue3.mjs +0 -2
  449. package/es/src/data-chart/src/components/scatter-simple.vue3.mjs.map +0 -1
  450. package/es/src/data-chart/src/components/scatter.vue.mjs +0 -2
  451. package/es/src/data-chart/src/components/scatter.vue.mjs.map +0 -1
  452. package/es/src/data-chart/src/components/scatter.vue2.mjs +0 -2
  453. package/es/src/data-chart/src/components/scatter.vue2.mjs.map +0 -1
  454. package/es/src/data-chart/src/components/scatter.vue3.mjs +0 -2
  455. package/es/src/data-chart/src/components/scatter.vue3.mjs.map +0 -1
  456. package/es/src/data-chart/src/components/table.vue.mjs +0 -2
  457. package/es/src/data-chart/src/components/table.vue.mjs.map +0 -1
  458. package/es/src/data-chart/src/components/table.vue2.mjs +0 -2
  459. package/es/src/data-chart/src/components/table.vue2.mjs.map +0 -1
  460. package/es/src/data-chart/src/data-chart.vue.mjs +0 -2
  461. package/es/src/data-chart/src/data-chart.vue.mjs.map +0 -1
  462. package/es/src/data-chart/src/data-chart.vue2.mjs +0 -2
  463. package/es/src/data-chart/src/data-chart.vue2.mjs.map +0 -1
  464. package/es/src/data-chart/src/utils/config.mjs +0 -2
  465. package/es/src/data-chart/src/utils/config.mjs.map +0 -1
  466. package/es/src/data-chart/src/utils/injectionKeys.mjs +0 -2
  467. package/es/src/data-chart/src/utils/injectionKeys.mjs.map +0 -1
  468. package/es/src/data-chart/src/utils/mapData.mjs +0 -2
  469. package/es/src/data-chart/src/utils/mapData.mjs.map +0 -1
  470. package/es/src/data-chart/src/utils/safe-eval.mjs +0 -2
  471. package/es/src/data-chart/src/utils/safe-eval.mjs.map +0 -1
  472. package/es/src/data-chart/src/utils/types.mjs +0 -2
  473. package/es/src/data-chart/src/utils/types.mjs.map +0 -1
  474. package/es/src/data-chart/src/utils/useCharts.mjs +0 -2
  475. package/es/src/data-chart/src/utils/useCharts.mjs.map +0 -1
  476. package/es/src/file-upload/src/file-upload.vue.mjs +0 -2
  477. package/es/src/file-upload/src/file-upload.vue.mjs.map +0 -1
  478. package/es/src/file-upload/src/file-upload.vue2.mjs +0 -2
  479. package/es/src/file-upload/src/file-upload.vue2.mjs.map +0 -1
  480. package/es/src/fixed-action-bar/index.mjs +0 -2
  481. package/es/src/fixed-action-bar/index.mjs.map +0 -1
  482. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +0 -2
  483. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +0 -1
  484. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs +0 -2
  485. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs.map +0 -1
  486. package/es/src/image-upload/src/image-upload.vue.mjs +0 -2
  487. package/es/src/image-upload/src/image-upload.vue.mjs.map +0 -1
  488. package/es/src/image-upload/src/image-upload.vue2.mjs +0 -2
  489. package/es/src/image-upload/src/image-upload.vue2.mjs.map +0 -1
  490. package/es/src/photo-crop-tool/src/composables.mjs +0 -2
  491. package/es/src/photo-crop-tool/src/composables.mjs.map +0 -1
  492. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +0 -2
  493. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +0 -1
  494. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs +0 -2
  495. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs.map +0 -1
  496. package/es/src/subject-action/index.mjs +0 -2
  497. package/es/src/subject-action/index.mjs.map +0 -1
  498. package/es/src/subject-action/src/subject-action.vue.mjs +0 -2
  499. package/es/src/subject-action/src/subject-action.vue.mjs.map +0 -1
  500. package/es/src/subject-action/src/subject-action.vue2.mjs +0 -2
  501. package/es/src/subject-action/src/subject-action.vue2.mjs.map +0 -1
  502. package/es/src/subject-layout/index.mjs +0 -2
  503. package/es/src/subject-layout/index.mjs.map +0 -1
  504. package/es/src/subject-layout/src/subject-layout.vue.mjs +0 -2
  505. package/es/src/subject-layout/src/subject-layout.vue.mjs.map +0 -1
  506. package/es/src/subject-layout/src/subject-layout.vue2.mjs +0 -2
  507. package/es/src/subject-layout/src/subject-layout.vue2.mjs.map +0 -1
  508. package/es/src/subject-list/index.mjs +0 -2
  509. package/es/src/subject-list/index.mjs.map +0 -1
  510. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +0 -2
  511. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +0 -1
  512. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs +0 -2
  513. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs.map +0 -1
  514. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +0 -2
  515. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +0 -1
  516. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs +0 -2
  517. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs.map +0 -1
  518. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +0 -2
  519. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +0 -1
  520. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs +0 -2
  521. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs.map +0 -1
  522. package/es/src/subject-list/src/components/subject-scale.vue.mjs +0 -2
  523. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +0 -1
  524. package/es/src/subject-list/src/components/subject-scale.vue2.mjs +0 -2
  525. package/es/src/subject-list/src/components/subject-scale.vue2.mjs.map +0 -1
  526. package/es/src/subject-list/src/components/subject-single.vue.mjs +0 -2
  527. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +0 -1
  528. package/es/src/subject-list/src/components/subject-single.vue2.mjs +0 -2
  529. package/es/src/subject-list/src/components/subject-single.vue2.mjs.map +0 -1
  530. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +0 -2
  531. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +0 -1
  532. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs +0 -2
  533. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs.map +0 -1
  534. package/es/src/subject-list/src/subject-list.vue.mjs +0 -2
  535. package/es/src/subject-list/src/subject-list.vue.mjs.map +0 -1
  536. package/es/src/subject-list/src/subject-list.vue2.mjs +0 -2
  537. package/es/src/subject-list/src/subject-list.vue2.mjs.map +0 -1
  538. package/es/src/subject-type/index.mjs +0 -2
  539. package/es/src/subject-type/index.mjs.map +0 -1
  540. package/es/src/subject-type/src/subject-type.vue.mjs +0 -2
  541. package/es/src/subject-type/src/subject-type.vue.mjs.map +0 -1
  542. package/es/src/subject-type/src/subject-type.vue2.mjs +0 -2
  543. package/es/src/subject-type/src/subject-type.vue2.mjs.map +0 -1
  544. package/lib/_virtual/_plugin-vue_export-helper.cjs +0 -2
  545. package/lib/_virtual/_plugin-vue_export-helper.cjs.map +0 -1
  546. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs +0 -2
  547. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs.map +0 -1
  548. package/lib/src/data-chart/src/analyze.cjs +0 -2
  549. package/lib/src/data-chart/src/analyze.cjs.map +0 -1
  550. package/lib/src/data-chart/src/components/area.vue.cjs +0 -2
  551. package/lib/src/data-chart/src/components/area.vue.cjs.map +0 -1
  552. package/lib/src/data-chart/src/components/area.vue2.cjs +0 -2
  553. package/lib/src/data-chart/src/components/area.vue2.cjs.map +0 -1
  554. package/lib/src/data-chart/src/components/area.vue3.cjs +0 -2
  555. package/lib/src/data-chart/src/components/area.vue3.cjs.map +0 -1
  556. package/lib/src/data-chart/src/components/bar.vue.cjs +0 -2
  557. package/lib/src/data-chart/src/components/bar.vue.cjs.map +0 -1
  558. package/lib/src/data-chart/src/components/bar.vue2.cjs +0 -2
  559. package/lib/src/data-chart/src/components/bar.vue2.cjs.map +0 -1
  560. package/lib/src/data-chart/src/components/bar.vue3.cjs +0 -2
  561. package/lib/src/data-chart/src/components/bar.vue3.cjs.map +0 -1
  562. package/lib/src/data-chart/src/components/card.vue.cjs +0 -2
  563. package/lib/src/data-chart/src/components/card.vue.cjs.map +0 -1
  564. package/lib/src/data-chart/src/components/card.vue2.cjs +0 -2
  565. package/lib/src/data-chart/src/components/card.vue2.cjs.map +0 -1
  566. package/lib/src/data-chart/src/components/card.vue3.cjs +0 -2
  567. package/lib/src/data-chart/src/components/card.vue3.cjs.map +0 -1
  568. package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs +0 -2
  569. package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs.map +0 -1
  570. package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs +0 -2
  571. package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs.map +0 -1
  572. package/lib/src/data-chart/src/components/empty.svg.cjs +0 -2
  573. package/lib/src/data-chart/src/components/empty.svg.cjs.map +0 -1
  574. package/lib/src/data-chart/src/components/empty.vue.cjs +0 -2
  575. package/lib/src/data-chart/src/components/empty.vue.cjs.map +0 -1
  576. package/lib/src/data-chart/src/components/empty.vue2.cjs +0 -2
  577. package/lib/src/data-chart/src/components/empty.vue2.cjs.map +0 -1
  578. package/lib/src/data-chart/src/components/funnel.vue.cjs +0 -2
  579. package/lib/src/data-chart/src/components/funnel.vue.cjs.map +0 -1
  580. package/lib/src/data-chart/src/components/funnel.vue2.cjs +0 -2
  581. package/lib/src/data-chart/src/components/funnel.vue2.cjs.map +0 -1
  582. package/lib/src/data-chart/src/components/funnel.vue3.cjs +0 -2
  583. package/lib/src/data-chart/src/components/funnel.vue3.cjs.map +0 -1
  584. package/lib/src/data-chart/src/components/line.vue.cjs +0 -2
  585. package/lib/src/data-chart/src/components/line.vue.cjs.map +0 -1
  586. package/lib/src/data-chart/src/components/line.vue2.cjs +0 -2
  587. package/lib/src/data-chart/src/components/line.vue2.cjs.map +0 -1
  588. package/lib/src/data-chart/src/components/line.vue3.cjs +0 -2
  589. package/lib/src/data-chart/src/components/line.vue3.cjs.map +0 -1
  590. package/lib/src/data-chart/src/components/pie.vue.cjs +0 -2
  591. package/lib/src/data-chart/src/components/pie.vue.cjs.map +0 -1
  592. package/lib/src/data-chart/src/components/pie.vue2.cjs +0 -2
  593. package/lib/src/data-chart/src/components/pie.vue2.cjs.map +0 -1
  594. package/lib/src/data-chart/src/components/pie.vue3.cjs +0 -2
  595. package/lib/src/data-chart/src/components/pie.vue3.cjs.map +0 -1
  596. package/lib/src/data-chart/src/components/radar.vue.cjs +0 -2
  597. package/lib/src/data-chart/src/components/radar.vue.cjs.map +0 -1
  598. package/lib/src/data-chart/src/components/radar.vue2.cjs +0 -2
  599. package/lib/src/data-chart/src/components/radar.vue2.cjs.map +0 -1
  600. package/lib/src/data-chart/src/components/radar.vue3.cjs +0 -2
  601. package/lib/src/data-chart/src/components/radar.vue3.cjs.map +0 -1
  602. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +0 -2
  603. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +0 -1
  604. package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs +0 -2
  605. package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs.map +0 -1
  606. package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs +0 -2
  607. package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs.map +0 -1
  608. package/lib/src/data-chart/src/components/scatter.vue.cjs +0 -2
  609. package/lib/src/data-chart/src/components/scatter.vue.cjs.map +0 -1
  610. package/lib/src/data-chart/src/components/scatter.vue2.cjs +0 -2
  611. package/lib/src/data-chart/src/components/scatter.vue2.cjs.map +0 -1
  612. package/lib/src/data-chart/src/components/scatter.vue3.cjs +0 -2
  613. package/lib/src/data-chart/src/components/scatter.vue3.cjs.map +0 -1
  614. package/lib/src/data-chart/src/components/table.vue.cjs +0 -2
  615. package/lib/src/data-chart/src/components/table.vue.cjs.map +0 -1
  616. package/lib/src/data-chart/src/components/table.vue2.cjs +0 -2
  617. package/lib/src/data-chart/src/components/table.vue2.cjs.map +0 -1
  618. package/lib/src/data-chart/src/data-chart.vue.cjs +0 -2
  619. package/lib/src/data-chart/src/data-chart.vue.cjs.map +0 -1
  620. package/lib/src/data-chart/src/data-chart.vue2.cjs +0 -2
  621. package/lib/src/data-chart/src/data-chart.vue2.cjs.map +0 -1
  622. package/lib/src/data-chart/src/utils/config.cjs +0 -2
  623. package/lib/src/data-chart/src/utils/config.cjs.map +0 -1
  624. package/lib/src/data-chart/src/utils/injectionKeys.cjs +0 -2
  625. package/lib/src/data-chart/src/utils/injectionKeys.cjs.map +0 -1
  626. package/lib/src/data-chart/src/utils/mapData.cjs +0 -2
  627. package/lib/src/data-chart/src/utils/mapData.cjs.map +0 -1
  628. package/lib/src/data-chart/src/utils/safe-eval.cjs +0 -2
  629. package/lib/src/data-chart/src/utils/safe-eval.cjs.map +0 -1
  630. package/lib/src/data-chart/src/utils/types.cjs +0 -2
  631. package/lib/src/data-chart/src/utils/types.cjs.map +0 -1
  632. package/lib/src/data-chart/src/utils/useCharts.cjs +0 -2
  633. package/lib/src/data-chart/src/utils/useCharts.cjs.map +0 -1
  634. package/lib/src/file-upload/src/file-upload.vue.cjs +0 -2
  635. package/lib/src/file-upload/src/file-upload.vue.cjs.map +0 -1
  636. package/lib/src/file-upload/src/file-upload.vue2.cjs +0 -2
  637. package/lib/src/file-upload/src/file-upload.vue2.cjs.map +0 -1
  638. package/lib/src/fixed-action-bar/index.cjs +0 -2
  639. package/lib/src/fixed-action-bar/index.cjs.map +0 -1
  640. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs +0 -2
  641. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs.map +0 -1
  642. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs +0 -2
  643. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs.map +0 -1
  644. package/lib/src/image-upload/src/image-upload.vue.cjs +0 -2
  645. package/lib/src/image-upload/src/image-upload.vue.cjs.map +0 -1
  646. package/lib/src/image-upload/src/image-upload.vue2.cjs +0 -2
  647. package/lib/src/image-upload/src/image-upload.vue2.cjs.map +0 -1
  648. package/lib/src/photo-crop-tool/src/composables.cjs +0 -2
  649. package/lib/src/photo-crop-tool/src/composables.cjs.map +0 -1
  650. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs +0 -2
  651. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs.map +0 -1
  652. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs +0 -2
  653. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs.map +0 -1
  654. package/lib/src/subject-action/index.cjs +0 -2
  655. package/lib/src/subject-action/index.cjs.map +0 -1
  656. package/lib/src/subject-action/src/subject-action.vue.cjs +0 -2
  657. package/lib/src/subject-action/src/subject-action.vue.cjs.map +0 -1
  658. package/lib/src/subject-action/src/subject-action.vue2.cjs +0 -2
  659. package/lib/src/subject-action/src/subject-action.vue2.cjs.map +0 -1
  660. package/lib/src/subject-layout/index.cjs +0 -2
  661. package/lib/src/subject-layout/index.cjs.map +0 -1
  662. package/lib/src/subject-layout/src/subject-layout.vue.cjs +0 -2
  663. package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +0 -1
  664. package/lib/src/subject-layout/src/subject-layout.vue2.cjs +0 -2
  665. package/lib/src/subject-layout/src/subject-layout.vue2.cjs.map +0 -1
  666. package/lib/src/subject-list/index.cjs +0 -2
  667. package/lib/src/subject-list/index.cjs.map +0 -1
  668. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +0 -2
  669. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +0 -1
  670. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs +0 -2
  671. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs.map +0 -1
  672. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +0 -2
  673. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +0 -1
  674. package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs +0 -2
  675. package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs.map +0 -1
  676. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +0 -2
  677. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +0 -1
  678. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs +0 -2
  679. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs.map +0 -1
  680. package/lib/src/subject-list/src/components/subject-scale.vue.cjs +0 -2
  681. package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +0 -1
  682. package/lib/src/subject-list/src/components/subject-scale.vue2.cjs +0 -2
  683. package/lib/src/subject-list/src/components/subject-scale.vue2.cjs.map +0 -1
  684. package/lib/src/subject-list/src/components/subject-single.vue.cjs +0 -2
  685. package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +0 -1
  686. package/lib/src/subject-list/src/components/subject-single.vue2.cjs +0 -2
  687. package/lib/src/subject-list/src/components/subject-single.vue2.cjs.map +0 -1
  688. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +0 -2
  689. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +0 -1
  690. package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs +0 -2
  691. package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs.map +0 -1
  692. package/lib/src/subject-list/src/subject-list.vue.cjs +0 -2
  693. package/lib/src/subject-list/src/subject-list.vue.cjs.map +0 -1
  694. package/lib/src/subject-list/src/subject-list.vue2.cjs +0 -2
  695. package/lib/src/subject-list/src/subject-list.vue2.cjs.map +0 -1
  696. package/lib/src/subject-type/index.cjs +0 -2
  697. package/lib/src/subject-type/index.cjs.map +0 -1
  698. package/lib/src/subject-type/src/subject-type.vue.cjs +0 -2
  699. package/lib/src/subject-type/src/subject-type.vue.cjs.map +0 -1
  700. package/lib/src/subject-type/src/subject-type.vue2.cjs +0 -2
  701. package/lib/src/subject-type/src/subject-type.vue2.cjs.map +0 -1
  702. package/theme-chalk/index.css +0 -1
  703. package/theme-chalk/index.scss +0 -17
  704. package/theme-chalk/src/base.css +0 -1
  705. package/theme-chalk/src/base.scss +0 -16
  706. package/theme-chalk/src/common/element-plus-deps.css +0 -1
  707. package/theme-chalk/src/common/element-plus-deps.scss +0 -40
  708. package/theme-chalk/src/common/element-plus.css +0 -1
  709. package/theme-chalk/src/common/element-plus.scss +0 -606
  710. package/theme-chalk/src/data-chart/empty.css +0 -1
  711. package/theme-chalk/src/data-chart/empty.scss +0 -24
  712. package/theme-chalk/src/data-chart/index.css +0 -1
  713. package/theme-chalk/src/data-chart/index.scss +0 -11
  714. package/theme-chalk/src/data-chart/table.css +0 -1
  715. package/theme-chalk/src/data-chart/table.scss +0 -43
  716. package/theme-chalk/src/file-upload.css +0 -1
  717. package/theme-chalk/src/file-upload.scss +0 -34
  718. package/theme-chalk/src/fixed-action-bar.css +0 -1
  719. package/theme-chalk/src/fixed-action-bar.scss +0 -18
  720. package/theme-chalk/src/icon.css +0 -1
  721. package/theme-chalk/src/icon.scss +0 -35
  722. package/theme-chalk/src/image-upload.css +0 -1
  723. package/theme-chalk/src/image-upload.scss +0 -157
  724. package/theme-chalk/src/mixins/_var.css +0 -0
  725. package/theme-chalk/src/mixins/_var.scss +0 -24
  726. package/theme-chalk/src/mixins/config.css +0 -0
  727. package/theme-chalk/src/mixins/config.scss +0 -12
  728. package/theme-chalk/src/mixins/function.css +0 -0
  729. package/theme-chalk/src/mixins/function.scss +0 -95
  730. package/theme-chalk/src/mixins/mixins.css +0 -0
  731. package/theme-chalk/src/mixins/mixins.scss +0 -102
  732. package/theme-chalk/src/normalize.css +0 -1
  733. package/theme-chalk/src/normalize.scss +0 -11
  734. package/theme-chalk/src/photo-crop-tool.css +0 -1
  735. package/theme-chalk/src/photo-crop-tool.scss +0 -98
  736. package/theme-chalk/src/subject-action.css +0 -1
  737. package/theme-chalk/src/subject-action.scss +0 -37
  738. package/theme-chalk/src/subject-layout.css +0 -1
  739. package/theme-chalk/src/subject-layout.scss +0 -28
  740. package/theme-chalk/src/subject-list.css +0 -1
  741. package/theme-chalk/src/subject-list.scss +0 -290
  742. package/theme-chalk/src/subject-template.css +0 -1
  743. package/theme-chalk/src/subject-template.scss +0 -5
  744. package/theme-chalk/src/subject-type.css +0 -1
  745. package/theme-chalk/src/subject-type.scss +0 -32
  746. package/theme-chalk/src/tiny-mce-editor.css +0 -1
  747. package/theme-chalk/src/tiny-mce-editor.scss +0 -29
  748. package/types/src/data-chart/src/analyze.d.ts +0 -23
  749. package/types/src/data-chart/src/analyze.d.ts.map +0 -1
  750. package/types/src/data-chart/src/components/area.vue.d.ts +0 -12
  751. package/types/src/data-chart/src/components/area.vue.d.ts.map +0 -1
  752. package/types/src/data-chart/src/components/bar.vue.d.ts +0 -12
  753. package/types/src/data-chart/src/components/bar.vue.d.ts.map +0 -1
  754. package/types/src/data-chart/src/components/card.vue.d.ts +0 -27
  755. package/types/src/data-chart/src/components/card.vue.d.ts.map +0 -1
  756. package/types/src/data-chart/src/components/empty.vue.d.ts +0 -11
  757. package/types/src/data-chart/src/components/empty.vue.d.ts.map +0 -1
  758. package/types/src/data-chart/src/components/funnel.vue.d.ts +0 -11
  759. package/types/src/data-chart/src/components/funnel.vue.d.ts.map +0 -1
  760. package/types/src/data-chart/src/components/line.vue.d.ts +0 -12
  761. package/types/src/data-chart/src/components/line.vue.d.ts.map +0 -1
  762. package/types/src/data-chart/src/components/pie.vue.d.ts +0 -12
  763. package/types/src/data-chart/src/components/pie.vue.d.ts.map +0 -1
  764. package/types/src/data-chart/src/components/radar.vue.d.ts +0 -11
  765. package/types/src/data-chart/src/components/radar.vue.d.ts.map +0 -1
  766. package/types/src/data-chart/src/components/scatter-simple.vue.d.ts +0 -11
  767. package/types/src/data-chart/src/components/scatter-simple.vue.d.ts.map +0 -1
  768. package/types/src/data-chart/src/components/scatter.vue.d.ts +0 -11
  769. package/types/src/data-chart/src/components/scatter.vue.d.ts.map +0 -1
  770. package/types/src/data-chart/src/components/table.vue.d.ts +0 -27
  771. package/types/src/data-chart/src/components/table.vue.d.ts.map +0 -1
  772. package/types/src/data-chart/src/data-chart.vue.d.ts +0 -28
  773. package/types/src/data-chart/src/data-chart.vue.d.ts.map +0 -1
  774. package/types/src/data-chart/src/utils/config.d.ts +0 -41
  775. package/types/src/data-chart/src/utils/config.d.ts.map +0 -1
  776. package/types/src/data-chart/src/utils/injectionKeys.d.ts +0 -3
  777. package/types/src/data-chart/src/utils/injectionKeys.d.ts.map +0 -1
  778. package/types/src/data-chart/src/utils/mapData.d.ts +0 -64
  779. package/types/src/data-chart/src/utils/mapData.d.ts.map +0 -1
  780. package/types/src/data-chart/src/utils/safe-eval.d.ts +0 -9
  781. package/types/src/data-chart/src/utils/safe-eval.d.ts.map +0 -1
  782. package/types/src/data-chart/src/utils/types.d.ts +0 -72
  783. package/types/src/data-chart/src/utils/types.d.ts.map +0 -1
  784. package/types/src/data-chart/src/utils/useCharts.d.ts +0 -16
  785. package/types/src/data-chart/src/utils/useCharts.d.ts.map +0 -1
  786. package/types/src/file-upload/src/file-upload.vue.d.ts +0 -20
  787. package/types/src/file-upload/src/file-upload.vue.d.ts.map +0 -1
  788. package/types/src/fixed-action-bar/index.d.ts +0 -56
  789. package/types/src/fixed-action-bar/index.d.ts.map +0 -1
  790. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +0 -31
  791. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts.map +0 -1
  792. package/types/src/image-upload/src/image-upload.vue.d.ts +0 -59
  793. package/types/src/image-upload/src/image-upload.vue.d.ts.map +0 -1
  794. package/types/src/photo-crop-tool/src/composables.d.ts +0 -7
  795. package/types/src/photo-crop-tool/src/composables.d.ts.map +0 -1
  796. package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +0 -65
  797. package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts.map +0 -1
  798. package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts +0 -25
  799. package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts.map +0 -1
@@ -0,0 +1,2 @@
1
+ let e=!1;const n=function(n){!function(){if(!e){const n=document.createElement("style");n.id="qxs-dialog-styles",n.textContent="\n.qxs-dialog-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9998;\n animation: qxs-overlay-fade-in 0.3s ease;\n}\n.qxs-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #fff;\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n z-index: 9999;\n min-width: 300px;\n max-width: 90vw;\n display: flex;\n flex-direction: column;\n animation: qxs-dialog-scale-in 0.3s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n.qxs-dialog__header {\n padding: 16px 20px;\n border-bottom: 1px solid #eee;\n font-size: 16px;\n font-weight: 600;\n color: #303133;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.qxs-dialog__title { flex: 1; }\n.qxs-dialog__close {\n cursor: pointer;\n font-size: 20px;\n color: #909399;\n background: none;\n border: none;\n padding: 0;\n line-height: 1;\n}\n.qxs-dialog__close:hover { color: #409eff; }\n.qxs-dialog__body {\n padding: 20px;\n color: #606266;\n font-size: 14px;\n line-height: 1.6;\n}\n.qxs-dialog__footer {\n padding: 12px 20px;\n border-top: 1px solid #eee;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n}\n.qxs-dialog__button {\n padding: 8px 20px;\n border-radius: 4px;\n font-size: 14px;\n cursor: pointer;\n border: 1px solid #dcdfe6;\n background-color: #fff;\n color: #606266;\n}\n.qxs-dialog__button:hover { border-color: #409eff; color: #409eff; }\n.qxs-dialog__button--primary { background-color: #409eff; border-color: #409eff; color: #fff; }\n.qxs-dialog__button--primary:hover { background-color: #66b1ff; border-color: #66b1ff; }\n@keyframes qxs-overlay-fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes qxs-dialog-scale-in { from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }\n",document.head.appendChild(n),e=!0}}();const{title:o="提示",content:t="",width:a="30%",showClose:s=!0,closeOnClickModal:i=!1,closeOnPressEscape:l=!0,confirmButtonText:d="确定",cancelButtonText:c="取消",showConfirmButton:r=!0,showCancelButton:x=!0,onConfirm:p,onCancel:f,onClose:m}=n,u=document.createElement("div");u.className="qxs-dialog-overlay";const g=document.createElement("div");g.className="qxs-dialog",g.style.width=a;const _=document.createElement("div");_.className="qxs-dialog__header";const b=document.createElement("span");if(b.className="qxs-dialog__title",b.textContent=o,_.appendChild(b),s){const e=document.createElement("button");e.className="qxs-dialog__close",e.type="button",e.textContent="×",_.appendChild(e)}const y=document.createElement("div");if(y.className="qxs-dialog__body",y.textContent=t,g.append(_,y),r||x){const e=document.createElement("div");if(e.className="qxs-dialog__footer",x){const n=document.createElement("button");n.className="qxs-dialog__button qxs-dialog__button--cancel",n.type="button",n.textContent=c,e.appendChild(n)}if(r){const n=document.createElement("button");n.className="qxs-dialog__button qxs-dialog__button--primary qxs-dialog__button--confirm",n.type="button",n.textContent=d,e.appendChild(n)}g.appendChild(e)}document.body.appendChild(u),document.body.appendChild(g);let q=!1;const h=()=>{q||(q=!0,g.style.animation="qxs-dialog-scale-in 0.2s ease reverse",u.style.animation="qxs-overlay-fade-in 0.2s ease reverse",setTimeout(()=>{u.remove(),g.remove(),m?.()},200))},v=async()=>{try{await(p?.()),h()}catch(e){}},C=()=>{f?.(),h()};if(s&&g.querySelector(".qxs-dialog__close")?.addEventListener("click",h),x&&g.querySelector(".qxs-dialog__button--cancel")?.addEventListener("click",C),r&&g.querySelector(".qxs-dialog__button--confirm")?.addEventListener("click",v),i&&u.addEventListener("click",h),l){const e=n=>{"Escape"===n.key&&(h(),document.removeEventListener("keydown",e))};document.addEventListener("keydown",e)}return{close:h}};export{n as QxsDialog,n as default};
2
+ //# sourceMappingURL=dialog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.mjs","sources":["../../../../../../packages/components/src/dialog/src/dialog.ts"],"sourcesContent":["export interface QxsDialogOptions {\n title?: string\n content?: string\n width?: string\n showClose?: boolean\n closeOnClickModal?: boolean\n closeOnPressEscape?: boolean\n confirmButtonText?: string\n cancelButtonText?: string\n showConfirmButton?: boolean\n showCancelButton?: boolean\n onConfirm?: () => void | Promise<void>\n onCancel?: () => void\n onClose?: () => void\n}\n\ninterface QxsDialogInstance {\n close: () => void\n}\n\nconst styles = `\n.qxs-dialog-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9998;\n animation: qxs-overlay-fade-in 0.3s ease;\n}\n.qxs-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #fff;\n border-radius: 8px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n z-index: 9999;\n min-width: 300px;\n max-width: 90vw;\n display: flex;\n flex-direction: column;\n animation: qxs-dialog-scale-in 0.3s ease;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n.qxs-dialog__header {\n padding: 16px 20px;\n border-bottom: 1px solid #eee;\n font-size: 16px;\n font-weight: 600;\n color: #303133;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.qxs-dialog__title { flex: 1; }\n.qxs-dialog__close {\n cursor: pointer;\n font-size: 20px;\n color: #909399;\n background: none;\n border: none;\n padding: 0;\n line-height: 1;\n}\n.qxs-dialog__close:hover { color: #409eff; }\n.qxs-dialog__body {\n padding: 20px;\n color: #606266;\n font-size: 14px;\n line-height: 1.6;\n}\n.qxs-dialog__footer {\n padding: 12px 20px;\n border-top: 1px solid #eee;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n}\n.qxs-dialog__button {\n padding: 8px 20px;\n border-radius: 4px;\n font-size: 14px;\n cursor: pointer;\n border: 1px solid #dcdfe6;\n background-color: #fff;\n color: #606266;\n}\n.qxs-dialog__button:hover { border-color: #409eff; color: #409eff; }\n.qxs-dialog__button--primary { background-color: #409eff; border-color: #409eff; color: #fff; }\n.qxs-dialog__button--primary:hover { background-color: #66b1ff; border-color: #66b1ff; }\n@keyframes qxs-overlay-fade-in { from { opacity: 0; } to { opacity: 1; } }\n@keyframes qxs-dialog-scale-in { from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }\n`\n\nlet stylesInjected = false\n\nfunction injectStyles() {\n if (!stylesInjected) {\n const styleEl = document.createElement('style')\n styleEl.id = 'qxs-dialog-styles'\n styleEl.textContent = styles\n document.head.appendChild(styleEl)\n stylesInjected = true\n }\n}\n\nfunction createDialog(options: QxsDialogOptions): QxsDialogInstance {\n injectStyles()\n\n const {\n title = '提示',\n content = '',\n width = '30%',\n showClose = true,\n closeOnClickModal = false,\n closeOnPressEscape = true,\n confirmButtonText = '确定',\n cancelButtonText = '取消',\n showConfirmButton = true,\n showCancelButton = true,\n onConfirm,\n onCancel,\n onClose,\n } = options\n\n const overlay = document.createElement('div')\n overlay.className = 'qxs-dialog-overlay'\n\n const dialog = document.createElement('div')\n dialog.className = 'qxs-dialog'\n dialog.style.width = width\n\n const header = document.createElement('div')\n header.className = 'qxs-dialog__header'\n\n const titleEl = document.createElement('span')\n titleEl.className = 'qxs-dialog__title'\n titleEl.textContent = title\n header.appendChild(titleEl)\n\n if (showClose) {\n const closeButton = document.createElement('button')\n closeButton.className = 'qxs-dialog__close'\n closeButton.type = 'button'\n closeButton.textContent = '×'\n header.appendChild(closeButton)\n }\n\n const body = document.createElement('div')\n body.className = 'qxs-dialog__body'\n body.textContent = content\n\n dialog.append(header, body)\n\n if (showConfirmButton || showCancelButton) {\n const footer = document.createElement('div')\n footer.className = 'qxs-dialog__footer'\n\n if (showCancelButton) {\n const cancelButton = document.createElement('button')\n cancelButton.className = 'qxs-dialog__button qxs-dialog__button--cancel'\n cancelButton.type = 'button'\n cancelButton.textContent = cancelButtonText\n footer.appendChild(cancelButton)\n }\n\n if (showConfirmButton) {\n const confirmButton = document.createElement('button')\n confirmButton.className = 'qxs-dialog__button qxs-dialog__button--primary qxs-dialog__button--confirm'\n confirmButton.type = 'button'\n confirmButton.textContent = confirmButtonText\n footer.appendChild(confirmButton)\n }\n\n dialog.appendChild(footer)\n }\n\n document.body.appendChild(overlay)\n document.body.appendChild(dialog)\n\n let closed = false\n\n const close = () => {\n if (closed) { return }\n closed = true\n dialog.style.animation = 'qxs-dialog-scale-in 0.2s ease reverse'\n overlay.style.animation = 'qxs-overlay-fade-in 0.2s ease reverse'\n setTimeout(() => {\n overlay.remove()\n dialog.remove()\n onClose?.()\n }, 200)\n }\n\n const handleConfirm = async () => {\n try {\n await onConfirm?.()\n close()\n }\n catch (error) {\n console.error('Dialog confirm error:', error)\n }\n }\n\n const handleCancel = () => {\n onCancel?.()\n close()\n }\n\n if (showClose) {\n dialog.querySelector('.qxs-dialog__close')?.addEventListener('click', close)\n }\n\n if (showCancelButton) {\n dialog.querySelector('.qxs-dialog__button--cancel')?.addEventListener('click', handleCancel)\n }\n\n if (showConfirmButton) {\n dialog.querySelector('.qxs-dialog__button--confirm')?.addEventListener('click', handleConfirm)\n }\n\n if (closeOnClickModal) {\n overlay.addEventListener('click', close)\n }\n\n if (closeOnPressEscape) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n close()\n document.removeEventListener('keydown', handleKeydown)\n }\n }\n document.addEventListener('keydown', handleKeydown)\n }\n\n return { close }\n}\n\ninterface QxsDialogFunction {\n (options: QxsDialogOptions): QxsDialogInstance\n}\n\nconst QxsDialog = createDialog as QxsDialogFunction\n\nexport { QxsDialog, type QxsDialogFunction, type QxsDialogInstance }\nexport default QxsDialog\n"],"names":["stylesInjected","QxsDialog","options","styleEl","document","createElement","id","textContent","head","appendChild","injectStyles","title","content","width","showClose","closeOnClickModal","closeOnPressEscape","confirmButtonText","cancelButtonText","showConfirmButton","showCancelButton","onConfirm","onCancel","onClose","overlay","className","dialog","style","header","titleEl","closeButton","type","body","append","footer","cancelButton","confirmButton","closed","close","animation","setTimeout","remove","handleConfirm","async","error","handleCancel","querySelector","addEventListener","handleKeydown","e","key","removeEventListener"],"mappings":"AAiGA,IAAIA,GAAiB,EAoJrB,MAAMC,EAxIN,SAAsBC,IAVtB,WACE,IAAKF,EAAgB,CACnB,MAAMG,EAAUC,SAASC,cAAc,SACvCF,EAAQG,GAAK,oBACbH,EAAQI,YAnFG,k+DAoFXH,SAASI,KAAKC,YAAYN,GAC1BH,GAAiB,CACnB,CACF,CAGEU,GAEA,MAAMC,MACJA,EAAQ,KAAAC,QACRA,EAAU,GAAAC,MACVA,EAAQ,MAAAC,UACRA,GAAY,EAAAC,kBACZA,GAAoB,EAAAC,mBACpBA,GAAqB,EAAAC,kBACrBA,EAAoB,KAAAC,iBACpBA,EAAmB,KAAAC,kBACnBA,GAAoB,EAAAC,iBACpBA,GAAmB,EAAAC,UACnBA,EAAAC,SACAA,EAAAC,QACAA,GACErB,EAEEsB,EAAUpB,SAASC,cAAc,OACvCmB,EAAQC,UAAY,qBAEpB,MAAMC,EAAStB,SAASC,cAAc,OACtCqB,EAAOD,UAAY,aACnBC,EAAOC,MAAMd,MAAQA,EAErB,MAAMe,EAASxB,SAASC,cAAc,OACtCuB,EAAOH,UAAY,qBAEnB,MAAMI,EAAUzB,SAASC,cAAc,QAKvC,GAJAwB,EAAQJ,UAAY,oBACpBI,EAAQtB,YAAcI,EACtBiB,EAAOnB,YAAYoB,GAEff,EAAW,CACb,MAAMgB,EAAc1B,SAASC,cAAc,UAC3CyB,EAAYL,UAAY,oBACxBK,EAAYC,KAAO,SACnBD,EAAYvB,YAAc,IAC1BqB,EAAOnB,YAAYqB,EACrB,CAEA,MAAME,EAAO5B,SAASC,cAAc,OAMpC,GALA2B,EAAKP,UAAY,mBACjBO,EAAKzB,YAAcK,EAEnBc,EAAOO,OAAOL,EAAQI,GAElBb,GAAqBC,EAAkB,CACzC,MAAMc,EAAS9B,SAASC,cAAc,OAGtC,GAFA6B,EAAOT,UAAY,qBAEfL,EAAkB,CACpB,MAAMe,EAAe/B,SAASC,cAAc,UAC5C8B,EAAaV,UAAY,gDACzBU,EAAaJ,KAAO,SACpBI,EAAa5B,YAAcW,EAC3BgB,EAAOzB,YAAY0B,EACrB,CAEA,GAAIhB,EAAmB,CACrB,MAAMiB,EAAgBhC,SAASC,cAAc,UAC7C+B,EAAcX,UAAY,6EAC1BW,EAAcL,KAAO,SACrBK,EAAc7B,YAAcU,EAC5BiB,EAAOzB,YAAY2B,EACrB,CAEAV,EAAOjB,YAAYyB,EACrB,CAEA9B,SAAS4B,KAAKvB,YAAYe,GAC1BpB,SAAS4B,KAAKvB,YAAYiB,GAE1B,IAAIW,GAAS,EAEb,MAAMC,EAAQA,KACRD,IACJA,GAAS,EACTX,EAAOC,MAAMY,UAAY,wCACzBf,EAAQG,MAAMY,UAAY,wCAC1BC,WAAW,KACThB,EAAQiB,SACRf,EAAOe,SACPlB,OACC,OAGCmB,EAAgBC,UACpB,UACQtB,OACNiB,GACF,OACOM,GAEP,GAGIC,EAAeA,KACnBvB,MACAgB,KAmBF,GAhBIxB,GACFY,EAAOoB,cAAc,uBAAuBC,iBAAiB,QAAST,GAGpElB,GACFM,EAAOoB,cAAc,gCAAgCC,iBAAiB,QAASF,GAG7E1B,GACFO,EAAOoB,cAAc,iCAAiCC,iBAAiB,QAASL,GAG9E3B,GACFS,EAAQuB,iBAAiB,QAAST,GAGhCtB,EAAoB,CACtB,MAAMgC,EAAiBC,IACP,WAAVA,EAAEC,MACJZ,IACAlC,SAAS+C,oBAAoB,UAAWH,KAG5C5C,SAAS2C,iBAAiB,UAAWC,EACvC,CAEA,MAAO,CAAEV,QACX"}
@@ -0,0 +1,2 @@
1
+ import{QxsDialog as s}from"../dialog/src/dialog.mjs";import{QxsMessage as o}from"../message/src/message.mjs";const e={install(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{message:g=!0,dialog:i=!0}=a;g&&(e.config.globalProperties.$qxsMessage=o,e.provide("$qxsMessage",o)),i&&(e.config.globalProperties.$qxsDialog=s,e.provide("$qxsDialog",s))}};export{e as QxsFeedbackPlugin,e as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/feedback-plugin/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport { QxsDialog } from '../dialog'\nimport { QxsMessage } from '../message'\n\nexport interface QxsFeedbackPluginOptions {\n message?: boolean\n dialog?: boolean\n}\n\nconst QxsFeedbackPlugin: Plugin = {\n install(app: App, options: QxsFeedbackPluginOptions = {}) {\n const {\n message = true,\n dialog = true,\n } = options\n\n if (message) {\n app.config.globalProperties.$qxsMessage = QxsMessage\n app.provide('$qxsMessage', QxsMessage)\n }\n\n if (dialog) {\n app.config.globalProperties.$qxsDialog = QxsDialog\n app.provide('$qxsDialog', QxsDialog)\n }\n },\n}\n\nexport { QxsFeedbackPlugin }\nexport default QxsFeedbackPlugin\n"],"names":["QxsFeedbackPlugin","install","app","options","arguments","length","undefined","message","dialog","config","globalProperties","$qxsMessage","QxsMessage","provide","$qxsDialog","QxsDialog"],"mappings":"6GASA,MAAMA,EAA4B,CAChCC,OAAAA,CAAQC,GAAkD,IAAxCC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAoC,CAAA,EACpD,MAAMG,QACJA,GAAU,EAAAC,OACVA,GAAS,GACPL,EAEAI,IACFL,EAAIO,OAAOC,iBAAiBC,YAAcC,EAC1CV,EAAIW,QAAQ,cAAeD,IAGzBJ,IACFN,EAAIO,OAAOC,iBAAiBI,WAAaC,EACzCb,EAAIW,QAAQ,aAAcE,GAE9B"}
@@ -1,2 +1,2 @@
1
- import{withInstall as o}from"../withInstall.mjs";import t from"./src/file-upload.vue.mjs";const m=o(t);export{m as QxsFileUpload,m as default};
1
+ import"@qxs-bns/components-wc";import{withInstall as e}from"../withInstall.mjs";import{createCustomElementBridge as t,createNullableProp as a}from"../wc-bridge.mjs";const s=e(t({name:"QxsFileUpload",tag:"qxs-file-upload",props:{action:a(),headers:a(),data:a(),name:a(),size:a(),max:a(),accept:a(),files:a(),notip:a(),ext:a()},slotNames:["tip"],createExpose:e=>({getElement:()=>e.value})}));export{s as QxsFileUpload,s as default};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/file-upload/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/file-upload.vue'\n\nconst QxsFileUpload = withInstall(component)\n\nexport {\n QxsFileUpload,\n}\n\nexport default QxsFileUpload\n"],"names":["QxsFileUpload","withInstall","component"],"mappings":"0FAGA,MAAMA,EAAgBC,EAAYC"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/file-upload/index.ts"],"sourcesContent":["import '@qxs-bns/components-wc'\nimport { withInstall } from '../withInstall'\nimport { createCustomElementBridge, createNullableProp } from '../wc-bridge'\n\ntype UploadItem = {\n name: string\n url?: string\n file?: File\n}\n\nconst component = createCustomElementBridge({\n name: 'QxsFileUpload',\n tag: 'qxs-file-upload',\n props: {\n action: createNullableProp<string>(),\n headers: createNullableProp<Record<string, string>>(),\n data: createNullableProp<Record<string, string | Blob>>(),\n name: createNullableProp<string>(),\n size: createNullableProp<number>(),\n max: createNullableProp<number>(),\n accept: createNullableProp<string>(),\n files: createNullableProp<UploadItem[]>(),\n notip: createNullableProp<boolean>(),\n ext: createNullableProp<string[]>(),\n },\n slotNames: ['tip'],\n createExpose: elementRef => ({\n getElement: () => elementRef.value,\n }),\n})\n\nexport const QxsFileUpload = withInstall(component)\n\nexport default QxsFileUpload\n"],"names":["QxsFileUpload","withInstall","createCustomElementBridge","name","tag","props","action","createNullableProp","headers","data","size","max","accept","files","notip","ext","slotNames","createExpose","elementRef","getElement","value"],"mappings":"qKAUA,MAqBaA,EAAgBC,EArBXC,EAA0B,CAC1CC,KAAM,gBACNC,IAAK,kBACLC,MAAO,CACLC,OAAQC,IACRC,QAASD,IACTE,KAAMF,IACNJ,KAAMI,IACNG,KAAMH,IACNI,IAAKJ,IACLK,OAAQL,IACRM,MAAON,IACPO,MAAOP,IACPQ,IAAKR,KAEPS,UAAW,CAAC,OACZC,aAAcC,IAAA,CACZC,WAAYA,IAAMD,EAAWE"}
@@ -1,2 +1,2 @@
1
- import{withInstall as m}from"../withInstall.mjs";import o from"./src/image-upload.vue.mjs";const t=m(o);export{t as QxsImageUpload,t as default};
1
+ import"@qxs-bns/components-wc";import{withInstall as e}from"../withInstall.mjs";import{createCustomElementBridge as t,createNullableProp as a}from"../wc-bridge.mjs";const i=e(t({name:"QxsImageUpload",tag:"qxs-image-upload",props:{action:a(),headers:a(),data:a(),name:a(),size:a(),width:a(),height:a(),accept:a(),placeholder:a(),notip:a(),tipText:a(),disabled:a(),limit:a(),fileList:a()},slotNames:["tip"],createExpose:e=>({getElement:()=>e.value})}));export{i as QxsImageUpload,i as default};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/image-upload/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/image-upload.vue'\n\nconst QxsImageUpload = withInstall(component)\n\nexport {\n QxsImageUpload,\n}\n\nexport default QxsImageUpload\n"],"names":["QxsImageUpload","withInstall","component"],"mappings":"2FAGA,MAAMA,EAAiBC,EAAYC"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/image-upload/index.ts"],"sourcesContent":["import '@qxs-bns/components-wc'\nimport { withInstall } from '../withInstall'\nimport { createCustomElementBridge, createNullableProp } from '../wc-bridge'\n\ntype ImageUploadFile = {\n uid?: string | number\n name: string\n url?: string\n size?: number\n status?: 'ready' | 'uploading' | 'success' | 'fail'\n file?: File\n}\n\nconst component = createCustomElementBridge({\n name: 'QxsImageUpload',\n tag: 'qxs-image-upload',\n props: {\n action: createNullableProp<string>(),\n headers: createNullableProp<Record<string, string>>(),\n data: createNullableProp<Record<string, string | Blob>>(),\n name: createNullableProp<string>(),\n size: createNullableProp<number>(),\n width: createNullableProp<number>(),\n height: createNullableProp<number>(),\n accept: createNullableProp<string>(),\n placeholder: createNullableProp<string>(),\n notip: createNullableProp<boolean>(),\n tipText: createNullableProp<string>(),\n disabled: createNullableProp<boolean>(),\n limit: createNullableProp<number>(),\n fileList: createNullableProp<ImageUploadFile[]>(),\n },\n slotNames: ['tip'],\n createExpose: elementRef => ({\n getElement: () => elementRef.value,\n }),\n})\n\nexport const QxsImageUpload = withInstall(component)\n\nexport default QxsImageUpload\n"],"names":["QxsImageUpload","withInstall","createCustomElementBridge","name","tag","props","action","createNullableProp","headers","data","size","width","height","accept","placeholder","notip","tipText","disabled","limit","fileList","slotNames","createExpose","elementRef","getElement","value"],"mappings":"qKAaA,MAyBaA,EAAiBC,EAzBZC,EAA0B,CAC1CC,KAAM,iBACNC,IAAK,mBACLC,MAAO,CACLC,OAAQC,IACRC,QAASD,IACTE,KAAMF,IACNJ,KAAMI,IACNG,KAAMH,IACNI,MAAOJ,IACPK,OAAQL,IACRM,OAAQN,IACRO,YAAaP,IACbQ,MAAOR,IACPS,QAAST,IACTU,SAAUV,IACVW,MAAOX,IACPY,SAAUZ,KAEZa,UAAW,CAAC,OACZC,aAAcC,IAAA,CACZC,WAAYA,IAAMD,EAAWE"}
@@ -1,2 +1,2 @@
1
- import{version as n}from"../package.json.mjs";function o(o){return{version:n,install:n=>{for(const r in o)n.use(o[r])}}}export{o as makeInstaller};
1
+ import{version as n}from"../package.json.mjs";function o(o){return{version:n,install:n=>{for(const t in o){const s=o[t];s&&"object"==typeof s&&"install"in s&&n.use(s)}}}}export{o as makeInstaller};
2
2
  //# sourceMappingURL=make-installer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-installer.mjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["makeInstaller","components","version","install","app","n","use"],"mappings":"8CAGA,SAASA,EAAcC,GASrB,MAAO,CACLC,UACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACdG,EAAIE,IAAIL,EAAWI,KAQzB"}
1
+ {"version":3,"file":"make-installer.mjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import { version } from '../package.json'\n\nfunction makeInstaller(components: Record<string, any>) {\n const install = (app: any) => {\n for (const n in components) {\n const component = components[n]\n if (component && typeof component === 'object' && 'install' in component) {\n app.use(component)\n }\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["makeInstaller","components","version","install","app","n","component","use"],"mappings":"8CAEA,SAASA,EAAcC,GAUrB,MAAO,CACLC,UACAC,QAXeC,IACf,IAAA,MAAWC,KAAKJ,EAAY,CAC1B,MAAMK,EAAYL,EAAWI,GACzBC,GAAkC,iBAAdA,GAA0B,YAAaA,GAC7DF,EAAIG,IAAID,EAEZ,GAOJ"}
@@ -0,0 +1,2 @@
1
+ function t(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";const o=function(t){return"string"==typeof t?{message:t}:t}(t),s=function(t){switch(t){case"success":return{bgColor:"#ecfdf5",borderColor:"#a7f3d0",textColor:"#065f46"};case"warning":return{bgColor:"#fffbeb",borderColor:"#fde68a",textColor:"#92400e"};case"error":return{bgColor:"#fef2f2",borderColor:"#fecaca",textColor:"#991b1b"};default:return{bgColor:"#eff6ff",borderColor:"#bfdbfe",textColor:"#1e40af"}}}(e),a=document.getElementById("qxs-message-container")||function(){const t=document.createElement("div");return t.id="qxs-message-container",t.className="qxs-toast-container",document.body.appendChild(t),t}(),r=document.createElement("div");r.className=`qxs-toast qxs-toast--${e}`,r.setAttribute("role","status"),r.setAttribute("aria-live","polite");const i=document.createElement("div");i.className="qxs-toast__content";const c=document.createElement("span");c.className="qxs-toast__text",c.textContent=o.message;const l=document.createElement("button");l.className="qxs-toast__close",l.setAttribute("aria-label","Close"),l.type="button",l.innerHTML='<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M3.5 3.5l7 7m0-7l-7 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',i.append(c,l),r.appendChild(i),r.style.cssText=`\n --toast-bg: ${s.bgColor};\n --toast-border: ${s.borderColor};\n --toast-text: ${s.textColor};\n `,l.onclick=()=>n(r),a.appendChild(r),requestAnimationFrame(()=>{r.classList.add("qxs-toast--enter"),requestAnimationFrame(()=>{r.classList.remove("qxs-toast--enter")})});const d=o.duration??3e3,x=setTimeout(()=>{n(r)},d);return r.onmouseenter=()=>clearTimeout(x),r.onmouseleave=()=>{setTimeout(()=>n(r),1e3)},{close:()=>n(r)}}function n(t){t.classList.add("qxs-toast--leave"),setTimeout(()=>t.remove(),200)}const e=function(n){return t(n)};if(e.success=n=>t(n,"success"),e.warning=n=>t(n,"warning"),e.info=n=>t(n,"info"),e.error=n=>t(n,"error"),e.closeAll=()=>{document.querySelectorAll(".qxs-toast").forEach(t=>t.remove())},"undefined"!=typeof document&&!document.getElementById("qxs-toast-styles")){const t=document.createElement("style");t.id="qxs-toast-styles",t.textContent="\n .qxs-toast-container {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 9999;\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 320px;\n width: auto;\n pointer-events: none;\n }\n\n .qxs-toast {\n position: relative;\n overflow: hidden;\n border-radius: 10px;\n border: 1px solid var(--toast-border);\n background: var(--toast-bg);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.02);\n pointer-events: all;\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--enter {\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--leave {\n animation: qxs-toast-out 0.2s cubic-bezier(0.21, 1.02, 0.73, 1) forwards;\n }\n\n .qxs-toast__content {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n gap: 8px;\n }\n\n .qxs-toast__text {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n color: var(--toast-text);\n }\n\n .qxs-toast__close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n margin: -4px -4px -4px 0;\n background: transparent;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n color: var(--toast-text);\n opacity: 0.5;\n transition: all 0.15s;\n }\n\n .qxs-toast__close:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.05);\n }\n\n @keyframes qxs-toast-in {\n 0% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n 100% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n }\n\n @keyframes qxs-toast-out {\n 0% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n 100% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n }\n\n @media (max-width: 480px) {\n .qxs-toast-container {\n top: 10px;\n right: 10px;\n left: 10px;\n max-width: none;\n }\n }\n ",document.head.appendChild(t)}export{e as QxsMessage,e as default};
2
+ //# sourceMappingURL=message.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.mjs","sources":["../../../../../../packages/components/src/message/src/message.ts"],"sourcesContent":["export interface QxsMessageOptions {\n message: string\n duration?: number\n}\n\nexport type QxsMessageParams = QxsMessageOptions | string\n\ninterface QxsMessageInstance {\n close: () => void\n}\n\nfunction normalizeParams(params: QxsMessageParams): QxsMessageOptions {\n return typeof params === 'string' ? { message: params } : params\n}\n\nfunction getTypeConfig(type: string) {\n switch (type) {\n case 'success':\n return {\n bgColor: '#ecfdf5',\n borderColor: '#a7f3d0',\n textColor: '#065f46',\n }\n case 'warning':\n return {\n bgColor: '#fffbeb',\n borderColor: '#fde68a',\n textColor: '#92400e',\n }\n case 'error':\n return {\n bgColor: '#fef2f2',\n borderColor: '#fecaca',\n textColor: '#991b1b',\n }\n case 'info':\n default:\n return {\n bgColor: '#eff6ff',\n borderColor: '#bfdbfe',\n textColor: '#1e40af',\n }\n }\n}\n\nfunction createMessage(params: QxsMessageParams, type: 'success' | 'warning' | 'info' | 'error' = 'info'): QxsMessageInstance {\n const options = normalizeParams(params)\n const config = getTypeConfig(type)\n\n const container = document.getElementById('qxs-message-container') || createContainer()\n\n const messageEl = document.createElement('div')\n messageEl.className = `qxs-toast qxs-toast--${type}`\n messageEl.setAttribute('role', 'status')\n messageEl.setAttribute('aria-live', 'polite')\n\n const content = document.createElement('div')\n content.className = 'qxs-toast__content'\n\n const text = document.createElement('span')\n text.className = 'qxs-toast__text'\n text.textContent = options.message\n\n const closeBtn = document.createElement('button')\n closeBtn.className = 'qxs-toast__close'\n closeBtn.setAttribute('aria-label', 'Close')\n closeBtn.type = 'button'\n closeBtn.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\"><path d=\"M3.5 3.5l7 7m0-7l-7 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>'\n\n content.append(text, closeBtn)\n messageEl.appendChild(content)\n\n messageEl.style.cssText = `\n --toast-bg: ${config.bgColor};\n --toast-border: ${config.borderColor};\n --toast-text: ${config.textColor};\n `\n\n closeBtn.onclick = () => removeMessage(messageEl)\n\n container.appendChild(messageEl)\n\n requestAnimationFrame(() => {\n messageEl.classList.add('qxs-toast--enter')\n requestAnimationFrame(() => {\n messageEl.classList.remove('qxs-toast--enter')\n })\n })\n\n const duration = options.duration ?? 3000\n\n const timer = setTimeout(() => {\n removeMessage(messageEl)\n }, duration)\n\n messageEl.onmouseenter = () => clearTimeout(timer)\n messageEl.onmouseleave = () => {\n setTimeout(() => removeMessage(messageEl), 1000)\n }\n\n return {\n close: () => removeMessage(messageEl),\n }\n}\n\nfunction createContainer(): HTMLElement {\n const container = document.createElement('div')\n container.id = 'qxs-message-container'\n container.className = 'qxs-toast-container'\n document.body.appendChild(container)\n return container\n}\n\nfunction removeMessage(el: HTMLElement) {\n el.classList.add('qxs-toast--leave')\n setTimeout(() => el.remove(), 200)\n}\n\nexport interface QxsMessageFunction {\n (params: QxsMessageParams): QxsMessageInstance\n success: (params: QxsMessageParams) => QxsMessageInstance\n warning: (params: QxsMessageParams) => QxsMessageInstance\n info: (params: QxsMessageParams) => QxsMessageInstance\n error: (params: QxsMessageParams) => QxsMessageInstance\n closeAll: () => void\n}\n\nconst QxsMessage = function (params: QxsMessageParams): QxsMessageInstance {\n return createMessage(params)\n} as QxsMessageFunction\n\nQxsMessage.success = (params: QxsMessageParams) => createMessage(params, 'success')\nQxsMessage.warning = (params: QxsMessageParams) => createMessage(params, 'warning')\nQxsMessage.info = (params: QxsMessageParams) => createMessage(params, 'info')\nQxsMessage.error = (params: QxsMessageParams) => createMessage(params, 'error')\nQxsMessage.closeAll = () => {\n document.querySelectorAll('.qxs-toast').forEach(el => el.remove())\n}\n\nexport { QxsMessage }\nexport type { QxsMessageInstance }\nexport default QxsMessage\n\nif (typeof document !== 'undefined' && !document.getElementById('qxs-toast-styles')) {\n const style = document.createElement('style')\n style.id = 'qxs-toast-styles'\n style.textContent = `\n .qxs-toast-container {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 9999;\n display: flex;\n flex-direction: column;\n gap: 8px;\n max-width: 320px;\n width: auto;\n pointer-events: none;\n }\n\n .qxs-toast {\n position: relative;\n overflow: hidden;\n border-radius: 10px;\n border: 1px solid var(--toast-border);\n background: var(--toast-bg);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(0, 0, 0, 0.02);\n pointer-events: all;\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--enter {\n animation: qxs-toast-in 0.3s cubic-bezier(0.21, 1.02, 0.73, 1);\n }\n\n .qxs-toast--leave {\n animation: qxs-toast-out 0.2s cubic-bezier(0.21, 1.02, 0.73, 1) forwards;\n }\n\n .qxs-toast__content {\n display: flex;\n align-items: center;\n padding: 12px 14px;\n gap: 8px;\n }\n\n .qxs-toast__text {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n color: var(--toast-text);\n }\n\n .qxs-toast__close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n margin: -4px -4px -4px 0;\n background: transparent;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n color: var(--toast-text);\n opacity: 0.5;\n transition: all 0.15s;\n }\n\n .qxs-toast__close:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.05);\n }\n\n @keyframes qxs-toast-in {\n 0% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n 100% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n }\n\n @keyframes qxs-toast-out {\n 0% {\n opacity: 1;\n transform: translateX(0) scale(1);\n }\n 100% {\n opacity: 0;\n transform: translateX(100%) scale(0.95);\n }\n }\n\n @media (max-width: 480px) {\n .qxs-toast-container {\n top: 10px;\n right: 10px;\n left: 10px;\n max-width: none;\n }\n }\n `\n document.head.appendChild(style)\n}\n"],"names":["createMessage","params","type","arguments","length","undefined","options","message","normalizeParams","config","bgColor","borderColor","textColor","getTypeConfig","container","document","getElementById","createElement","id","className","body","appendChild","createContainer","messageEl","setAttribute","content","text","textContent","closeBtn","innerHTML","append","style","cssText","onclick","removeMessage","requestAnimationFrame","classList","add","remove","duration","timer","setTimeout","onmouseenter","clearTimeout","onmouseleave","close","el","QxsMessage","success","warning","info","error","closeAll","querySelectorAll","forEach","head"],"mappings":"AA6CA,SAASA,EAAcC,GAAuG,IAA7EC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAiD,OAChG,MAAMG,EAnCR,SAAyBL,GACvB,MAAyB,iBAAXA,EAAsB,CAAEM,QAASN,GAAWA,CAC5D,CAiCkBO,CAAgBP,GAC1BQ,EAhCR,SAAuBP,GACrB,OAAQA,GACN,IAAK,UACH,MAAO,CACLQ,QAAS,UACTC,YAAa,UACbC,UAAW,WAEf,IAAK,UACH,MAAO,CACLF,QAAS,UACTC,YAAa,UACbC,UAAW,WAEf,IAAK,QACH,MAAO,CACLF,QAAS,UACTC,YAAa,UACbC,UAAW,WAGf,QACE,MAAO,CACLF,QAAS,UACTC,YAAa,UACbC,UAAW,WAGnB,CAIiBC,CAAcX,GAEvBY,EAAYC,SAASC,eAAe,0BAwD5C,WACE,MAAMF,EAAYC,SAASE,cAAc,OAIzC,OAHAH,EAAUI,GAAK,wBACfJ,EAAUK,UAAY,sBACtBJ,SAASK,KAAKC,YAAYP,GACnBA,CACT,CA9DwEQ,GAEhEC,EAAYR,SAASE,cAAc,OACzCM,EAAUJ,UAAY,wBAAwBjB,IAC9CqB,EAAUC,aAAa,OAAQ,UAC/BD,EAAUC,aAAa,YAAa,UAEpC,MAAMC,EAAUV,SAASE,cAAc,OACvCQ,EAAQN,UAAY,qBAEpB,MAAMO,EAAOX,SAASE,cAAc,QACpCS,EAAKP,UAAY,kBACjBO,EAAKC,YAAcrB,EAAQC,QAE3B,MAAMqB,EAAWb,SAASE,cAAc,UACxCW,EAAST,UAAY,mBACrBS,EAASJ,aAAa,aAAc,SACpCI,EAAS1B,KAAO,SAChB0B,EAASC,UAAY,sKAErBJ,EAAQK,OAAOJ,EAAME,GACrBL,EAAUF,YAAYI,GAEtBF,EAAUQ,MAAMC,QAAU,qBACVvB,EAAOC,iCACHD,EAAOE,mCACTF,EAAOG,iBAGzBgB,EAASK,QAAU,IAAMC,EAAcX,GAEvCT,EAAUO,YAAYE,GAEtBY,sBAAsB,KACpBZ,EAAUa,UAAUC,IAAI,oBACxBF,sBAAsB,KACpBZ,EAAUa,UAAUE,OAAO,wBAI/B,MAAMC,EAAWjC,EAAQiC,UAAY,IAE/BC,EAAQC,WAAW,KACvBP,EAAcX,IACbgB,GAOH,OALAhB,EAAUmB,aAAe,IAAMC,aAAaH,GAC5CjB,EAAUqB,aAAe,KACvBH,WAAW,IAAMP,EAAcX,GAAY,MAGtC,CACLsB,MAAOA,IAAMX,EAAcX,GAE/B,CAUA,SAASW,EAAcY,GACrBA,EAAGV,UAAUC,IAAI,oBACjBI,WAAW,IAAMK,EAAGR,SAAU,IAChC,CAWA,MAAMS,EAAa,SAAU9C,GAC3B,OAAOD,EAAcC,EACvB,EAcA,GAZA8C,EAAWC,QAAW/C,GAA6BD,EAAcC,EAAQ,WACzE8C,EAAWE,QAAWhD,GAA6BD,EAAcC,EAAQ,WACzE8C,EAAWG,KAAQjD,GAA6BD,EAAcC,EAAQ,QACtE8C,EAAWI,MAASlD,GAA6BD,EAAcC,EAAQ,SACvE8C,EAAWK,SAAW,KACpBrC,SAASsC,iBAAiB,cAAcC,QAAQR,GAAMA,EAAGR,WAOnC,oBAAbvB,WAA6BA,SAASC,eAAe,oBAAqB,CACnF,MAAMe,EAAQhB,SAASE,cAAc,SACrCc,EAAMb,GAAK,mBACXa,EAAMJ,YAAc,ouEAsGpBZ,SAASwC,KAAKlC,YAAYU,EAC5B"}
@@ -1,2 +1,2 @@
1
- import{withInstall as o}from"../withInstall.mjs";import t from"./src/photo-crop-tool.vue.mjs";const r=o(t);export{r as QxsPhotoCropTool,r as default};
1
+ import"@qxs-bns/components-wc";import{withInstall as o}from"../withInstall.mjs";import{createCustomElementBridge as e,createNullableProp as t}from"../wc-bridge.mjs";const p=o(e({name:"QxsPhotoCropTool",tag:"qxs-photo-crop-tool",props:{imgFile:t(),aspectRatio:t(),defaultWidth:t(),defaultHeight:t(),zoomType:t()},createExpose:o=>({getElement:()=>o.value,crop:()=>o.value?.crop?.(),resize:()=>o.value?.resize?.()})}));export{p as QxsPhotoCropTool,p as default};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/photo-crop-tool/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/photo-crop-tool.vue'\n\nconst QxsPhotoCropTool = withInstall(component)\n\nexport {\n QxsPhotoCropTool,\n}\n\nexport default QxsPhotoCropTool\n"],"names":["QxsPhotoCropTool","withInstall","component"],"mappings":"8FAGA,MAAMA,EAAmBC,EAAYC"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/src/photo-crop-tool/index.ts"],"sourcesContent":["import '@qxs-bns/components-wc'\nimport { withInstall } from '../withInstall'\nimport { createCustomElementBridge, createNullableProp } from '../wc-bridge'\n\nconst component = createCustomElementBridge({\n name: 'QxsPhotoCropTool',\n tag: 'qxs-photo-crop-tool',\n props: {\n imgFile: createNullableProp<File | null>(),\n aspectRatio: createNullableProp<string>(),\n defaultWidth: createNullableProp<number>(),\n defaultHeight: createNullableProp<number>(),\n zoomType: createNullableProp<'fixed' | 'free'>(),\n },\n createExpose: elementRef => ({\n getElement: () => elementRef.value,\n crop: () => (elementRef.value as any)?.crop?.(),\n resize: () => (elementRef.value as any)?.resize?.(),\n }),\n})\n\nexport const QxsPhotoCropTool = withInstall(component)\n\nexport default QxsPhotoCropTool\n"],"names":["QxsPhotoCropTool","withInstall","createCustomElementBridge","name","tag","props","imgFile","createNullableProp","aspectRatio","defaultWidth","defaultHeight","zoomType","createExpose","elementRef","getElement","value","crop","resize"],"mappings":"qKAIA,MAiBaA,EAAmBC,EAjBdC,EAA0B,CAC1CC,KAAM,mBACNC,IAAK,sBACLC,MAAO,CACLC,QAASC,IACTC,YAAaD,IACbE,aAAcF,IACdG,cAAeH,IACfI,SAAUJ,KAEZK,aAAcC,IAAA,CACZC,WAAYA,IAAMD,EAAWE,MAC7BC,KAAMA,IAAOH,EAAWE,OAAeC,SACvCC,OAAQA,IAAOJ,EAAWE,OAAeE"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as e,shallowRef as t,ref as i,computed as n,watch as o,onMounted as a,onBeforeUnmount as l,createElementBlock as r,openBlock as s,normalizeClass as m,unref as u,createCommentVNode as c,withDirectives as p,createElementVNode as d,vModelText as g}from"vue";import{useNamespace as y}from"@qxs-bns/hooks";import{merge as f}from"lodash-es";import h from"tinymce/tinymce";import"tinymce/themes/silver/theme";import"tinymce/icons/default/icons";import"tinymce/models/dom";import"tinymce/plugins/autolink";import"tinymce/plugins/autoresize";import"tinymce/plugins/fullscreen";import"tinymce/plugins/image";import"tinymce/plugins/insertdatetime";import"tinymce/plugins/link";import"tinymce/plugins/lists";import"tinymce/plugins/media";import"tinymce/plugins/preview";import"tinymce/plugins/table";import"tinymce/plugins/wordcount";import"tinymce/plugins/code";import"tinymce/plugins/searchreplace";import"tinymce/plugins/nonbreaking";const v=["id","name"];var b=e({name:"QxsTinyMceEditor",__name:"tiny-mce-editor",props:{modelValue:{type:String,required:!0,default:""},config:{type:Object,required:!1,default:()=>({})},assetsBasePath:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(e,{emit:b}){const k=b,_=y("tiny-mce-editor"),x=e.assetsBasePath||"node_modules/",w=t(null),S=i(`tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2,9)}`),V=n({get:()=>e.modelValue,set(e){k("update:modelValue",e)}}),$={selector:`textarea#${S.value}`,promotion:!1,license_key:"gpl",elementpath:!1,language:"zh-Hans",language_url:`${x}tinymce/langs/zh-Hans.js`,skin_url:`${x}tinymce/skins/ui/oxide`,content_css:`${x}tinymce/skins/content/default/content.min.css`,min_height:300,max_height:700,plugins:"autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking",toolbar:"undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code",branding:!1,autoresize:!0,menubar:!1,nonbreaking_force_tab:!0,toolbar_mode:"sliding",insertdatetime_formats:["%Y年%m月%d日","%H点%M分%S秒","%Y-%m-%d","%H:%M:%S"],setup:t=>{t.on("init",()=>{w.value=t,t.setContent(V.value)}),t.on("input change undo redo",()=>{V.value=t.getContent()}),e.config?.expandSetup?.(t)}},z=n(()=>{const t=$;return e.config.images_upload_handler||("string"==typeof t.plugins?t.plugins=t.plugins.replace("image",""):Array.isArray(t.plugins)&&(t.plugins=t.plugins.filter(e=>"image"!==e))),f(t,e.config)});return o(()=>e.modelValue,e=>{try{w.value&&e!==w.value?.getContent()&&w.value.setContent(e)}catch(e){console.error("设置编辑器内容时出错:",e)}}),a(async()=>{"undefined"!=typeof window&&h.init(z.value)}),l(()=>{w.value&&(w.value.destroy(),w.value=null)}),(e,t)=>(s(),r("div",{class:m(u(_).e("tiny-mce"))},[c(" 使用动态生成的 id "),p(d("textarea",{id:S.value,"onUpdate:modelValue":t[0]||(t[0]=e=>V.value=e),name:S.value},null,8,v),[[g,V.value]])],2))}});export{b as default};
1
+ import{defineComponent as e,shallowRef as t,ref as i,computed as n,watch as a,onMounted as l,onBeforeUnmount as o,createElementBlock as r,openBlock as s,normalizeClass as m,unref as u,createCommentVNode as c,withDirectives as p,createElementVNode as d,vModelText as g}from"vue";import{useNamespace as y}from"@qxs-bns/hooks";import{merge as f}from"lodash-es";import h from"tinymce/tinymce";import"tinymce/themes/silver/theme";import"tinymce/icons/default/icons";import"tinymce/models/dom";import"tinymce/plugins/autolink";import"tinymce/plugins/autoresize";import"tinymce/plugins/fullscreen";import"tinymce/plugins/image";import"tinymce/plugins/insertdatetime";import"tinymce/plugins/link";import"tinymce/plugins/lists";import"tinymce/plugins/media";import"tinymce/plugins/preview";import"tinymce/plugins/table";import"tinymce/plugins/wordcount";import"tinymce/plugins/code";import"tinymce/plugins/searchreplace";import"tinymce/plugins/nonbreaking";const v=["id","name"];var b=e({name:"QxsTinyMceEditor",__name:"tiny-mce-editor",props:{modelValue:{type:String,required:!0,default:""},config:{type:Object,required:!1,default:()=>({})},assetsBasePath:{type:String,required:!1,default:""}},emits:["update:modelValue"],setup(e,{emit:b}){const k=b,_=y("tiny-mce-editor"),x=e.assetsBasePath||"node_modules/",w=t(null),S=i(`tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2,9)}`),V=n({get:()=>e.modelValue,set(e){k("update:modelValue",e)}}),$={selector:`textarea#${S.value}`,promotion:!1,license_key:"gpl",elementpath:!1,language:"zh-Hans",language_url:`${x}tinymce/langs/zh-Hans.js`,skin_url:`${x}tinymce/skins/ui/oxide`,content_css:`${x}tinymce/skins/content/default/content.min.css`,min_height:300,max_height:700,plugins:"autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking",toolbar:"undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code",branding:!1,autoresize:!0,menubar:!1,nonbreaking_force_tab:!0,toolbar_mode:"sliding",insertdatetime_formats:["%Y年%m月%d日","%H点%M分%S秒","%Y-%m-%d","%H:%M:%S"],setup:t=>{t.on("init",()=>{w.value=t,t.setContent(V.value)}),t.on("input change undo redo",()=>{V.value=t.getContent()}),e.config?.expandSetup?.(t)}},z=n(()=>{const t=$;return e.config.images_upload_handler||("string"==typeof t.plugins?t.plugins=t.plugins.replace("image",""):Array.isArray(t.plugins)&&(t.plugins=t.plugins.filter(e=>"image"!==e))),f(t,e.config)});return a(()=>e.modelValue,e=>{try{w.value&&e!==w.value?.getContent()&&w.value.setContent(e)}catch(e){}}),l(async()=>{"undefined"!=typeof window&&h.init(z.value)}),o(()=>{w.value&&(w.value.destroy(),w.value=null)}),(e,t)=>(s(),r("div",{class:m(u(_).e("tiny-mce"))},[c(" 使用动态生成的 id "),p(d("textarea",{id:S.value,"onUpdate:modelValue":t[0]||(t[0]=e=>V.value=e),name:S.value},null,8,v),[[g,V.value]])],2))}});export{b as default};
2
2
  //# sourceMappingURL=tiny-mce-editor.vue.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tiny-mce-editor.vue.mjs","sources":["../../../../../../packages/components/src/tiny-mce-editor/src/tiny-mce-editor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Editor, RawEditorOptions } from 'tinymce/tinymce'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { merge } from 'lodash-es'\nimport tinymce from 'tinymce/tinymce'\nimport { computed, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue'\n\n// 导入核心功能\nimport 'tinymce/themes/silver/theme'\nimport 'tinymce/icons/default/icons'\nimport 'tinymce/models/dom'\n\nimport 'tinymce/plugins/autolink'\nimport 'tinymce/plugins/autoresize'\nimport 'tinymce/plugins/fullscreen'\nimport 'tinymce/plugins/image'\nimport 'tinymce/plugins/insertdatetime'\nimport 'tinymce/plugins/link'\nimport 'tinymce/plugins/lists'\nimport 'tinymce/plugins/media'\nimport 'tinymce/plugins/preview'\nimport 'tinymce/plugins/table'\nimport 'tinymce/plugins/wordcount'\nimport 'tinymce/plugins/code'\nimport 'tinymce/plugins/searchreplace'\nimport 'tinymce/plugins/nonbreaking'\n// 导入语言包\n\ndefineOptions({\n name: 'QxsTinyMceEditor',\n})\n\nconst {\n modelValue = '',\n config = {},\n assetsBasePath = '',\n} = defineProps<{\n modelValue: string\n config?: RawEditorOptions & {\n expandSetup?: RawEditorOptions['setup']\n }\n assetsBasePath?: string\n}>()\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst ns = useNamespace('tiny-mce-editor')\n\nconst colorScheme = 'light'\nconst basePath = assetsBasePath || 'node_modules/'\n// 存储编辑器实例的引用\nconst editorInstance = shallowRef<Editor | null>(null)\n// 生成唯一的 id\nconst uniqueId = ref(\n `tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,\n)\n\nconst content = computed({\n get() {\n return modelValue\n },\n set(val) {\n emit('update:modelValue', val)\n },\n})\n\nconst defaultSetting: RawEditorOptions = {\n // 使用动态生成的 id\n selector: `textarea#${uniqueId.value}`,\n promotion: false, // 禁用推广信息\n license_key: 'gpl',\n elementpath: false,\n language: 'zh-Hans',\n language_url: `${basePath}tinymce/langs/zh-Hans.js`,\n skin_url: `${basePath}${\n colorScheme === 'light' ? 'tinymce/skins/ui/oxide' : 'tinymce/skins/ui/oxide-dark'\n }`,\n content_css: `${basePath}${\n colorScheme === 'light'\n ? 'tinymce/skins/content/default/content.min.css'\n : 'tinymce/skins/content/dark/content.min.css'\n }`,\n min_height: 300,\n max_height: 700,\n plugins:\n 'autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking',\n toolbar:\n 'undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code',\n branding: false,\n autoresize: true,\n menubar: false,\n nonbreaking_force_tab: true,\n toolbar_mode: 'sliding',\n insertdatetime_formats: [\n '%Y年%m月%d日',\n '%H点%M分%S秒',\n '%Y-%m-%d',\n '%H:%M:%S',\n ],\n // https://www.tiny.cloud/docs/tinymce/6/file-image-upload/#images_upload_handler\n // images_upload_handler: async (blobInfo: any, progress: any) => {\n // // blobInfo, succFun, failFun, progress\n // const files = blobInfo.blob()\n // const formData = new FormData()\n // formData.append('image', files)\n\n // const { res, error } = await useApi({\n // // ...commonUrls.uploadImage,\n // params: {\n // bucketType: classify,\n // },\n // data: formData,\n // onUploadProgress: (e: any) => {\n // progress((e.loaded / e.total) * 100)\n // },\n // })\n // if (res) {\n // const { normal } = res\n // console.log('normal: ', res)\n // return normal\n // }\n // if (error) {\n // console.log(error.message)\n // return Promise.reject(error.message)\n // }\n // },\n setup: (editor: Editor) => {\n // 编辑器初始化完成后设置内容\n editor.on('init', () => {\n // 保存编辑器实例\n editorInstance.value = editor\n editor.setContent(content.value)\n })\n\n // 监听编辑器内容变化\n editor.on('input change undo redo', () => {\n content.value = editor.getContent()\n })\n\n config?.expandSetup?.(editor)\n },\n}\n\nconst initSetting = computed(() => {\n const dealDefaultSetting = defaultSetting\n if (!config.images_upload_handler) {\n // 删除 image 图片 plugin\n if (typeof dealDefaultSetting.plugins === 'string') {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.replace(\n 'image',\n '',\n )\n }\n else if (Array.isArray(dealDefaultSetting.plugins)) {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.filter(\n plugin => plugin !== 'image',\n )\n }\n }\n return merge(dealDefaultSetting, config)\n})\n\n// 监听 modelValue 的变化\nwatch(() => modelValue, (newVal) => {\n try {\n // 确保编辑器已初始化且内容确实发生变化\n if (editorInstance.value && newVal !== editorInstance.value?.getContent()) {\n editorInstance.value.setContent(newVal)\n }\n }\n catch (error) {\n console.error('设置编辑器内容时出错:', error)\n }\n})\n\nonMounted(async () => {\n if (typeof window !== 'undefined') {\n tinymce.init(initSetting.value)\n }\n})\n\n// 组件卸载时清理\nonBeforeUnmount(() => {\n if (editorInstance.value) {\n editorInstance.value.destroy()\n editorInstance.value = null\n }\n})\n</script>\n\n<template>\n <div :class=\"ns.e('tiny-mce')\">\n <!-- 使用动态生成的 id -->\n <textarea\n :id=\"uniqueId\"\n v-model=\"content\"\n :name=\"uniqueId\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","ns","useNamespace","basePath","__props","assetsBasePath","editorInstance","shallowRef","uniqueId","ref","Date","now","Math","random","toString","substr","content","computed","get","modelValue","set","val","defaultSetting","selector","value","promotion","license_key","elementpath","language","language_url","skin_url","content_css","min_height","max_height","plugins","toolbar","branding","autoresize","menubar","nonbreaking_force_tab","toolbar_mode","insertdatetime_formats","setup","editor","on","setContent","getContent","config","expandSetup","initSetting","dealDefaultSetting","images_upload_handler","replace","Array","isArray","filter","plugin","merge","watch","newVal","error","console","onMounted","async","window","tinymce","init","onBeforeUnmount","destroy","_createElementBlock","class","_normalizeClass","_unref","e","_createCommentVNode","_createElementVNode","id","$event","name"],"mappings":"gtCA4CA,MAAMA,EAAOC,EAEPC,EAAKC,EAAa,mBAGlBC,EAAWC,EAAAC,gBAAkB,gBAE7BC,EAAiBC,EAA0B,MAE3CC,EAAWC,EACf,qBAAqBC,KAAKC,SAASC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,MAGpEC,EAAUC,EAAS,CACvBC,IAAA,IACSd,EAAAe,WAET,GAAAC,CAAIC,GACFtB,EAAK,oBAAqBsB,EAC5B,IAGIC,EAAmC,CAEvCC,SAAU,YAAYf,EAASgB,QAC/BC,WAAW,EACXC,YAAa,MACbC,aAAa,EACbC,SAAU,UACVC,aAAc,GAAG1B,4BACjB2B,SAAU,GAAG3B,0BAGb4B,YAAa,GAAG5B,iDAKhB6B,WAAY,IACZC,WAAY,IACZC,QACE,8HACFC,QACE,oPACFC,UAAU,EACVC,YAAY,EACZC,SAAS,EACTC,uBAAuB,EACvBC,aAAc,UACdC,uBAAwB,CACtB,YACA,YACA,WACA,YA6BFC,MAAQC,IAENA,EAAOC,GAAG,OAAQ,KAEhBtC,EAAekB,MAAQmB,EACvBA,EAAOE,WAAW7B,EAAQQ,SAI5BmB,EAAOC,GAAG,yBAA0B,KAClC5B,EAAQQ,MAAQmB,EAAOG,eAGzB1C,EAAA2C,QAAQC,cAAcL,KAIpBM,EAAchC,EAAS,KAC3B,MAAMiC,EAAqB5B,EAe3B,OAdKlB,EAAA2C,OAAOI,wBAEgC,iBAA/BD,EAAmBhB,QAC5BgB,EAAmBhB,QAAUgB,EAAmBhB,QAAQkB,QACtD,QACA,IAGKC,MAAMC,QAAQJ,EAAmBhB,WACxCgB,EAAmBhB,QAAUgB,EAAmBhB,QAAQqB,UACjC,UAAXC,KAITC,EAAMP,EAAoB9C,EAAA2C,iBAInCW,EAAM,IAAMtD,EAAAe,WAAawC,IACvB,IAEMrD,EAAekB,OAASmC,IAAWrD,EAAekB,OAAOsB,cAC3DxC,EAAekB,MAAMqB,WAAWc,EAEpC,OACOC,GACLC,QAAQD,MAAM,cAAeA,EAC/B,IAGFE,EAAUC,UACc,oBAAXC,QACTC,EAAQC,KAAKjB,EAAYzB,SAK7B2C,EAAgB,KACV7D,EAAekB,QACjBlB,EAAekB,MAAM4C,UACrB9D,EAAekB,MAAQ,oBAMzB6C,EAOM,MAAA,CAPAC,MAAKC,EAAEC,EAAAvE,GAAGwE,EAAC,eACfC,EAAA,kBACAC,EAIE,WAAA,CAHCC,GAAIpE,EAAAgB,2CACIR,EAAOQ,MAAAqD,GACfC,KAAMtE,EAAAgB,qBADER,EAAAQ"}
1
+ {"version":3,"file":"tiny-mce-editor.vue.mjs","sources":["../../../../../../packages/components/src/tiny-mce-editor/src/tiny-mce-editor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Editor, RawEditorOptions } from 'tinymce/tinymce'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { merge } from 'lodash-es'\nimport tinymce from 'tinymce/tinymce'\nimport { computed, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue'\n\n// 导入核心功能\nimport 'tinymce/themes/silver/theme'\nimport 'tinymce/icons/default/icons'\nimport 'tinymce/models/dom'\n\nimport 'tinymce/plugins/autolink'\nimport 'tinymce/plugins/autoresize'\nimport 'tinymce/plugins/fullscreen'\nimport 'tinymce/plugins/image'\nimport 'tinymce/plugins/insertdatetime'\nimport 'tinymce/plugins/link'\nimport 'tinymce/plugins/lists'\nimport 'tinymce/plugins/media'\nimport 'tinymce/plugins/preview'\nimport 'tinymce/plugins/table'\nimport 'tinymce/plugins/wordcount'\nimport 'tinymce/plugins/code'\nimport 'tinymce/plugins/searchreplace'\nimport 'tinymce/plugins/nonbreaking'\n// 导入语言包\n\ndefineOptions({\n name: 'QxsTinyMceEditor',\n})\n\nconst {\n modelValue = '',\n config = {},\n assetsBasePath = '',\n} = defineProps<{\n modelValue: string\n config?: RawEditorOptions & {\n expandSetup?: RawEditorOptions['setup']\n }\n assetsBasePath?: string\n}>()\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst ns = useNamespace('tiny-mce-editor')\n\nconst colorScheme = 'light'\nconst basePath = assetsBasePath || 'node_modules/'\n// 存储编辑器实例的引用\nconst editorInstance = shallowRef<Editor | null>(null)\n// 生成唯一的 id\nconst uniqueId = ref(\n `tiny-mce-textarea-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,\n)\n\nconst content = computed({\n get() {\n return modelValue\n },\n set(val) {\n emit('update:modelValue', val)\n },\n})\n\nconst defaultSetting: RawEditorOptions = {\n // 使用动态生成的 id\n selector: `textarea#${uniqueId.value}`,\n promotion: false, // 禁用推广信息\n license_key: 'gpl',\n elementpath: false,\n language: 'zh-Hans',\n language_url: `${basePath}tinymce/langs/zh-Hans.js`,\n skin_url: `${basePath}${\n colorScheme === 'light' ? 'tinymce/skins/ui/oxide' : 'tinymce/skins/ui/oxide-dark'\n }`,\n content_css: `${basePath}${\n colorScheme === 'light'\n ? 'tinymce/skins/content/default/content.min.css'\n : 'tinymce/skins/content/dark/content.min.css'\n }`,\n min_height: 300,\n max_height: 700,\n plugins:\n 'autolink autoresize fullscreen image insertdatetime link lists media preview table wordcount code searchreplace nonbreaking',\n toolbar:\n 'undo redo | bold italic underline strikethrough | blocks | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor removeformat | link image media table insertdatetime searchreplace | preview code',\n branding: false,\n autoresize: true,\n menubar: false,\n nonbreaking_force_tab: true,\n toolbar_mode: 'sliding',\n insertdatetime_formats: [\n '%Y年%m月%d日',\n '%H点%M分%S秒',\n '%Y-%m-%d',\n '%H:%M:%S',\n ],\n // https://www.tiny.cloud/docs/tinymce/6/file-image-upload/#images_upload_handler\n // images_upload_handler: async (blobInfo: any, progress: any) => {\n // // blobInfo, succFun, failFun, progress\n // const files = blobInfo.blob()\n // const formData = new FormData()\n // formData.append('image', files)\n\n // const { res, error } = await useApi({\n // // ...commonUrls.uploadImage,\n // params: {\n // bucketType: classify,\n // },\n // data: formData,\n // onUploadProgress: (e: any) => {\n // progress((e.loaded / e.total) * 100)\n // },\n // })\n // if (res) {\n // const { normal } = res\n // console.log('normal: ', res)\n // return normal\n // }\n // if (error) {\n // console.log(error.message)\n // return Promise.reject(error.message)\n // }\n // },\n setup: (editor: Editor) => {\n // 编辑器初始化完成后设置内容\n editor.on('init', () => {\n // 保存编辑器实例\n editorInstance.value = editor\n editor.setContent(content.value)\n })\n\n // 监听编辑器内容变化\n editor.on('input change undo redo', () => {\n content.value = editor.getContent()\n })\n\n config?.expandSetup?.(editor)\n },\n}\n\nconst initSetting = computed(() => {\n const dealDefaultSetting = defaultSetting\n if (!config.images_upload_handler) {\n // 删除 image 图片 plugin\n if (typeof dealDefaultSetting.plugins === 'string') {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.replace(\n 'image',\n '',\n )\n }\n else if (Array.isArray(dealDefaultSetting.plugins)) {\n dealDefaultSetting.plugins = dealDefaultSetting.plugins.filter(\n plugin => plugin !== 'image',\n )\n }\n }\n return merge(dealDefaultSetting, config)\n})\n\n// 监听 modelValue 的变化\nwatch(() => modelValue, (newVal) => {\n try {\n // 确保编辑器已初始化且内容确实发生变化\n if (editorInstance.value && newVal !== editorInstance.value?.getContent()) {\n editorInstance.value.setContent(newVal)\n }\n }\n catch (error) {\n console.error('设置编辑器内容时出错:', error)\n }\n})\n\nonMounted(async () => {\n if (typeof window !== 'undefined') {\n tinymce.init(initSetting.value)\n }\n})\n\n// 组件卸载时清理\nonBeforeUnmount(() => {\n if (editorInstance.value) {\n editorInstance.value.destroy()\n editorInstance.value = null\n }\n})\n</script>\n\n<template>\n <div :class=\"ns.e('tiny-mce')\">\n <!-- 使用动态生成的 id -->\n <textarea\n :id=\"uniqueId\"\n v-model=\"content\"\n :name=\"uniqueId\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","ns","useNamespace","basePath","__props","assetsBasePath","editorInstance","shallowRef","uniqueId","ref","Date","now","Math","random","toString","substr","content","computed","get","modelValue","set","val","defaultSetting","selector","value","promotion","license_key","elementpath","language","language_url","skin_url","content_css","min_height","max_height","plugins","toolbar","branding","autoresize","menubar","nonbreaking_force_tab","toolbar_mode","insertdatetime_formats","setup","editor","on","setContent","getContent","config","expandSetup","initSetting","dealDefaultSetting","images_upload_handler","replace","Array","isArray","filter","plugin","merge","watch","newVal","error","onMounted","async","window","tinymce","init","onBeforeUnmount","destroy","_createElementBlock","class","_normalizeClass","_unref","e","_createCommentVNode","_createElementVNode","id","$event","name"],"mappings":"gtCA4CA,MAAMA,EAAOC,EAEPC,EAAKC,EAAa,mBAGlBC,EAAWC,EAAAC,gBAAkB,gBAE7BC,EAAiBC,EAA0B,MAE3CC,EAAWC,EACf,qBAAqBC,KAAKC,SAASC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,MAGpEC,EAAUC,EAAS,CACvBC,IAAA,IACSd,EAAAe,WAET,GAAAC,CAAIC,GACFtB,EAAK,oBAAqBsB,EAC5B,IAGIC,EAAmC,CAEvCC,SAAU,YAAYf,EAASgB,QAC/BC,WAAW,EACXC,YAAa,MACbC,aAAa,EACbC,SAAU,UACVC,aAAc,GAAG1B,4BACjB2B,SAAU,GAAG3B,0BAGb4B,YAAa,GAAG5B,iDAKhB6B,WAAY,IACZC,WAAY,IACZC,QACE,8HACFC,QACE,oPACFC,UAAU,EACVC,YAAY,EACZC,SAAS,EACTC,uBAAuB,EACvBC,aAAc,UACdC,uBAAwB,CACtB,YACA,YACA,WACA,YA6BFC,MAAQC,IAENA,EAAOC,GAAG,OAAQ,KAEhBtC,EAAekB,MAAQmB,EACvBA,EAAOE,WAAW7B,EAAQQ,SAI5BmB,EAAOC,GAAG,yBAA0B,KAClC5B,EAAQQ,MAAQmB,EAAOG,eAGzB1C,EAAA2C,QAAQC,cAAcL,KAIpBM,EAAchC,EAAS,KAC3B,MAAMiC,EAAqB5B,EAe3B,OAdKlB,EAAA2C,OAAOI,wBAEgC,iBAA/BD,EAAmBhB,QAC5BgB,EAAmBhB,QAAUgB,EAAmBhB,QAAQkB,QACtD,QACA,IAGKC,MAAMC,QAAQJ,EAAmBhB,WACxCgB,EAAmBhB,QAAUgB,EAAmBhB,QAAQqB,UACjC,UAAXC,KAITC,EAAMP,EAAoB9C,EAAA2C,iBAInCW,EAAM,IAAMtD,EAAAe,WAAawC,IACvB,IAEMrD,EAAekB,OAASmC,IAAWrD,EAAekB,OAAOsB,cAC3DxC,EAAekB,MAAMqB,WAAWc,EAEpC,OACOC,GAEP,IAGFC,EAAUC,UACc,oBAAXC,QACTC,EAAQC,KAAKhB,EAAYzB,SAK7B0C,EAAgB,KACV5D,EAAekB,QACjBlB,EAAekB,MAAM2C,UACrB7D,EAAekB,MAAQ,oBAMzB4C,EAOM,MAAA,CAPAC,MAAKC,EAAEC,EAAAtE,GAAGuE,EAAC,eACfC,EAAA,kBACAC,EAIE,WAAA,CAHCC,GAAInE,EAAAgB,2CACIR,EAAOQ,MAAAoD,GACfC,KAAMrE,EAAAgB,qBADER,EAAAQ"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as t,h as e}from"vue";const l=t({name:"QxsButton",props:{type:{type:String,default:"default"},size:{type:String,default:"default"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},nativeType:{type:String,default:"button"},icon:{type:[String,Object],default:""}},emits:["click"],setup(t,l){let{slots:o,emit:a}=l;const i=e=>{t.disabled||t.loading||a("click",e)};return()=>e("button",{class:["qxs-button",`qxs-button--${t.type}`,`qxs-button--${t.size}`,{"is-disabled":t.disabled,"is-loading":t.loading,"is-plain":t.plain,"is-round":t.round,"is-circle":t.circle}],disabled:t.disabled||t.loading,type:t.nativeType,onClick:i},[t.loading&&e("span",{class:"qxs-button__loading"},[e("svg",{class:"qxs-button__loading-icon",viewBox:"0 0 24 24"},[e("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"2",fill:"none","stroke-dasharray":"60","stroke-dashoffset":"20"})])]),o.default?.()])}});export{l as QxsButton,l as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/button/index.ts"],"sourcesContent":["import { defineComponent, h, type PropType, type VNode } from 'vue'\n\nexport type ButtonType = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'default'\nexport type ButtonSize = 'large' | 'default' | 'small'\n\nexport const QxsButton = defineComponent({\n name: 'QxsButton',\n props: {\n type: { type: String as PropType<ButtonType>, default: 'default' },\n size: { type: String as PropType<ButtonSize>, default: 'default' },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n plain: { type: Boolean, default: false },\n round: { type: Boolean, default: false },\n circle: { type: Boolean, default: false },\n nativeType: { type: String as PropType<'button' | 'submit' | 'reset'>, default: 'button' },\n icon: { type: [String, Object] as PropType<string | VNode>, default: '' },\n },\n emits: ['click'],\n setup(props, { slots, emit }) {\n const handleClick = (e: MouseEvent) => {\n if (!props.disabled && !props.loading) {\n emit('click', e)\n }\n }\n\n return () => h('button', {\n class: [\n 'qxs-button',\n `qxs-button--${props.type}`,\n `qxs-button--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-loading': props.loading,\n 'is-plain': props.plain,\n 'is-round': props.round,\n 'is-circle': props.circle,\n },\n ],\n disabled: props.disabled || props.loading,\n type: props.nativeType,\n onClick: handleClick,\n }, [\n props.loading && h('span', { class: 'qxs-button__loading' }, [\n h('svg', { class: 'qxs-button__loading-icon', viewBox: '0 0 24 24' }, [\n h('circle', { 'cx': '12', 'cy': '12', 'r': '10', 'stroke': 'currentColor', 'stroke-width': '2', 'fill': 'none', 'stroke-dasharray': '60', 'stroke-dashoffset': '20' }),\n ]),\n ]),\n slots.default?.(),\n ])\n },\n})\n\nexport default QxsButton\n"],"names":["QxsButton","defineComponent","name","props","type","String","default","size","disabled","Boolean","loading","plain","round","circle","nativeType","icon","Object","emits","setup","_ref","slots","emit","handleClick","e","h","class","onClick","viewBox","cx","cy","r","stroke","fill"],"mappings":"6CAKO,MAAMA,EAAYC,EAAgB,CACvCC,KAAM,YACNC,MAAO,CACLC,KAAM,CAAEA,KAAMC,OAAgCC,QAAS,WACvDC,KAAM,CAAEH,KAAMC,OAAgCC,QAAS,WACvDE,SAAU,CAAEJ,KAAMK,QAASH,SAAS,GACpCI,QAAS,CAAEN,KAAMK,QAASH,SAAS,GACnCK,MAAO,CAAEP,KAAMK,QAASH,SAAS,GACjCM,MAAO,CAAER,KAAMK,QAASH,SAAS,GACjCO,OAAQ,CAAET,KAAMK,QAASH,SAAS,GAClCQ,WAAY,CAAEV,KAAMC,OAAmDC,QAAS,UAChFS,KAAM,CAAEX,KAAM,CAACC,OAAQW,QAAqCV,QAAS,KAEvEW,MAAO,CAAC,SACRC,KAAAA,CAAMf,EAAAgB,GAAwB,IAAjBC,MAAEA,EAAAC,KAAOA,GAAKF,EACzB,MAAMG,EAAeC,IACdpB,EAAMK,UAAaL,EAAMO,SAC5BW,EAAK,QAASE,IAIlB,MAAO,IAAMC,EAAE,SAAU,CACvBC,MAAO,CACL,aACA,eAAetB,EAAMC,OACrB,eAAeD,EAAMI,OACrB,CACE,cAAeJ,EAAMK,SACrB,aAAcL,EAAMO,QACpB,WAAYP,EAAMQ,MAClB,WAAYR,EAAMS,MAClB,YAAaT,EAAMU,SAGvBL,SAAUL,EAAMK,UAAYL,EAAMO,QAClCN,KAAMD,EAAMW,WACZY,QAASJ,GACR,CACDnB,EAAMO,SAAWc,EAAE,OAAQ,CAAEC,MAAO,uBAAyB,CAC3DD,EAAE,MAAO,CAAEC,MAAO,2BAA4BE,QAAS,aAAe,CACpEH,EAAE,SAAU,CAAEI,GAAM,KAAMC,GAAM,KAAMC,EAAK,KAAMC,OAAU,eAAgB,eAAgB,IAAKC,KAAQ,OAAQ,mBAAoB,KAAM,oBAAqB,WAGnKZ,EAAMd,aAEV"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,h as l}from"vue";const a=e({name:"QxsCheckbox",props:{modelValue:{type:[Boolean,String,Number,Array],default:!1},disabled:{type:Boolean,default:!1},label:{type:[String,Number,Boolean],default:""},indeterminate:{type:Boolean,default:!1},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0}},emits:["update:modelValue","change"],setup(e,a){let{slots:t,emit:d}=a;const o=()=>Array.isArray(e.modelValue)?e.modelValue.includes(e.label):void 0!==e.trueLabel||void 0!==e.falseLabel?e.modelValue===e.trueLabel:Boolean(e.modelValue),s=l=>{if(e.disabled)return;const a=l.target.checked;if(Array.isArray(e.modelValue)){const l=[...e.modelValue];if(a)l.push(e.label);else{const a=l.indexOf(e.label);a>-1&&l.splice(a,1)}d("update:modelValue",l),d("change",l)}else if(void 0!==e.trueLabel||void 0!==e.falseLabel){const l=a?e.trueLabel:e.falseLabel;d("update:modelValue",l),d("change",l)}else d("update:modelValue",a),d("change",a)};return()=>l("label",{class:["qxs-checkbox",{"is-checked":o(),"is-disabled":e.disabled,"is-indeterminate":e.indeterminate}],style:{display:"inline-flex",alignItems:"center",cursor:e.disabled?"not-allowed":"pointer",marginRight:"12px"}},[l("input",{type:"checkbox",class:"qxs-checkbox__input",checked:o(),disabled:e.disabled,onChange:s,style:{marginRight:"8px",cursor:e.disabled?"not-allowed":"pointer"}}),(t.default?.()||e.label)&&l("span",{class:"qxs-checkbox__label",style:{fontSize:"14px",color:e.disabled?"var(--qxs-text-color-disabled, #c0c4cc)":void 0}},t.default?.()||e.label)])}}),t=e({name:"QxsCheckboxGroup",props:{modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0}},emits:["update:modelValue","change"],setup(e,a){let{slots:t}=a;return()=>l("div",{class:"qxs-checkbox-group",style:{display:"inline-flex",flexWrap:"wrap",gap:"8px"}},t.default?.())}});export{a as QxsCheckbox,t as QxsCheckboxGroup,a as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/checkbox/index.ts"],"sourcesContent":["import { defineComponent, h, type PropType } from 'vue'\n\nexport const QxsCheckbox = defineComponent({\n name: 'QxsCheckbox',\n props: {\n modelValue: { type: [Boolean, String, Number, Array] as PropType<boolean | string | number | any[]>, default: false },\n disabled: { type: Boolean, default: false },\n label: { type: [String, Number, Boolean], default: '' },\n indeterminate: { type: Boolean, default: false },\n trueLabel: { type: [String, Number], default: undefined },\n falseLabel: { type: [String, Number], default: undefined },\n },\n emits: ['update:modelValue', 'change'],\n setup(props, { slots, emit }) {\n const isChecked = () => {\n if (Array.isArray(props.modelValue)) {\n return props.modelValue.includes(props.label)\n }\n if (props.trueLabel !== undefined || props.falseLabel !== undefined) {\n return props.modelValue === props.trueLabel\n }\n return Boolean(props.modelValue)\n }\n\n const handleChange = (e: Event) => {\n if (props.disabled) { return }\n\n const checked = (e.target as HTMLInputElement).checked\n\n if (Array.isArray(props.modelValue)) {\n const value = [...props.modelValue]\n if (checked) {\n value.push(props.label)\n }\n else {\n const index = value.indexOf(props.label)\n if (index > -1) {\n value.splice(index, 1)\n }\n }\n emit('update:modelValue', value)\n emit('change', value)\n }\n else if (props.trueLabel !== undefined || props.falseLabel !== undefined) {\n const value = checked ? props.trueLabel : props.falseLabel\n emit('update:modelValue', value)\n emit('change', value)\n }\n else {\n emit('update:modelValue', checked)\n emit('change', checked)\n }\n }\n\n return () => h('label', {\n class: [\n 'qxs-checkbox',\n {\n 'is-checked': isChecked(),\n 'is-disabled': props.disabled,\n 'is-indeterminate': props.indeterminate,\n },\n ],\n style: {\n display: 'inline-flex',\n alignItems: 'center',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n marginRight: '12px',\n },\n }, [\n h('input', {\n type: 'checkbox',\n class: 'qxs-checkbox__input',\n checked: isChecked(),\n disabled: props.disabled,\n onChange: handleChange,\n style: {\n marginRight: '8px',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n },\n }),\n (slots.default?.() || props.label) && h('span', {\n class: 'qxs-checkbox__label',\n style: {\n fontSize: '14px',\n color: props.disabled ? 'var(--qxs-text-color-disabled, #c0c4cc)' : undefined,\n },\n }, slots.default?.() || props.label),\n ])\n },\n})\n\nexport const QxsCheckboxGroup = defineComponent({\n name: 'QxsCheckboxGroup',\n props: {\n modelValue: { type: Array as PropType<any[]>, default: () => [] },\n disabled: { type: Boolean, default: false },\n min: { type: Number, default: undefined },\n max: { type: Number, default: undefined },\n },\n emits: ['update:modelValue', 'change'],\n setup(_props, { slots }) {\n return () => h('div', {\n class: 'qxs-checkbox-group',\n style: {\n display: 'inline-flex',\n flexWrap: 'wrap',\n gap: '8px',\n },\n }, slots.default?.())\n },\n})\n\nexport default QxsCheckbox\n"],"names":["QxsCheckbox","defineComponent","name","props","modelValue","type","Boolean","String","Number","Array","default","disabled","label","indeterminate","trueLabel","falseLabel","emits","setup","_ref","slots","emit","isChecked","isArray","includes","handleChange","e","checked","target","value","push","index","indexOf","splice","h","class","style","display","alignItems","cursor","marginRight","onChange","fontSize","color","QxsCheckboxGroup","min","max","_props","_ref2","flexWrap","gap"],"mappings":"6CAEO,MAAMA,EAAcC,EAAgB,CACzCC,KAAM,cACNC,MAAO,CACLC,WAAY,CAAEC,KAAM,CAACC,QAASC,OAAQC,OAAQC,OAAuDC,SAAS,GAC9GC,SAAU,CAAEN,KAAMC,QAASI,SAAS,GACpCE,MAAO,CAAEP,KAAM,CAACE,OAAQC,OAAQF,SAAUI,QAAS,IACnDG,cAAe,CAAER,KAAMC,QAASI,SAAS,GACzCI,UAAW,CAAET,KAAM,CAACE,OAAQC,QAASE,aAAS,GAC9CK,WAAY,CAAEV,KAAM,CAACE,OAAQC,QAASE,aAAS,IAEjDM,MAAO,CAAC,oBAAqB,UAC7BC,KAAAA,CAAMd,EAAAe,GAAwB,IAAjBC,MAAEA,EAAAC,KAAOA,GAAKF,EACzB,MAAMG,EAAYA,IACZZ,MAAMa,QAAQnB,EAAMC,YACfD,EAAMC,WAAWmB,SAASpB,EAAMS,YAEjB,IAApBT,EAAMW,gBAAgD,IAArBX,EAAMY,WAClCZ,EAAMC,aAAeD,EAAMW,UAE7BR,QAAQH,EAAMC,YAGjBoB,EAAgBC,IACpB,GAAItB,EAAMQ,SAAY,OAEtB,MAAMe,EAAWD,EAAEE,OAA4BD,QAE/C,GAAIjB,MAAMa,QAAQnB,EAAMC,YAAa,CACnC,MAAMwB,EAAQ,IAAIzB,EAAMC,YACxB,GAAIsB,EACFE,EAAMC,KAAK1B,EAAMS,WAEd,CACH,MAAMkB,EAAQF,EAAMG,QAAQ5B,EAAMS,OAC9BkB,GAAQ,GACVF,EAAMI,OAAOF,EAAO,EAExB,CACAV,EAAK,oBAAqBQ,GAC1BR,EAAK,SAAUQ,EACjB,cAC6B,IAApBzB,EAAMW,gBAAgD,IAArBX,EAAMY,WAA0B,CACxE,MAAMa,EAAQF,EAAUvB,EAAMW,UAAYX,EAAMY,WAChDK,EAAK,oBAAqBQ,GAC1BR,EAAK,SAAUQ,EACjB,MAEER,EAAK,oBAAqBM,GAC1BN,EAAK,SAAUM,IAInB,MAAO,IAAMO,EAAE,QAAS,CACtBC,MAAO,CACL,eACA,CACE,aAAcb,IACd,cAAelB,EAAMQ,SACrB,mBAAoBR,EAAMU,gBAG9BsB,MAAO,CACLC,QAAS,cACTC,WAAY,SACZC,OAAQnC,EAAMQ,SAAW,cAAgB,UACzC4B,YAAa,SAEd,CACDN,EAAE,QAAS,CACT5B,KAAM,WACN6B,MAAO,sBACPR,QAASL,IACTV,SAAUR,EAAMQ,SAChB6B,SAAUhB,EACVW,MAAO,CACLI,YAAa,MACbD,OAAQnC,EAAMQ,SAAW,cAAgB,cAG5CQ,EAAMT,aAAeP,EAAMS,QAAUqB,EAAE,OAAQ,CAC9CC,MAAO,sBACPC,MAAO,CACLM,SAAU,OACVC,MAAOvC,EAAMQ,SAAW,+CAA4C,IAErEQ,EAAMT,aAAeP,EAAMS,QAElC,IAGW+B,EAAmB1C,EAAgB,CAC9CC,KAAM,mBACNC,MAAO,CACLC,WAAY,CAAEC,KAAMI,MAA0BC,QAASA,IAAM,IAC7DC,SAAU,CAAEN,KAAMC,QAASI,SAAS,GACpCkC,IAAK,CAAEvC,KAAMG,OAAQE,aAAS,GAC9BmC,IAAK,CAAExC,KAAMG,OAAQE,aAAS,IAEhCM,MAAO,CAAC,oBAAqB,UAC7BC,KAAAA,CAAM6B,EAAAC,GAAmB,IAAX5B,MAAEA,GAAM4B,EACpB,MAAO,IAAMd,EAAE,MAAO,CACpBC,MAAO,qBACPC,MAAO,CACLC,QAAS,cACTY,SAAU,OACVC,IAAK,QAEN9B,EAAMT,YACX"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,ref as o,watch as l,onMounted as t,onBeforeUnmount as a,h as s,Teleport as d}from"vue";const n=e({name:"QxsDialog",inheritAttrs:!1,props:{modelValue:{type:Boolean,required:!0},title:{type:String,default:""},width:{type:[String,Number],default:"50%"},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},customClass:{type:String,default:""},top:{type:String,default:"15vh"},center:{type:Boolean,default:!1}},emits:["update:modelValue","open","close"],setup(e,n){let{emit:r,slots:i}=n;const c=o(e.modelValue);l(()=>e.modelValue,e=>{c.value=e,e?u():p()});const u=()=>{r("open"),e.lockScroll&&(document.body.style.overflow="hidden")},p=()=>{r("close"),r("update:modelValue",!1),e.lockScroll&&(document.body.style.overflow="")},y=()=>{e.closeOnClickModal&&p()},f=o=>{"Escape"===o.key&&e.closeOnPressEscape&&c.value&&p()};return t(()=>{e.closeOnPressEscape&&document.addEventListener("keydown",f)}),a(()=>{document.removeEventListener("keydown",f),e.lockScroll&&(document.body.style.overflow="")}),()=>{if(e.destroyOnClose&&!c.value)return null;const o="number"==typeof e.width?`${e.width}px`:e.width,l=()=>c.value?s("div",{class:"qxs-dialog-container"},[s("div",{class:"qxs-overlay",onClick:y}),s("div",{class:["qxs-dialog__wrapper",e.center&&"qxs-dialog__wrapper--center"],onClick:e=>{e.target.classList.contains("qxs-dialog__wrapper")&&y()}},[s("div",{class:["qxs-dialog",e.customClass],style:{width:o,marginTop:e.center?"0":e.top},role:"dialog","aria-modal":"true","aria-label":e.title},[(i.header||e.title||e.showClose)&&s("div",{class:"qxs-dialog__header"},[i.header?i.header():s("span",{class:"qxs-dialog__title"},e.title),e.showClose&&s("button",{class:"qxs-dialog__close",type:"button","aria-label":"Close",onClick:p},"×")]),s("div",{class:"qxs-dialog__body"},i.default?.()),i.footer&&s("div",{class:"qxs-dialog__footer"},i.footer())])])]):null;return e.appendToBody?s(d,{to:"body"},[l()]):l()}}});export{n as QxsDialogComponent,n as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/dialog/index.ts"],"sourcesContent":["import { defineComponent, h, onBeforeUnmount, onMounted, type PropType, ref, Teleport, watch } from 'vue'\n\nexport interface QxsDialogProps {\n modelValue: boolean\n title?: string\n width?: string | number\n showClose?: boolean\n closeOnClickModal?: boolean\n closeOnPressEscape?: boolean\n destroyOnClose?: boolean\n appendToBody?: boolean\n lockScroll?: boolean\n customClass?: string\n top?: string\n center?: boolean\n}\n\nexport const QxsDialogComponent = defineComponent({\n name: 'QxsDialog',\n inheritAttrs: false,\n props: {\n modelValue: { type: Boolean, required: true },\n title: { type: String, default: '' },\n width: { type: [String, Number] as PropType<string | number>, default: '50%' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n destroyOnClose: { type: Boolean, default: false },\n appendToBody: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n customClass: { type: String, default: '' },\n top: { type: String, default: '15vh' },\n center: { type: Boolean, default: false },\n },\n emits: ['update:modelValue', 'open', 'close'],\n setup(props, { emit, slots }) {\n const visible = ref(props.modelValue)\n\n watch(() => props.modelValue, (val) => {\n visible.value = val\n if (val) {\n handleOpen()\n }\n else {\n handleClose()\n }\n })\n\n const handleOpen = () => {\n emit('open')\n if (props.lockScroll) {\n document.body.style.overflow = 'hidden'\n }\n }\n\n const handleClose = () => {\n emit('close')\n emit('update:modelValue', false)\n if (props.lockScroll) {\n document.body.style.overflow = ''\n }\n }\n\n const handleOverlayClick = () => {\n if (props.closeOnClickModal) {\n handleClose()\n }\n }\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && props.closeOnPressEscape && visible.value) {\n handleClose()\n }\n }\n\n onMounted(() => {\n if (props.closeOnPressEscape) {\n document.addEventListener('keydown', handleKeydown)\n }\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener('keydown', handleKeydown)\n if (props.lockScroll) {\n document.body.style.overflow = ''\n }\n })\n\n return () => {\n if (props.destroyOnClose && !visible.value) {\n return null\n }\n\n const dialogWidth = typeof props.width === 'number' ? `${props.width}px` : props.width\n\n const renderDialog = () => {\n if (!visible.value) { return null }\n\n return h('div', { class: 'qxs-dialog-container' }, [\n h('div', { class: 'qxs-overlay', onClick: handleOverlayClick }),\n h('div', {\n class: ['qxs-dialog__wrapper', props.center && 'qxs-dialog__wrapper--center'],\n onClick: (e: MouseEvent) => {\n if ((e.target as HTMLElement).classList.contains('qxs-dialog__wrapper')) {\n handleOverlayClick()\n }\n },\n }, [\n h('div', {\n 'class': ['qxs-dialog', props.customClass],\n 'style': {\n width: dialogWidth,\n marginTop: props.center ? '0' : props.top,\n },\n 'role': 'dialog',\n 'aria-modal': 'true',\n 'aria-label': props.title,\n }, [\n (slots.header || props.title || props.showClose) && h('div', { class: 'qxs-dialog__header' }, [\n slots.header ? slots.header() : h('span', { class: 'qxs-dialog__title' }, props.title),\n props.showClose && h('button', {\n 'class': 'qxs-dialog__close',\n 'type': 'button',\n 'aria-label': 'Close',\n 'onClick': handleClose,\n }, '×'),\n ]),\n h('div', { class: 'qxs-dialog__body' }, slots.default?.()),\n slots.footer && h('div', { class: 'qxs-dialog__footer' }, slots.footer()),\n ]),\n ]),\n ])\n }\n\n if (props.appendToBody) {\n return h(Teleport, { to: 'body' }, [renderDialog()])\n }\n\n return renderDialog()\n }\n },\n})\n\nexport default QxsDialogComponent\n"],"names":["QxsDialogComponent","defineComponent","name","inheritAttrs","props","modelValue","type","Boolean","required","title","String","default","width","Number","showClose","closeOnClickModal","closeOnPressEscape","destroyOnClose","appendToBody","lockScroll","customClass","top","center","emits","setup","_ref","emit","slots","visible","ref","watch","val","value","handleOpen","handleClose","document","body","style","overflow","handleOverlayClick","handleKeydown","e","key","onMounted","addEventListener","onBeforeUnmount","removeEventListener","dialogWidth","renderDialog","h","class","onClick","target","classList","contains","marginTop","role","header","footer","Teleport","to"],"mappings":"mHAiBO,MAAMA,EAAqBC,EAAgB,CAChDC,KAAM,YACNC,cAAc,EACdC,MAAO,CACLC,WAAY,CAAEC,KAAMC,QAASC,UAAU,GACvCC,MAAO,CAAEH,KAAMI,OAAQC,QAAS,IAChCC,MAAO,CAAEN,KAAM,CAACI,OAAQG,QAAsCF,QAAS,OACvEG,UAAW,CAAER,KAAMC,QAASI,SAAS,GACrCI,kBAAmB,CAAET,KAAMC,QAASI,SAAS,GAC7CK,mBAAoB,CAAEV,KAAMC,QAASI,SAAS,GAC9CM,eAAgB,CAAEX,KAAMC,QAASI,SAAS,GAC1CO,aAAc,CAAEZ,KAAMC,QAASI,SAAS,GACxCQ,WAAY,CAAEb,KAAMC,QAASI,SAAS,GACtCS,YAAa,CAAEd,KAAMI,OAAQC,QAAS,IACtCU,IAAK,CAAEf,KAAMI,OAAQC,QAAS,QAC9BW,OAAQ,CAAEhB,KAAMC,QAASI,SAAS,IAEpCY,MAAO,CAAC,oBAAqB,OAAQ,SACrCC,KAAAA,CAAMpB,EAAAqB,GAAwB,IAAjBC,KAAEA,EAAAC,MAAMA,GAAMF,EACzB,MAAMG,EAAUC,EAAIzB,EAAMC,YAE1ByB,EAAM,IAAM1B,EAAMC,WAAa0B,IAC7BH,EAAQI,MAAQD,EACZA,EACFE,IAGAC,MAIJ,MAAMD,EAAaA,KACjBP,EAAK,QACDtB,EAAMe,aACRgB,SAASC,KAAKC,MAAMC,SAAW,WAI7BJ,EAAcA,KAClBR,EAAK,SACLA,EAAK,qBAAqB,GACtBtB,EAAMe,aACRgB,SAASC,KAAKC,MAAMC,SAAW,KAI7BC,EAAqBA,KACrBnC,EAAMW,mBACRmB,KAIEM,EAAiBC,IACP,WAAVA,EAAEC,KAAoBtC,EAAMY,oBAAsBY,EAAQI,OAC5DE,KAiBJ,OAbAS,EAAU,KACJvC,EAAMY,oBACRmB,SAASS,iBAAiB,UAAWJ,KAIzCK,EAAgB,KACdV,SAASW,oBAAoB,UAAWN,GACpCpC,EAAMe,aACRgB,SAASC,KAAKC,MAAMC,SAAW,MAI5B,KACL,GAAIlC,EAAMa,iBAAmBW,EAAQI,MACnC,OAAO,KAGT,MAAMe,EAAqC,iBAAhB3C,EAAMQ,MAAqB,GAAGR,EAAMQ,UAAYR,EAAMQ,MAE3EoC,EAAeA,IACdpB,EAAQI,MAENiB,EAAE,MAAO,CAAEC,MAAO,wBAA0B,CACjDD,EAAE,MAAO,CAAEC,MAAO,cAAeC,QAASZ,IAC1CU,EAAE,MAAO,CACPC,MAAO,CAAC,sBAAuB9C,EAAMkB,QAAU,+BAC/C6B,QAAUV,IACHA,EAAEW,OAAuBC,UAAUC,SAAS,wBAC/Cf,MAGH,CACDU,EAAE,MAAO,CACPC,MAAS,CAAC,aAAc9C,EAAMgB,aAC9BiB,MAAS,CACPzB,MAAOmC,EACPQ,UAAWnD,EAAMkB,OAAS,IAAMlB,EAAMiB,KAExCmC,KAAQ,SACR,aAAc,OACd,aAAcpD,EAAMK,OACnB,EACAkB,EAAM8B,QAAUrD,EAAMK,OAASL,EAAMU,YAAcmC,EAAE,MAAO,CAAEC,MAAO,sBAAwB,CAC5FvB,EAAM8B,OAAS9B,EAAM8B,SAAWR,EAAE,OAAQ,CAAEC,MAAO,qBAAuB9C,EAAMK,OAChFL,EAAMU,WAAamC,EAAE,SAAU,CAC7BC,MAAS,oBACT5C,KAAQ,SACR,aAAc,QACd6C,QAAWjB,GACV,OAELe,EAAE,MAAO,CAAEC,MAAO,oBAAsBvB,EAAMhB,aAC9CgB,EAAM+B,QAAUT,EAAE,MAAO,CAAEC,MAAO,sBAAwBvB,EAAM+B,gBAhCzC,KAsC/B,OAAItD,EAAMc,aACD+B,EAAEU,EAAU,CAAEC,GAAI,QAAU,CAACZ,MAG/BA,IAEX"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,ref as t,watch as a,nextTick as l,h as o}from"vue";const n=e({name:"QxsInput",props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},size:{type:String,default:"default"},maxlength:{type:Number,default:void 0},showWordLimit:{type:Boolean,default:!1},rows:{type:[Number,String],default:2},autosize:{type:[Boolean,Object],default:!1},resize:{type:String,default:"none"}},emits:["update:modelValue","input","change","focus","blur","clear"],setup(e,n){let{emit:u,slots:s}=n;const r=t(),d=()=>"textarea"===e.type,i=t=>{const a=t.target.value;u("update:modelValue",a),u("input",a),d()&&e.autosize&&g()},p=e=>{u("change",e.target.value)},m=e=>{u("focus",e)},c=e=>{u("blur",e)},x=()=>{u("update:modelValue",""),u("clear")},g=()=>{if(!r.value)return;const t=r.value;t.style.height="auto";let a=0,l=1/0;if("object"==typeof e.autosize){const o=Number.parseInt(getComputedStyle(t).lineHeight)||20,n=Number.parseInt(getComputedStyle(t).paddingTop)+Number.parseInt(getComputedStyle(t).paddingBottom)||0;a=(e.autosize.minRows||1)*o+n,l=e.autosize.maxRows?e.autosize.maxRows*o+n:1/0}const o=t.scrollHeight,n=Math.min(Math.max(o,a),l);t.style.height=`${n}px`};a(()=>e.modelValue,()=>{d()&&e.autosize&&l(g)});return()=>o("div",{class:d()?["qxs-textarea",`qxs-textarea--${e.size}`]:["qxs-input",`qxs-input--${e.size}`]},[s.prefix?.(),d()?o("textarea",{ref:r,class:"qxs-textarea__inner",value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,maxlength:e.maxlength,rows:e.rows,style:d()?{resize:e.resize}:{},onInput:i,onChange:p,onFocus:m,onBlur:c}):o("input",{class:"qxs-input__inner",type:e.type,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,maxlength:e.maxlength,onInput:i,onChange:p,onFocus:m,onBlur:c}),!d()&&e.clearable&&e.modelValue&&!e.disabled&&o("span",{class:"qxs-input__clear",onClick:x},"×"),s.suffix?.(),e.showWordLimit&&e.maxlength&&o("span",{class:d()?"qxs-textarea__count":"qxs-input__count"},`${String(e.modelValue).length}/${e.maxlength}`)])}});export{n as QxsInput,n as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/input/index.ts"],"sourcesContent":["import { type CSSProperties, defineComponent, h, nextTick, ref, watch } from 'vue'\n\nexport const QxsInput = defineComponent({\n name: 'QxsInput',\n props: {\n modelValue: { type: [String, Number], default: '' },\n type: { type: String, default: 'text' },\n placeholder: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n size: { type: String as () => 'large' | 'default' | 'small', default: 'default' },\n maxlength: { type: Number, default: undefined },\n showWordLimit: { type: Boolean, default: false },\n rows: { type: [Number, String], default: 2 },\n autosize: { type: [Boolean, Object] as unknown as () => boolean | { minRows?: number, maxRows?: number }, default: false },\n resize: { type: String as () => 'none' | 'both' | 'horizontal' | 'vertical', default: 'none' },\n },\n emits: ['update:modelValue', 'input', 'change', 'focus', 'blur', 'clear'],\n setup(props, { emit, slots }) {\n const textareaRef = ref<HTMLTextAreaElement>()\n const isTextarea = () => props.type === 'textarea'\n\n const handleInput = (e: Event) => {\n const value = (e.target as HTMLInputElement | HTMLTextAreaElement).value\n emit('update:modelValue', value)\n emit('input', value)\n if (isTextarea() && props.autosize) {\n adjustTextareaHeight()\n }\n }\n\n const handleChange = (e: Event) => {\n emit('change', (e.target as HTMLInputElement | HTMLTextAreaElement).value)\n }\n\n const handleFocus = (e: FocusEvent) => {\n emit('focus', e)\n }\n\n const handleBlur = (e: FocusEvent) => {\n emit('blur', e)\n }\n\n const handleClear = () => {\n emit('update:modelValue', '')\n emit('clear')\n }\n\n const adjustTextareaHeight = () => {\n if (!textareaRef.value) { return }\n\n const textarea = textareaRef.value\n textarea.style.height = 'auto'\n\n let minHeight = 0\n let maxHeight = Infinity\n\n if (typeof props.autosize === 'object') {\n const lineHeight = Number.parseInt(getComputedStyle(textarea).lineHeight) || 20\n const paddingHeight = Number.parseInt(getComputedStyle(textarea).paddingTop) + Number.parseInt(getComputedStyle(textarea).paddingBottom) || 0\n minHeight = (props.autosize.minRows || 1) * lineHeight + paddingHeight\n maxHeight = props.autosize.maxRows ? props.autosize.maxRows * lineHeight + paddingHeight : Infinity\n }\n\n const scrollHeight = textarea.scrollHeight\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight)\n textarea.style.height = `${newHeight}px`\n }\n\n watch(() => props.modelValue, () => {\n if (isTextarea() && props.autosize) {\n nextTick(adjustTextareaHeight)\n }\n })\n\n const getContainerClass = () => {\n const classes = isTextarea() ? ['qxs-textarea', `qxs-textarea--${props.size}`] : ['qxs-input', `qxs-input--${props.size}`]\n return classes\n }\n\n const getInnerStyle = (): CSSProperties => {\n if (isTextarea()) {\n return {\n resize: props.resize,\n }\n }\n return {}\n }\n\n return () => h('div', { class: getContainerClass() }, [\n slots.prefix?.(),\n isTextarea()\n ? h('textarea', {\n ref: textareaRef,\n class: 'qxs-textarea__inner',\n value: props.modelValue,\n placeholder: props.placeholder,\n disabled: props.disabled,\n readonly: props.readonly,\n maxlength: props.maxlength,\n rows: props.rows,\n style: getInnerStyle(),\n onInput: handleInput,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n })\n : h('input', {\n class: 'qxs-input__inner',\n type: props.type,\n value: props.modelValue,\n placeholder: props.placeholder,\n disabled: props.disabled,\n readonly: props.readonly,\n maxlength: props.maxlength,\n onInput: handleInput,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n !isTextarea() && props.clearable && props.modelValue && !props.disabled && h('span', {\n class: 'qxs-input__clear',\n onClick: handleClear,\n }, '×'),\n slots.suffix?.(),\n props.showWordLimit && props.maxlength && h('span', {\n class: isTextarea() ? 'qxs-textarea__count' : 'qxs-input__count',\n }, `${String(props.modelValue).length}/${props.maxlength}`),\n ])\n },\n})\n\nexport default QxsInput\n"],"names":["QxsInput","defineComponent","name","props","modelValue","type","String","Number","default","placeholder","disabled","Boolean","readonly","clearable","size","maxlength","showWordLimit","rows","autosize","Object","resize","emits","setup","_ref","emit","slots","textareaRef","ref","isTextarea","handleInput","e","value","target","adjustTextareaHeight","handleChange","handleFocus","handleBlur","handleClear","textarea","style","height","minHeight","maxHeight","Infinity","lineHeight","parseInt","getComputedStyle","paddingHeight","paddingTop","paddingBottom","minRows","maxRows","scrollHeight","newHeight","Math","min","max","watch","nextTick","h","class","prefix","onInput","onChange","onFocus","onBlur","onClick","suffix","length"],"mappings":"+EAEO,MAAMA,EAAWC,EAAgB,CACtCC,KAAM,WACNC,MAAO,CACLC,WAAY,CAAEC,KAAM,CAACC,OAAQC,QAASC,QAAS,IAC/CH,KAAM,CAAEA,KAAMC,OAAQE,QAAS,QAC/BC,YAAa,CAAEJ,KAAMC,OAAQE,QAAS,IACtCE,SAAU,CAAEL,KAAMM,QAASH,SAAS,GACpCI,SAAU,CAAEP,KAAMM,QAASH,SAAS,GACpCK,UAAW,CAAER,KAAMM,QAASH,SAAS,GACrCM,KAAM,CAAET,KAAMC,OAA+CE,QAAS,WACtEO,UAAW,CAAEV,KAAME,OAAQC,aAAS,GACpCQ,cAAe,CAAEX,KAAMM,QAASH,SAAS,GACzCS,KAAM,CAAEZ,KAAM,CAACE,OAAQD,QAASE,QAAS,GACzCU,SAAU,CAAEb,KAAM,CAACM,QAASQ,QAA8EX,SAAS,GACnHY,OAAQ,CAAEf,KAAMC,OAA6DE,QAAS,SAExFa,MAAO,CAAC,oBAAqB,QAAS,SAAU,QAAS,OAAQ,SACjEC,KAAAA,CAAMnB,EAAAoB,GAAwB,IAAjBC,KAAEA,EAAAC,MAAMA,GAAMF,EACzB,MAAMG,EAAcC,IACdC,EAAaA,IAAqB,aAAfzB,EAAME,KAEzBwB,EAAeC,IACnB,MAAMC,EAASD,EAAEE,OAAkDD,MACnEP,EAAK,oBAAqBO,GAC1BP,EAAK,QAASO,GACVH,KAAgBzB,EAAMe,UACxBe,KAIEC,EAAgBJ,IACpBN,EAAK,SAAWM,EAAEE,OAAkDD,QAGhEI,EAAeL,IACnBN,EAAK,QAASM,IAGVM,EAAcN,IAClBN,EAAK,OAAQM,IAGTO,EAAcA,KAClBb,EAAK,oBAAqB,IAC1BA,EAAK,UAGDS,EAAuBA,KAC3B,IAAKP,EAAYK,MAAS,OAE1B,MAAMO,EAAWZ,EAAYK,MAC7BO,EAASC,MAAMC,OAAS,OAExB,IAAIC,EAAY,EACZC,EAAYC,IAEhB,GAA8B,iBAAnBxC,EAAMe,SAAuB,CACtC,MAAM0B,EAAarC,OAAOsC,SAASC,iBAAiBR,GAAUM,aAAe,GACvEG,EAAgBxC,OAAOsC,SAASC,iBAAiBR,GAAUU,YAAczC,OAAOsC,SAASC,iBAAiBR,GAAUW,gBAAkB,EAC5IR,GAAatC,EAAMe,SAASgC,SAAW,GAAKN,EAAaG,EACzDL,EAAYvC,EAAMe,SAASiC,QAAUhD,EAAMe,SAASiC,QAAUP,EAAaG,EAAgBJ,GAC7F,CAEA,MAAMS,EAAed,EAASc,aACxBC,EAAYC,KAAKC,IAAID,KAAKE,IAAIJ,EAAcX,GAAYC,GAC9DJ,EAASC,MAAMC,OAAS,GAAGa,OAG7BI,EAAM,IAAMtD,EAAMC,WAAY,KACxBwB,KAAgBzB,EAAMe,UACxBwC,EAASzB,KAkBb,MAAO,IAAM0B,EAAE,MAAO,CAAEC,MAbNhC,IAAe,CAAC,eAAgB,iBAAiBzB,EAAMW,QAAU,CAAC,YAAa,cAAcX,EAAMW,SAa/D,CACpDW,EAAMoC,WACNjC,IACI+B,EAAE,WAAY,CACZhC,IAAKD,EACLkC,MAAO,sBACP7B,MAAO5B,EAAMC,WACbK,YAAaN,EAAMM,YACnBC,SAAUP,EAAMO,SAChBE,SAAUT,EAAMS,SAChBG,UAAWZ,EAAMY,UACjBE,KAAMd,EAAMc,KACZsB,MApBFX,IACK,CACLR,OAAQjB,EAAMiB,QAGX,CAAA,EAgBD0C,QAASjC,EACTkC,SAAU7B,EACV8B,QAAS7B,EACT8B,OAAQ7B,IAEVuB,EAAE,QAAS,CACTC,MAAO,mBACPvD,KAAMF,EAAME,KACZ0B,MAAO5B,EAAMC,WACbK,YAAaN,EAAMM,YACnBC,SAAUP,EAAMO,SAChBE,SAAUT,EAAMS,SAChBG,UAAWZ,EAAMY,UACjB+C,QAASjC,EACTkC,SAAU7B,EACV8B,QAAS7B,EACT8B,OAAQ7B,KAEbR,KAAgBzB,EAAMU,WAAaV,EAAMC,aAAeD,EAAMO,UAAYiD,EAAE,OAAQ,CACnFC,MAAO,mBACPM,QAAS7B,GACR,KACHZ,EAAM0C,WACNhE,EAAMa,eAAiBb,EAAMY,WAAa4C,EAAE,OAAQ,CAClDC,MAAOhC,IAAe,sBAAwB,oBAC7C,GAAGtB,OAAOH,EAAMC,YAAYgE,UAAUjE,EAAMY,cAEnD"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,ref as l,computed as a,h as o}from"vue";const t=e({name:"QxsInputNumber",props:{modelValue:{type:Number,default:0},min:{type:Number,default:-1/0},max:{type:Number,default:1/0},step:{type:Number,default:1},precision:{type:Number,default:void 0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},size:{type:String,default:"default"},placeholder:{type:String,default:""}},emits:["update:modelValue","change","focus","blur","input"],setup(e,t){let{emit:n}=t;const r=l(),d=l(null),i=a(()=>{if(null!==d.value)return d.value;let l=e.modelValue;return void 0!==e.precision&&"number"==typeof l&&(l=Number.parseFloat(l.toFixed(e.precision))),l}),u=a(()=>e.modelValue<=e.min),s=a(()=>e.modelValue>=e.max),p=l=>void 0===e.precision?l:Number.parseFloat(l.toFixed(e.precision)),c=()=>{if(e.disabled||e.readonly||s.value)return;const l=p(e.modelValue+e.step),a=Math.min(l,e.max);n("update:modelValue",a),n("change",a,e.modelValue)},b=()=>{if(e.disabled||e.readonly||u.value)return;const l=p(e.modelValue-e.step),a=Math.max(l,e.min);n("update:modelValue",a),n("change",a,e.modelValue)},m=e=>{const l=e.target.value;d.value=l,n("input",l)},x=l=>{const a=l.target.value;let o=""===a?0:Number(a);Number.isNaN(o)||(void 0!==e.precision&&(o=p(o)),o=Math.max(e.min,Math.min(e.max,o)),n("update:modelValue",o),n("change",o,e.modelValue)),d.value=null},f=e=>{n("focus",e)},v=e=>{n("blur",e),d.value=null},y=a(()=>"large"===e.size?"40px":"small"===e.size?"24px":"32px");return()=>o("div",{class:["qxs-input-number",`qxs-input-number--${e.size}`,{"is-disabled":e.disabled,"is-controls":e.controls}],style:{display:"inline-flex",alignItems:"center",position:"relative"}},[e.controls&&o("button",{class:["qxs-input-number__decrease",{"is-disabled":u.value||e.disabled}],disabled:u.value||e.disabled,onClick:b,style:{width:y.value,height:y.value,border:"1px solid var(--qxs-border-color, #dcdfe6)",borderRight:"none",background:"var(--qxs-fill-color-blank, #fff)",cursor:u.value||e.disabled?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px",borderRadius:"4px 0 0 4px"}},"−"),o("input",{ref:r,class:"qxs-input-number__inner",type:"text",value:i.value,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,onInput:m,onChange:x,onFocus:f,onBlur:v,style:{width:e.controls?`calc(100% - ${y.value} * 2)`:"100%",height:y.value,padding:"0 12px",border:"1px solid var(--qxs-border-color, #dcdfe6)",borderLeft:e.controls?"none":void 0,borderRight:e.controls?"none":void 0,outline:"none",textAlign:"center",fontSize:"large"===e.size?"14px":"small"===e.size?"12px":"13px",borderRadius:e.controls?"0":"4px"}}),e.controls&&o("button",{class:["qxs-input-number__increase",{"is-disabled":s.value||e.disabled}],disabled:s.value||e.disabled,onClick:c,style:{width:y.value,height:y.value,border:"1px solid var(--qxs-border-color, #dcdfe6)",borderLeft:"none",background:"var(--qxs-fill-color-blank, #fff)",cursor:s.value||e.disabled?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px",borderRadius:"0 4px 4px 0"}},"+")])}});export{t as QxsInputNumber,t as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/input-number/index.ts"],"sourcesContent":["import { computed, defineComponent, h, type PropType, ref } from 'vue'\n\nexport type InputNumberSize = 'large' | 'default' | 'small'\n\nexport const QxsInputNumber = defineComponent({\n name: 'QxsInputNumber',\n props: {\n modelValue: { type: Number, default: 0 },\n min: { type: Number, default: -Infinity },\n max: { type: Number, default: Infinity },\n step: { type: Number, default: 1 },\n precision: { type: Number, default: undefined },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n controls: { type: Boolean, default: true },\n size: { type: String as PropType<InputNumberSize>, default: 'default' },\n placeholder: { type: String, default: '' },\n },\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'input'],\n setup(props, { emit }) {\n const inputRef = ref<HTMLInputElement>()\n const userInput = ref<string | null>(null)\n\n const displayValue = computed(() => {\n if (userInput.value !== null) {\n return userInput.value\n }\n\n let value = props.modelValue\n if (props.precision !== undefined && typeof value === 'number') {\n value = Number.parseFloat(value.toFixed(props.precision))\n }\n return value\n })\n\n const minDisabled = computed(() => {\n return props.modelValue <= props.min\n })\n\n const maxDisabled = computed(() => {\n return props.modelValue >= props.max\n })\n\n const toPrecision = (num: number) => {\n if (props.precision === undefined) { return num }\n return Number.parseFloat(num.toFixed(props.precision))\n }\n\n const increase = () => {\n if (props.disabled || props.readonly || maxDisabled.value) { return }\n const newValue = toPrecision(props.modelValue + props.step)\n const value = Math.min(newValue, props.max)\n emit('update:modelValue', value)\n emit('change', value, props.modelValue)\n }\n\n const decrease = () => {\n if (props.disabled || props.readonly || minDisabled.value) { return }\n const newValue = toPrecision(props.modelValue - props.step)\n const value = Math.max(newValue, props.min)\n emit('update:modelValue', value)\n emit('change', value, props.modelValue)\n }\n\n const handleInput = (e: Event) => {\n const value = (e.target as HTMLInputElement).value\n userInput.value = value\n emit('input', value)\n }\n\n const handleChange = (e: Event) => {\n const value = (e.target as HTMLInputElement).value\n let newValue = value === '' ? 0 : Number(value)\n\n if (Number.isNaN(newValue)) {\n userInput.value = null\n return\n }\n\n if (props.precision !== undefined) {\n newValue = toPrecision(newValue)\n }\n\n newValue = Math.max(props.min, Math.min(props.max, newValue))\n\n emit('update:modelValue', newValue)\n emit('change', newValue, props.modelValue)\n userInput.value = null\n }\n\n const handleFocus = (e: FocusEvent) => {\n emit('focus', e)\n }\n\n const handleBlur = (e: FocusEvent) => {\n emit('blur', e)\n userInput.value = null\n }\n\n const buttonSize = computed(() => {\n return props.size === 'large' ? '40px' : props.size === 'small' ? '24px' : '32px'\n })\n\n return () => h('div', {\n class: [\n 'qxs-input-number',\n `qxs-input-number--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-controls': props.controls,\n },\n ],\n style: {\n display: 'inline-flex',\n alignItems: 'center',\n position: 'relative',\n },\n }, [\n props.controls && h('button', {\n class: ['qxs-input-number__decrease', { 'is-disabled': minDisabled.value || props.disabled }],\n disabled: minDisabled.value || props.disabled,\n onClick: decrease,\n style: {\n width: buttonSize.value,\n height: buttonSize.value,\n border: '1px solid var(--qxs-border-color, #dcdfe6)',\n borderRight: 'none',\n background: 'var(--qxs-fill-color-blank, #fff)',\n cursor: minDisabled.value || props.disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '14px',\n borderRadius: '4px 0 0 4px',\n },\n }, '−'),\n h('input', {\n ref: inputRef,\n class: 'qxs-input-number__inner',\n type: 'text',\n value: displayValue.value,\n placeholder: props.placeholder,\n disabled: props.disabled,\n readonly: props.readonly,\n onInput: handleInput,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n style: {\n width: props.controls ? `calc(100% - ${buttonSize.value} * 2)` : '100%',\n height: buttonSize.value,\n padding: '0 12px',\n border: '1px solid var(--qxs-border-color, #dcdfe6)',\n borderLeft: props.controls ? 'none' : undefined,\n borderRight: props.controls ? 'none' : undefined,\n outline: 'none',\n textAlign: 'center',\n fontSize: props.size === 'large' ? '14px' : props.size === 'small' ? '12px' : '13px',\n borderRadius: props.controls ? '0' : '4px',\n },\n }),\n props.controls && h('button', {\n class: ['qxs-input-number__increase', { 'is-disabled': maxDisabled.value || props.disabled }],\n disabled: maxDisabled.value || props.disabled,\n onClick: increase,\n style: {\n width: buttonSize.value,\n height: buttonSize.value,\n border: '1px solid var(--qxs-border-color, #dcdfe6)',\n borderLeft: 'none',\n background: 'var(--qxs-fill-color-blank, #fff)',\n cursor: maxDisabled.value || props.disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '14px',\n borderRadius: '0 4px 4px 0',\n },\n }, '+'),\n ])\n },\n})\n\nexport default QxsInputNumber\n"],"names":["QxsInputNumber","defineComponent","name","props","modelValue","type","Number","default","min","Infinity","max","step","precision","disabled","Boolean","readonly","controls","size","String","placeholder","emits","setup","_ref","emit","inputRef","ref","userInput","displayValue","computed","value","parseFloat","toFixed","minDisabled","maxDisabled","toPrecision","num","increase","newValue","Math","decrease","handleInput","e","target","handleChange","isNaN","handleFocus","handleBlur","buttonSize","h","class","style","display","alignItems","position","onClick","width","height","border","borderRight","background","cursor","justifyContent","fontSize","borderRadius","onInput","onChange","onFocus","onBlur","padding","borderLeft","outline","textAlign"],"mappings":"oEAIO,MAAMA,EAAiBC,EAAgB,CAC5CC,KAAM,iBACNC,MAAO,CACLC,WAAY,CAAEC,KAAMC,OAAQC,QAAS,GACrCC,IAAK,CAAEH,KAAMC,OAAQC,SAASE,KAC9BC,IAAK,CAAEL,KAAMC,OAAQC,QAASE,KAC9BE,KAAM,CAAEN,KAAMC,OAAQC,QAAS,GAC/BK,UAAW,CAAEP,KAAMC,OAAQC,aAAS,GACpCM,SAAU,CAAER,KAAMS,QAASP,SAAS,GACpCQ,SAAU,CAAEV,KAAMS,QAASP,SAAS,GACpCS,SAAU,CAAEX,KAAMS,QAASP,SAAS,GACpCU,KAAM,CAAEZ,KAAMa,OAAqCX,QAAS,WAC5DY,YAAa,CAAEd,KAAMa,OAAQX,QAAS,KAExCa,MAAO,CAAC,oBAAqB,SAAU,QAAS,OAAQ,SACxDC,KAAAA,CAAMlB,EAAAmB,GAAiB,IAAVC,KAAEA,GAAKD,EAClB,MAAME,EAAWC,IACXC,EAAYD,EAAmB,MAE/BE,EAAeC,EAAS,KAC5B,GAAwB,OAApBF,EAAUG,MACZ,OAAOH,EAAUG,MAGnB,IAAIA,EAAQ1B,EAAMC,WAIlB,YAHwB,IAApBD,EAAMS,WAA4C,iBAAViB,IAC1CA,EAAQvB,OAAOwB,WAAWD,EAAME,QAAQ5B,EAAMS,aAEzCiB,IAGHG,EAAcJ,EAAS,IACpBzB,EAAMC,YAAcD,EAAMK,KAG7ByB,EAAcL,EAAS,IACpBzB,EAAMC,YAAcD,EAAMO,KAG7BwB,EAAeC,QACK,IAApBhC,EAAMS,UAAkCuB,EACrC7B,OAAOwB,WAAWK,EAAIJ,QAAQ5B,EAAMS,YAGvCwB,EAAWA,KACf,GAAIjC,EAAMU,UAAYV,EAAMY,UAAYkB,EAAYJ,MAAS,OAC7D,MAAMQ,EAAWH,EAAY/B,EAAMC,WAAaD,EAAMQ,MAChDkB,EAAQS,KAAK9B,IAAI6B,EAAUlC,EAAMO,KACvCa,EAAK,oBAAqBM,GAC1BN,EAAK,SAAUM,EAAO1B,EAAMC,aAGxBmC,EAAWA,KACf,GAAIpC,EAAMU,UAAYV,EAAMY,UAAYiB,EAAYH,MAAS,OAC7D,MAAMQ,EAAWH,EAAY/B,EAAMC,WAAaD,EAAMQ,MAChDkB,EAAQS,KAAK5B,IAAI2B,EAAUlC,EAAMK,KACvCe,EAAK,oBAAqBM,GAC1BN,EAAK,SAAUM,EAAO1B,EAAMC,aAGxBoC,EAAeC,IACnB,MAAMZ,EAASY,EAAEC,OAA4Bb,MAC7CH,EAAUG,MAAQA,EAClBN,EAAK,QAASM,IAGVc,EAAgBF,IACpB,MAAMZ,EAASY,EAAEC,OAA4Bb,MAC7C,IAAIQ,EAAqB,KAAVR,EAAe,EAAIvB,OAAOuB,GAErCvB,OAAOsC,MAAMP,UAKO,IAApBlC,EAAMS,YACRyB,EAAWH,EAAYG,IAGzBA,EAAWC,KAAK5B,IAAIP,EAAMK,IAAK8B,KAAK9B,IAAIL,EAAMO,IAAK2B,IAEnDd,EAAK,oBAAqBc,GAC1Bd,EAAK,SAAUc,EAAUlC,EAAMC,aAX7BsB,EAAUG,MAAQ,MAehBgB,EAAeJ,IACnBlB,EAAK,QAASkB,IAGVK,EAAcL,IAClBlB,EAAK,OAAQkB,GACbf,EAAUG,MAAQ,MAGdkB,EAAanB,EAAS,IACJ,UAAfzB,EAAMc,KAAmB,OAAwB,UAAfd,EAAMc,KAAmB,OAAS,QAG7E,MAAO,IAAM+B,EAAE,MAAO,CACpBC,MAAO,CACL,mBACA,qBAAqB9C,EAAMc,OAC3B,CACE,cAAed,EAAMU,SACrB,cAAeV,EAAMa,WAGzBkC,MAAO,CACLC,QAAS,cACTC,WAAY,SACZC,SAAU,aAEX,CACDlD,EAAMa,UAAYgC,EAAE,SAAU,CAC5BC,MAAO,CAAC,6BAA8B,CAAE,cAAejB,EAAYH,OAAS1B,EAAMU,WAClFA,SAAUmB,EAAYH,OAAS1B,EAAMU,SACrCyC,QAASf,EACTW,MAAO,CACLK,MAAOR,EAAWlB,MAClB2B,OAAQT,EAAWlB,MACnB4B,OAAQ,6CACRC,YAAa,OACbC,WAAY,oCACZC,OAAQ5B,EAAYH,OAAS1B,EAAMU,SAAW,cAAgB,UAC9DsC,QAAS,OACTC,WAAY,SACZS,eAAgB,SAChBC,SAAU,OACVC,aAAc,gBAEf,KACHf,EAAE,QAAS,CACTvB,IAAKD,EACLyB,MAAO,0BACP5C,KAAM,OACNwB,MAAOF,EAAaE,MACpBV,YAAahB,EAAMgB,YACnBN,SAAUV,EAAMU,SAChBE,SAAUZ,EAAMY,SAChBiD,QAASxB,EACTyB,SAAUtB,EACVuB,QAASrB,EACTsB,OAAQrB,EACRI,MAAO,CACLK,MAAOpD,EAAMa,SAAW,eAAe+B,EAAWlB,aAAe,OACjE2B,OAAQT,EAAWlB,MACnBuC,QAAS,SACTX,OAAQ,6CACRY,WAAYlE,EAAMa,SAAW,YAAS,EACtC0C,YAAavD,EAAMa,SAAW,YAAS,EACvCsD,QAAS,OACTC,UAAW,SACXT,SAAyB,UAAf3D,EAAMc,KAAmB,OAAwB,UAAfd,EAAMc,KAAmB,OAAS,OAC9E8C,aAAc5D,EAAMa,SAAW,IAAM,SAGzCb,EAAMa,UAAYgC,EAAE,SAAU,CAC5BC,MAAO,CAAC,6BAA8B,CAAE,cAAehB,EAAYJ,OAAS1B,EAAMU,WAClFA,SAAUoB,EAAYJ,OAAS1B,EAAMU,SACrCyC,QAASlB,EACTc,MAAO,CACLK,MAAOR,EAAWlB,MAClB2B,OAAQT,EAAWlB,MACnB4B,OAAQ,6CACRY,WAAY,OACZV,WAAY,oCACZC,OAAQ3B,EAAYJ,OAAS1B,EAAMU,SAAW,cAAgB,UAC9DsC,QAAS,OACTC,WAAY,SACZS,eAAgB,SAChBC,SAAU,OACVC,aAAc,gBAEf,MAEP"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,provide as t,computed as l,h as s,inject as u}from"vue";const p=Symbol("QxsRow"),a=e({name:"QxsRow",props:{gutter:{type:Number,default:0},justify:{type:String,default:"start"},align:{type:String,default:"top"},tag:{type:String,default:"div"}},setup(e,u){let{slots:a}=u;t(p,{gutter:l(()=>e.gutter)});const r={display:"flex",flexWrap:"wrap",justifyContent:{start:"flex-start",end:"flex-end",center:"center","space-around":"space-around","space-between":"space-between","space-evenly":"space-evenly"}[e.justify],alignItems:{top:"flex-start",middle:"center",bottom:"flex-end"}[e.align]};return e.gutter&&(r.marginLeft=-e.gutter/2+"px",r.marginRight=-e.gutter/2+"px"),()=>s(e.tag,{class:"qxs-row",style:r},a.default?.())}}),r=e({name:"QxsCol",props:{span:{type:Number,default:24},offset:{type:Number,default:0},push:{type:Number,default:0},pull:{type:Number,default:0},tag:{type:String,default:"div"},xs:{type:[Number,Object],default:void 0},sm:{type:[Number,Object],default:void 0},md:{type:[Number,Object],default:void 0},lg:{type:[Number,Object],default:void 0},xl:{type:[Number,Object],default:void 0}},setup(e,t){let{slots:l}=t;const a=u(p,null),r=a?.gutter.value||0,o={boxSizing:"border-box"};r&&(o.paddingLeft=r/2+"px",o.paddingRight=r/2+"px");const f=100/24*e.span;return o.maxWidth=`${f}%`,o.flex=`0 0 ${f}%`,e.offset&&(o.marginLeft=100/24*e.offset+"%"),e.push&&(o.position="relative",o.left=100/24*e.push+"%"),e.pull&&(o.position="relative",o.right=100/24*e.pull+"%"),()=>s(e.tag,{class:["qxs-col",`qxs-col-${e.span}`,e.offset&&`qxs-col-offset-${e.offset}`,e.push&&`qxs-col-push-${e.push}`,e.pull&&`qxs-col-pull-${e.pull}`],style:o},l.default?.())}});export{r as QxsCol,a as QxsRow};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/layout/index.ts"],"sourcesContent":["import { computed, type CSSProperties, defineComponent, h, inject, type InjectionKey, type PropType, provide, type Ref } from 'vue'\n\nexport type RowJustify = 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly'\nexport type RowAlign = 'top' | 'middle' | 'bottom'\n\ninterface RowContext {\n gutter: Ref<number>\n}\n\nconst ROW_INJECTION_KEY: InjectionKey<RowContext> = Symbol('QxsRow')\n\nexport const QxsRow = defineComponent({\n name: 'QxsRow',\n props: {\n gutter: { type: Number, default: 0 },\n justify: { type: String as PropType<RowJustify>, default: 'start' },\n align: { type: String as PropType<RowAlign>, default: 'top' },\n tag: { type: String, default: 'div' },\n },\n setup(props, { slots }) {\n provide(ROW_INJECTION_KEY, {\n gutter: computed(() => props.gutter),\n })\n\n const justifyMap: Record<RowJustify, string> = {\n 'start': 'flex-start',\n 'end': 'flex-end',\n 'center': 'center',\n 'space-around': 'space-around',\n 'space-between': 'space-between',\n 'space-evenly': 'space-evenly',\n }\n\n const alignMap: Record<RowAlign, string> = {\n top: 'flex-start',\n middle: 'center',\n bottom: 'flex-end',\n }\n\n const rowStyle: CSSProperties = {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: justifyMap[props.justify],\n alignItems: alignMap[props.align],\n }\n\n if (props.gutter) {\n rowStyle.marginLeft = `${-props.gutter / 2}px`\n rowStyle.marginRight = `${-props.gutter / 2}px`\n }\n\n return () => h(props.tag, {\n class: 'qxs-row',\n style: rowStyle,\n }, slots.default?.())\n },\n})\n\nexport const QxsCol = defineComponent({\n name: 'QxsCol',\n props: {\n span: { type: Number, default: 24 },\n offset: { type: Number, default: 0 },\n push: { type: Number, default: 0 },\n pull: { type: Number, default: 0 },\n tag: { type: String, default: 'div' },\n xs: { type: [Number, Object] as PropType<number | { span?: number, offset?: number }>, default: undefined },\n sm: { type: [Number, Object] as PropType<number | { span?: number, offset?: number }>, default: undefined },\n md: { type: [Number, Object] as PropType<number | { span?: number, offset?: number }>, default: undefined },\n lg: { type: [Number, Object] as PropType<number | { span?: number, offset?: number }>, default: undefined },\n xl: { type: [Number, Object] as PropType<number | { span?: number, offset?: number }>, default: undefined },\n },\n setup(props, { slots }) {\n const row = inject(ROW_INJECTION_KEY, null)\n\n const gutter = row?.gutter.value || 0\n\n const colStyle: CSSProperties = {\n boxSizing: 'border-box',\n }\n\n if (gutter) {\n colStyle.paddingLeft = `${gutter / 2}px`\n colStyle.paddingRight = `${gutter / 2}px`\n }\n\n const spanWidth = (100 / 24) * props.span\n colStyle.maxWidth = `${spanWidth}%`\n colStyle.flex = `0 0 ${spanWidth}%`\n\n if (props.offset) {\n colStyle.marginLeft = `${(100 / 24) * props.offset}%`\n }\n\n if (props.push) {\n colStyle.position = 'relative'\n colStyle.left = `${(100 / 24) * props.push}%`\n }\n\n if (props.pull) {\n colStyle.position = 'relative'\n colStyle.right = `${(100 / 24) * props.pull}%`\n }\n\n return () => h(props.tag, {\n class: [\n 'qxs-col',\n `qxs-col-${props.span}`,\n props.offset && `qxs-col-offset-${props.offset}`,\n props.push && `qxs-col-push-${props.push}`,\n props.pull && `qxs-col-pull-${props.pull}`,\n ],\n style: colStyle,\n }, slots.default?.())\n },\n})\n\nexport default { QxsRow, QxsCol }\n"],"names":["ROW_INJECTION_KEY","Symbol","QxsRow","defineComponent","name","props","gutter","type","Number","default","justify","String","align","tag","setup","_ref","slots","provide","computed","rowStyle","display","flexWrap","justifyContent","start","end","center","alignItems","top","middle","bottom","marginLeft","marginRight","h","class","style","QxsCol","span","offset","push","pull","xs","Object","sm","md","lg","xl","_ref2","row","inject","value","colStyle","boxSizing","paddingLeft","paddingRight","spanWidth","maxWidth","flex","position","left","right"],"mappings":"oFASA,MAAMA,EAA8CC,OAAO,UAE9CC,EAASC,EAAgB,CACpCC,KAAM,SACNC,MAAO,CACLC,OAAQ,CAAEC,KAAMC,OAAQC,QAAS,GACjCC,QAAS,CAAEH,KAAMI,OAAgCF,QAAS,SAC1DG,MAAO,CAAEL,KAAMI,OAA8BF,QAAS,OACtDI,IAAK,CAAEN,KAAMI,OAAQF,QAAS,QAEhCK,KAAAA,CAAMT,EAAAU,GAAkB,IAAXC,MAAEA,GAAMD,EACnBE,EAAQjB,EAAmB,CACzBM,OAAQY,EAAS,IAAMb,EAAMC,UAG/B,MAeMa,EAA0B,CAC9BC,QAAS,OACTC,SAAU,OACVC,eAlB6C,CAC7CC,MAAS,aACTC,IAAO,WACPC,OAAU,SACV,eAAgB,eAChB,gBAAiB,gBACjB,eAAgB,gBAYWpB,EAAMK,SACjCgB,WAVyC,CACzCC,IAAK,aACLC,OAAQ,SACRC,OAAQ,YAOaxB,EAAMO,QAQ7B,OALIP,EAAMC,SACRa,EAASW,YAAiBzB,EAAMC,OAAS,EAAnB,KACtBa,EAASY,aAAkB1B,EAAMC,OAAS,EAAnB,MAGlB,IAAM0B,EAAE3B,EAAMQ,IAAK,CACxBoB,MAAO,UACPC,MAAOf,GACNH,EAAMP,YACX,IAGW0B,EAAShC,EAAgB,CACpCC,KAAM,SACNC,MAAO,CACL+B,KAAM,CAAE7B,KAAMC,OAAQC,QAAS,IAC/B4B,OAAQ,CAAE9B,KAAMC,OAAQC,QAAS,GACjC6B,KAAM,CAAE/B,KAAMC,OAAQC,QAAS,GAC/B8B,KAAM,CAAEhC,KAAMC,OAAQC,QAAS,GAC/BI,IAAK,CAAEN,KAAMI,OAAQF,QAAS,OAC9B+B,GAAI,CAAEjC,KAAM,CAACC,OAAQiC,QAAkEhC,aAAS,GAChGiC,GAAI,CAAEnC,KAAM,CAACC,OAAQiC,QAAkEhC,aAAS,GAChGkC,GAAI,CAAEpC,KAAM,CAACC,OAAQiC,QAAkEhC,aAAS,GAChGmC,GAAI,CAAErC,KAAM,CAACC,OAAQiC,QAAkEhC,aAAS,GAChGoC,GAAI,CAAEtC,KAAM,CAACC,OAAQiC,QAAkEhC,aAAS,IAElGK,KAAAA,CAAMT,EAAAyC,GAAkB,IAAX9B,MAAEA,GAAM8B,EACnB,MAAMC,EAAMC,EAAOhD,EAAmB,MAEhCM,EAASyC,GAAKzC,OAAO2C,OAAS,EAE9BC,EAA0B,CAC9BC,UAAW,cAGT7C,IACF4C,EAASE,YAAiB9C,EAAS,EAAZ,KACvB4C,EAASG,aAAkB/C,EAAS,EAAZ,MAG1B,MAAMgD,EAAa,IAAM,GAAMjD,EAAM+B,KAkBrC,OAjBAc,EAASK,SAAW,GAAGD,KACvBJ,EAASM,KAAO,OAAOF,KAEnBjD,EAAMgC,SACRa,EAASpB,WAAiB,IAAM,GAAMzB,EAAMgC,OAAtB,KAGpBhC,EAAMiC,OACRY,EAASO,SAAW,WACpBP,EAASQ,KAAW,IAAM,GAAMrD,EAAMiC,KAAtB,KAGdjC,EAAMkC,OACRW,EAASO,SAAW,WACpBP,EAASS,MAAY,IAAM,GAAMtD,EAAMkC,KAAtB,KAGZ,IAAMP,EAAE3B,EAAMQ,IAAK,CACxBoB,MAAO,CACL,UACA,WAAW5B,EAAM+B,OACjB/B,EAAMgC,QAAU,kBAAkBhC,EAAMgC,SACxChC,EAAMiC,MAAQ,gBAAgBjC,EAAMiC,OACpCjC,EAAMkC,MAAQ,gBAAgBlC,EAAMkC,QAEtCL,MAAOgB,GACNlC,EAAMP,YACX"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,h as t}from"vue";const l=e({name:"QxsLink",props:{type:{type:String,default:"default"},href:{type:String,default:""},target:{type:String,default:"_self"},disabled:{type:Boolean,default:!1},underline:{type:Boolean,default:!0}},emits:["click"],setup(e,l){let{slots:d,emit:i}=l;const a=t=>{e.disabled?t.preventDefault():(e.href||t.preventDefault(),i("click",t))};return()=>t("a",{class:["qxs-link",`qxs-link--${e.type}`,{"is-disabled":e.disabled,"is-underline":e.underline}],href:e.disabled?void 0:e.href,target:e.disabled?void 0:e.target,onClick:a,style:{cursor:e.disabled?"not-allowed":"pointer",textDecoration:e.underline?"underline":"none",opacity:e.disabled?"0.5":"1",color:e.disabled?"var(--qxs-text-color-disabled, #c0c4cc)":void 0}},d.default?.())}});export{l as QxsLink,l as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/link/index.ts"],"sourcesContent":["import { defineComponent, h, type PropType } from 'vue'\n\nexport type LinkType = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'default'\n\nexport const QxsLink = defineComponent({\n name: 'QxsLink',\n props: {\n type: { type: String as PropType<LinkType>, default: 'default' },\n href: { type: String, default: '' },\n target: { type: String as PropType<'_blank' | '_self' | '_parent' | '_top'>, default: '_self' },\n disabled: { type: Boolean, default: false },\n underline: { type: Boolean, default: true },\n },\n emits: ['click'],\n setup(props, { slots, emit }) {\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) {\n e.preventDefault()\n return\n }\n if (!props.href) {\n e.preventDefault()\n }\n emit('click', e)\n }\n\n return () => h('a', {\n class: [\n 'qxs-link',\n `qxs-link--${props.type}`,\n {\n 'is-disabled': props.disabled,\n 'is-underline': props.underline,\n },\n ],\n href: props.disabled ? undefined : props.href,\n target: props.disabled ? undefined : props.target,\n onClick: handleClick,\n style: {\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n textDecoration: props.underline ? 'underline' : 'none',\n opacity: props.disabled ? '0.5' : '1',\n color: props.disabled ? 'var(--qxs-text-color-disabled, #c0c4cc)' : undefined,\n },\n }, slots.default?.())\n },\n})\n\nexport default QxsLink\n"],"names":["QxsLink","defineComponent","name","props","type","String","default","href","target","disabled","Boolean","underline","emits","setup","_ref","slots","emit","handleClick","e","preventDefault","h","class","onClick","style","cursor","textDecoration","opacity","color"],"mappings":"6CAIO,MAAMA,EAAUC,EAAgB,CACrCC,KAAM,UACNC,MAAO,CACLC,KAAM,CAAEA,KAAMC,OAA8BC,QAAS,WACrDC,KAAM,CAAEH,KAAMC,OAAQC,QAAS,IAC/BE,OAAQ,CAAEJ,KAAMC,OAA6DC,QAAS,SACtFG,SAAU,CAAEL,KAAMM,QAASJ,SAAS,GACpCK,UAAW,CAAEP,KAAMM,QAASJ,SAAS,IAEvCM,MAAO,CAAC,SACRC,KAAAA,CAAMV,EAAAW,GAAwB,IAAjBC,MAAEA,EAAAC,KAAOA,GAAKF,EACzB,MAAMG,EAAeC,IACff,EAAMM,SACRS,EAAEC,kBAGChB,EAAMI,MACTW,EAAEC,iBAEJH,EAAK,QAASE,KAGhB,MAAO,IAAME,EAAE,IAAK,CAClBC,MAAO,CACL,WACA,aAAalB,EAAMC,OACnB,CACE,cAAeD,EAAMM,SACrB,eAAgBN,EAAMQ,YAG1BJ,KAAMJ,EAAMM,cAAW,EAAYN,EAAMI,KACzCC,OAAQL,EAAMM,cAAW,EAAYN,EAAMK,OAC3Cc,QAASL,EACTM,MAAO,CACLC,OAAQrB,EAAMM,SAAW,cAAgB,UACzCgB,eAAgBtB,EAAMQ,UAAY,YAAc,OAChDe,QAASvB,EAAMM,SAAW,MAAQ,IAClCkB,MAAOxB,EAAMM,SAAW,+CAA4C,IAErEM,EAAMT,YACX"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,ref as t,computed as o,onMounted as r,onBeforeUnmount as i,h as l}from"vue";const a=e({name:"QxsPopover",props:{content:{type:String,default:""},placement:{type:String,default:"bottom"},trigger:{type:String,default:"hover"},disabled:{type:Boolean,default:!1},width:{type:[String,Number],default:150},visible:{type:Boolean,default:void 0},offset:{type:Number,default:12},showArrow:{type:Boolean,default:!0}},emits:["update:visible","show","hide","after-enter","after-leave"],setup(e,a){let{slots:n,emit:s}=a;const u=t(!1),d=t(),p=t();let c=null;const v=void 0!==e.visible,g=o(()=>v?e.visible:u.value),f=()=>{e.disabled||(c&&(clearTimeout(c),c=null),v||(u.value=!0),s("update:visible",!0),s("show"))},b=()=>{c&&clearTimeout(c),c=setTimeout(()=>{v||(u.value=!1),s("update:visible",!1),s("hide")},200)},m=()=>{"hover"===e.trigger&&f()},h=()=>{"hover"===e.trigger&&b()},x=()=>{"click"===e.trigger&&(g.value?b():f())},k=()=>{"focus"===e.trigger&&f()},y=()=>{"focus"===e.trigger&&b()},w=()=>{"hover"===e.trigger&&c&&(clearTimeout(c),c=null)},q=()=>{"hover"===e.trigger&&b()},S=t=>{if("click"!==e.trigger)return;const o=t.target;d.value?.contains(o)||p.value?.contains(o)||b()};r(()=>{"click"===e.trigger&&document.addEventListener("click",S)}),i(()=>{"click"===e.trigger&&document.removeEventListener("click",S),c&&clearTimeout(c)});return()=>l("div",{class:"qxs-popover",style:{display:"inline-block",position:"relative"}},[l("div",{ref:d,class:"qxs-popover__reference",onMouseenter:m,onMouseleave:h,onClick:x,onFocus:k,onBlur:y},n.reference?.()||n.default?.()),g.value&&l("div",{ref:p,class:["qxs-popover__popper",`qxs-popover__popper--${e.placement}`],style:{position:"absolute",zIndex:2e3,width:"number"==typeof e.width?`${e.width}px`:e.width,padding:"12px",backgroundColor:"var(--qxs-fill-color-blank, #fff)",border:"1px solid var(--qxs-border-color-light, #e4e7ed)",borderRadius:"4px",boxShadow:"0 2px 12px 0 rgba(0, 0, 0, 0.1)",fontSize:"14px",lineHeight:"1.4",wordBreak:"break-all"},onMouseenter:w,onMouseleave:q},n.default?.()||e.content)])}});export{a as QxsPopover,a as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/popover/index.ts"],"sourcesContent":["import { computed, defineComponent, h, onBeforeUnmount, onMounted, type PropType, ref } from 'vue'\n\nexport type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'\nexport type PopoverTrigger = 'hover' | 'click' | 'focus' | 'manual'\n\nexport const QxsPopover = defineComponent({\n name: 'QxsPopover',\n props: {\n content: { type: String, default: '' },\n placement: { type: String as PropType<PopoverPlacement>, default: 'bottom' },\n trigger: { type: String as PropType<PopoverTrigger>, default: 'hover' },\n disabled: { type: Boolean, default: false },\n width: { type: [String, Number], default: 150 },\n visible: { type: Boolean, default: undefined },\n offset: { type: Number, default: 12 },\n showArrow: { type: Boolean, default: true },\n },\n emits: ['update:visible', 'show', 'hide', 'after-enter', 'after-leave'],\n setup(props, { slots, emit }) {\n const popoverVisible = ref(false)\n const referenceRef = ref<HTMLElement>()\n const popperRef = ref<HTMLElement>()\n let hideTimer: ReturnType<typeof setTimeout> | null = null\n\n const isControlled = props.visible !== undefined\n\n const currentVisible = computed(() => isControlled ? props.visible : popoverVisible.value)\n\n const show = () => {\n if (props.disabled) { return }\n if (hideTimer) {\n clearTimeout(hideTimer)\n hideTimer = null\n }\n if (!isControlled) {\n popoverVisible.value = true\n }\n emit('update:visible', true)\n emit('show')\n }\n\n const hide = () => {\n if (hideTimer) {\n clearTimeout(hideTimer)\n }\n hideTimer = setTimeout(() => {\n if (!isControlled) {\n popoverVisible.value = false\n }\n emit('update:visible', false)\n emit('hide')\n }, 200)\n }\n\n const handleReferenceMouseEnter = () => {\n if (props.trigger === 'hover') {\n show()\n }\n }\n\n const handleReferenceMouseLeave = () => {\n if (props.trigger === 'hover') {\n hide()\n }\n }\n\n const handleReferenceClick = () => {\n if (props.trigger === 'click') {\n if (currentVisible.value) {\n hide()\n }\n else {\n show()\n }\n }\n }\n\n const handleReferenceFocus = () => {\n if (props.trigger === 'focus') {\n show()\n }\n }\n\n const handleReferenceBlur = () => {\n if (props.trigger === 'focus') {\n hide()\n }\n }\n\n const handlePopperMouseEnter = () => {\n if (props.trigger === 'hover' && hideTimer) {\n clearTimeout(hideTimer)\n hideTimer = null\n }\n }\n\n const handlePopperMouseLeave = () => {\n if (props.trigger === 'hover') {\n hide()\n }\n }\n\n const handleClickOutside = (e: MouseEvent) => {\n if (props.trigger !== 'click') { return }\n const target = e.target as Node\n if (\n referenceRef.value?.contains(target)\n || popperRef.value?.contains(target)\n ) {\n return\n }\n hide()\n }\n\n onMounted(() => {\n if (props.trigger === 'click') {\n document.addEventListener('click', handleClickOutside)\n }\n })\n\n onBeforeUnmount(() => {\n if (props.trigger === 'click') {\n document.removeEventListener('click', handleClickOutside)\n }\n if (hideTimer) {\n clearTimeout(hideTimer)\n }\n })\n\n const getPopperStyle = () => {\n const width = typeof props.width === 'number' ? `${props.width}px` : props.width\n return {\n position: 'absolute' as const,\n zIndex: 2000,\n width,\n padding: '12px',\n backgroundColor: 'var(--qxs-fill-color-blank, #fff)',\n border: '1px solid var(--qxs-border-color-light, #e4e7ed)',\n borderRadius: '4px',\n boxShadow: '0 2px 12px 0 rgba(0, 0, 0, 0.1)',\n fontSize: '14px',\n lineHeight: '1.4',\n wordBreak: 'break-all' as const,\n }\n }\n\n return () => h('div', {\n class: 'qxs-popover',\n style: {\n display: 'inline-block',\n position: 'relative',\n },\n }, [\n h('div', {\n ref: referenceRef,\n class: 'qxs-popover__reference',\n onMouseenter: handleReferenceMouseEnter,\n onMouseleave: handleReferenceMouseLeave,\n onClick: handleReferenceClick,\n onFocus: handleReferenceFocus,\n onBlur: handleReferenceBlur,\n }, slots.reference?.() || slots.default?.()),\n currentVisible.value && h('div', {\n ref: popperRef,\n class: ['qxs-popover__popper', `qxs-popover__popper--${props.placement}`],\n style: getPopperStyle(),\n onMouseenter: handlePopperMouseEnter,\n onMouseleave: handlePopperMouseLeave,\n }, slots.default?.() || props.content),\n ])\n },\n})\n\nexport default QxsPopover\n"],"names":["QxsPopover","defineComponent","name","props","content","type","String","default","placement","trigger","disabled","Boolean","width","Number","visible","offset","showArrow","emits","setup","_ref","slots","emit","popoverVisible","ref","referenceRef","popperRef","hideTimer","isControlled","currentVisible","computed","value","show","clearTimeout","hide","setTimeout","handleReferenceMouseEnter","handleReferenceMouseLeave","handleReferenceClick","handleReferenceFocus","handleReferenceBlur","handlePopperMouseEnter","handlePopperMouseLeave","handleClickOutside","e","target","contains","onMounted","document","addEventListener","onBeforeUnmount","removeEventListener","h","class","style","display","position","onMouseenter","onMouseleave","onClick","onFocus","onBlur","reference","zIndex","padding","backgroundColor","border","borderRadius","boxShadow","fontSize","lineHeight","wordBreak"],"mappings":"wGAKO,MAAMA,EAAaC,EAAgB,CACxCC,KAAM,aACNC,MAAO,CACLC,QAAS,CAAEC,KAAMC,OAAQC,QAAS,IAClCC,UAAW,CAAEH,KAAMC,OAAsCC,QAAS,UAClEE,QAAS,CAAEJ,KAAMC,OAAoCC,QAAS,SAC9DG,SAAU,CAAEL,KAAMM,QAASJ,SAAS,GACpCK,MAAO,CAAEP,KAAM,CAACC,OAAQO,QAASN,QAAS,KAC1CO,QAAS,CAAET,KAAMM,QAASJ,aAAS,GACnCQ,OAAQ,CAAEV,KAAMQ,OAAQN,QAAS,IACjCS,UAAW,CAAEX,KAAMM,QAASJ,SAAS,IAEvCU,MAAO,CAAC,iBAAkB,OAAQ,OAAQ,cAAe,eACzDC,KAAAA,CAAMf,EAAAgB,GAAwB,IAAjBC,MAAEA,EAAAC,KAAOA,GAAKF,EACzB,MAAMG,EAAiBC,GAAI,GACrBC,EAAeD,IACfE,EAAYF,IAClB,IAAIG,EAAkD,KAEtD,MAAMC,OAAiC,IAAlBxB,EAAMW,QAErBc,EAAiBC,EAAS,IAAMF,EAAexB,EAAMW,QAAUQ,EAAeQ,OAE9EC,EAAOA,KACP5B,EAAMO,WACNgB,IACFM,aAAaN,GACbA,EAAY,MAETC,IACHL,EAAeQ,OAAQ,GAEzBT,EAAK,kBAAkB,GACvBA,EAAK,UAGDY,EAAOA,KACPP,GACFM,aAAaN,GAEfA,EAAYQ,WAAW,KAChBP,IACHL,EAAeQ,OAAQ,GAEzBT,EAAK,kBAAkB,GACvBA,EAAK,SACJ,MAGCc,EAA4BA,KACV,UAAlBhC,EAAMM,SACRsB,KAIEK,EAA4BA,KACV,UAAlBjC,EAAMM,SACRwB,KAIEI,EAAuBA,KACL,UAAlBlC,EAAMM,UACJmB,EAAeE,MACjBG,IAGAF,MAKAO,EAAuBA,KACL,UAAlBnC,EAAMM,SACRsB,KAIEQ,EAAsBA,KACJ,UAAlBpC,EAAMM,SACRwB,KAIEO,EAAyBA,KACP,UAAlBrC,EAAMM,SAAuBiB,IAC/BM,aAAaN,GACbA,EAAY,OAIVe,EAAyBA,KACP,UAAlBtC,EAAMM,SACRwB,KAIES,EAAsBC,IAC1B,GAAsB,UAAlBxC,EAAMM,QAAuB,OACjC,MAAMmC,EAASD,EAAEC,OAEfpB,EAAaM,OAAOe,SAASD,IAC1BnB,EAAUK,OAAOe,SAASD,IAI/BX,KAGFa,EAAU,KACc,UAAlB3C,EAAMM,SACRsC,SAASC,iBAAiB,QAASN,KAIvCO,EAAgB,KACQ,UAAlB9C,EAAMM,SACRsC,SAASG,oBAAoB,QAASR,GAEpChB,GACFM,aAAaN,KAqBjB,MAAO,IAAMyB,EAAE,MAAO,CACpBC,MAAO,cACPC,MAAO,CACLC,QAAS,eACTC,SAAU,aAEX,CACDJ,EAAE,MAAO,CACP5B,IAAKC,EACL4B,MAAO,yBACPI,aAAcrB,EACdsB,aAAcrB,EACdsB,QAASrB,EACTsB,QAASrB,EACTsB,OAAQrB,GACPnB,EAAMyC,eAAiBzC,EAAMb,aAChCqB,EAAeE,OAASqB,EAAE,MAAO,CAC/B5B,IAAKE,EACL2B,MAAO,CAAC,sBAAuB,wBAAwBjD,EAAMK,aAC7D6C,MAlCK,CACLE,SAAU,WACVO,OAAQ,IACRlD,MAJmC,iBAAhBT,EAAMS,MAAqB,GAAGT,EAAMS,UAAYT,EAAMS,MAKzEmD,QAAS,OACTC,gBAAiB,oCACjBC,OAAQ,mDACRC,aAAc,MACdC,UAAW,kCACXC,SAAU,OACVC,WAAY,MACZC,UAAW,aAwBXd,aAAchB,EACdiB,aAAchB,GACbrB,EAAMb,aAAeJ,EAAMC,UAElC"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,inject as l,computed as a,h as t,provide as d}from"vue";const o=Symbol("radioGroup"),s=e({name:"QxsRadio",props:{modelValue:{type:[String,Number,Boolean],default:""},label:{type:[String,Number,Boolean],default:""},disabled:{type:Boolean,default:!1},name:{type:String,default:""}},emits:["update:modelValue","change"],setup(e,d){let{slots:s,emit:i}=d;const n=l(o,null),u=a(()=>n?n.value===e.label:e.modelValue===e.label),r=()=>{e.disabled||(n?n.value=e.label:i("update:modelValue",e.label),i("change",e.label))};return()=>t("label",{class:["qxs-radio",{"is-checked":u.value,"is-disabled":e.disabled}],style:{display:"inline-flex",alignItems:"center",cursor:e.disabled?"not-allowed":"pointer",marginRight:"12px"}},[t("input",{type:"radio",class:"qxs-radio__input",value:e.label,checked:u.value,disabled:e.disabled,name:e.name,onChange:r,style:{marginRight:"8px",cursor:e.disabled?"not-allowed":"pointer"}}),t("span",{class:"qxs-radio__label",style:{fontSize:"14px",color:e.disabled?"var(--qxs-text-color-disabled, #c0c4cc)":void 0}},s.default?.()||e.label)])}}),i=e({name:"QxsRadioGroup",props:{modelValue:{type:[String,Number,Boolean],default:""},disabled:{type:Boolean,default:!1},name:{type:String,default:""}},emits:["update:modelValue","change"],setup(e,l){let{slots:s,emit:i}=l;const n=a({get:()=>e.modelValue,set:e=>{i("update:modelValue",e),i("change",e)}});return d(o,n),()=>t("div",{class:"qxs-radio-group",style:{display:"inline-flex",flexDirection:"column",gap:"12px"}},s.default?.())}});export{s as QxsRadio,i as QxsRadioGroup,s as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/radio/index.ts"],"sourcesContent":["import { computed, defineComponent, h, inject, type InjectionKey, type PropType, provide, type WritableComputedRef } from 'vue'\n\nconst radioGroupKey: InjectionKey<WritableComputedRef<string | number | boolean>> = Symbol('radioGroup')\n\nexport const QxsRadio = defineComponent({\n name: 'QxsRadio',\n props: {\n modelValue: { type: [String, Number, Boolean] as PropType<string | number | boolean>, default: '' },\n label: { type: [String, Number, Boolean] as PropType<string | number | boolean>, default: '' },\n disabled: { type: Boolean, default: false },\n name: { type: String, default: '' },\n },\n emits: ['update:modelValue', 'change'],\n setup(props, { slots, emit }) {\n const radioGroup = inject(radioGroupKey, null)\n\n const isChecked = computed(() => {\n if (radioGroup) {\n return radioGroup.value === props.label\n }\n return props.modelValue === props.label\n })\n\n const handleChange = () => {\n if (!props.disabled) {\n if (radioGroup) {\n radioGroup.value = props.label\n }\n else {\n emit('update:modelValue', props.label)\n }\n emit('change', props.label)\n }\n }\n\n return () => h('label', {\n class: ['qxs-radio', { 'is-checked': isChecked.value, 'is-disabled': props.disabled }],\n style: {\n display: 'inline-flex',\n alignItems: 'center',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n marginRight: '12px',\n },\n }, [\n h('input', {\n type: 'radio',\n class: 'qxs-radio__input',\n value: props.label,\n checked: isChecked.value,\n disabled: props.disabled,\n name: props.name,\n onChange: handleChange,\n style: {\n marginRight: '8px',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n },\n }),\n h('span', {\n class: 'qxs-radio__label',\n style: {\n fontSize: '14px',\n color: props.disabled ? 'var(--qxs-text-color-disabled, #c0c4cc)' : undefined,\n },\n }, slots.default?.() || props.label),\n ])\n },\n})\n\nexport const QxsRadioGroup = defineComponent({\n name: 'QxsRadioGroup',\n props: {\n modelValue: { type: [String, Number, Boolean] as PropType<string | number | boolean>, default: '' },\n disabled: { type: Boolean, default: false },\n name: { type: String, default: '' },\n },\n emits: ['update:modelValue', 'change'],\n setup(props, { slots, emit }) {\n const modelValue = computed({\n get: () => props.modelValue,\n set: (val) => {\n emit('update:modelValue', val)\n emit('change', val)\n },\n })\n\n provide(radioGroupKey, modelValue)\n\n return () => h('div', {\n class: 'qxs-radio-group',\n style: {\n display: 'inline-flex',\n flexDirection: 'column',\n gap: '12px',\n },\n }, slots.default?.())\n },\n})\n\nexport default QxsRadio\n"],"names":["radioGroupKey","Symbol","QxsRadio","defineComponent","name","props","modelValue","type","String","Number","Boolean","default","label","disabled","emits","setup","_ref","slots","emit","radioGroup","inject","isChecked","computed","value","handleChange","h","class","style","display","alignItems","cursor","marginRight","checked","onChange","fontSize","color","QxsRadioGroup","_ref2","get","set","val","provide","flexDirection","gap"],"mappings":"oFAEA,MAAMA,EAA8EC,OAAO,cAE9EC,EAAWC,EAAgB,CACtCC,KAAM,WACNC,MAAO,CACLC,WAAY,CAAEC,KAAM,CAACC,OAAQC,OAAQC,SAAiDC,QAAS,IAC/FC,MAAO,CAAEL,KAAM,CAACC,OAAQC,OAAQC,SAAiDC,QAAS,IAC1FE,SAAU,CAAEN,KAAMG,QAASC,SAAS,GACpCP,KAAM,CAAEG,KAAMC,OAAQG,QAAS,KAEjCG,MAAO,CAAC,oBAAqB,UAC7BC,KAAAA,CAAMV,EAAAW,GAAwB,IAAjBC,MAAEA,EAAAC,KAAOA,GAAKF,EACzB,MAAMG,EAAaC,EAAOpB,EAAe,MAEnCqB,EAAYC,EAAS,IACrBH,EACKA,EAAWI,QAAUlB,EAAMO,MAE7BP,EAAMC,aAAeD,EAAMO,OAG9BY,EAAeA,KACdnB,EAAMQ,WACLM,EACFA,EAAWI,MAAQlB,EAAMO,MAGzBM,EAAK,oBAAqBb,EAAMO,OAElCM,EAAK,SAAUb,EAAMO,SAIzB,MAAO,IAAMa,EAAE,QAAS,CACtBC,MAAO,CAAC,YAAa,CAAE,aAAcL,EAAUE,MAAO,cAAelB,EAAMQ,WAC3Ec,MAAO,CACLC,QAAS,cACTC,WAAY,SACZC,OAAQzB,EAAMQ,SAAW,cAAgB,UACzCkB,YAAa,SAEd,CACDN,EAAE,QAAS,CACTlB,KAAM,QACNmB,MAAO,mBACPH,MAAOlB,EAAMO,MACboB,QAASX,EAAUE,MACnBV,SAAUR,EAAMQ,SAChBT,KAAMC,EAAMD,KACZ6B,SAAUT,EACVG,MAAO,CACLI,YAAa,MACbD,OAAQzB,EAAMQ,SAAW,cAAgB,aAG7CY,EAAE,OAAQ,CACRC,MAAO,mBACPC,MAAO,CACLO,SAAU,OACVC,MAAO9B,EAAMQ,SAAW,+CAA4C,IAErEI,EAAMN,aAAeN,EAAMO,QAElC,IAGWwB,EAAgBjC,EAAgB,CAC3CC,KAAM,gBACNC,MAAO,CACLC,WAAY,CAAEC,KAAM,CAACC,OAAQC,OAAQC,SAAiDC,QAAS,IAC/FE,SAAU,CAAEN,KAAMG,QAASC,SAAS,GACpCP,KAAM,CAAEG,KAAMC,OAAQG,QAAS,KAEjCG,MAAO,CAAC,oBAAqB,UAC7BC,KAAAA,CAAMV,EAAAgC,GAAwB,IAAjBpB,MAAEA,EAAAC,KAAOA,GAAKmB,EACzB,MAAM/B,EAAagB,EAAS,CAC1BgB,IAAKA,IAAMjC,EAAMC,WACjBiC,IAAMC,IACJtB,EAAK,oBAAqBsB,GAC1BtB,EAAK,SAAUsB,MAMnB,OAFAC,EAAQzC,EAAeM,GAEhB,IAAMmB,EAAE,MAAO,CACpBC,MAAO,kBACPC,MAAO,CACLC,QAAS,cACTc,cAAe,SACfC,IAAK,SAEN1B,EAAMN,YACX"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as r,h as a}from"vue";const e=r({name:"QxsScrollbar",props:{height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},always:{type:Boolean,default:!1}},setup(r,e){let{slots:l}=e;const t=r=>"number"==typeof r?`${r}px`:r,o={overflow:"auto",position:"relative"};r.height&&(o.height=t(r.height)),r.maxHeight&&(o.maxHeight=t(r.maxHeight));const s=`\n .qxs-scrollbar__wrapper::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-thumb {\n background-color: rgba(144, 147, 153, 0.3);\n border-radius: 4px;\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 147, 153, 0.5);\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-track {\n background-color: transparent;\n }\n ${r.always?"":"\n .qxs-scrollbar__wrapper::-webkit-scrollbar {\n display: none;\n }\n .qxs-scrollbar__wrapper:hover::-webkit-scrollbar {\n display: block;\n }\n "}\n `;return()=>a("div",{class:"qxs-scrollbar",style:{position:"relative"}},[a("style",s),a("div",{class:"qxs-scrollbar__wrapper",style:o},l.default?.())])}});export{e as QxsScrollbar,e as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/src/ui/scrollbar/index.ts"],"sourcesContent":["import { type CSSProperties, defineComponent, h } from 'vue'\n\nexport const QxsScrollbar = defineComponent({\n name: 'QxsScrollbar',\n props: {\n height: { type: [String, Number], default: '' },\n maxHeight: { type: [String, Number], default: '' },\n always: { type: Boolean, default: false },\n },\n setup(props, { slots }) {\n const getHeight = (value: string | number) => {\n if (typeof value === 'number') { return `${value}px` }\n return value\n }\n\n const wrapperStyle: CSSProperties = {\n overflow: 'auto',\n position: 'relative',\n }\n\n if (props.height) {\n wrapperStyle.height = getHeight(props.height)\n }\n\n if (props.maxHeight) {\n wrapperStyle.maxHeight = getHeight(props.maxHeight)\n }\n\n const scrollbarStyles = `\n .qxs-scrollbar__wrapper::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-thumb {\n background-color: rgba(144, 147, 153, 0.3);\n border-radius: 4px;\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 147, 153, 0.5);\n }\n .qxs-scrollbar__wrapper::-webkit-scrollbar-track {\n background-color: transparent;\n }\n ${props.always\n ? ''\n : `\n .qxs-scrollbar__wrapper::-webkit-scrollbar {\n display: none;\n }\n .qxs-scrollbar__wrapper:hover::-webkit-scrollbar {\n display: block;\n }\n `}\n `\n\n return () => h('div', {\n class: 'qxs-scrollbar',\n style: { position: 'relative' },\n }, [\n h('style', scrollbarStyles),\n h('div', {\n class: 'qxs-scrollbar__wrapper',\n style: wrapperStyle,\n }, slots.default?.()),\n ])\n },\n})\n\nexport default QxsScrollbar\n"],"names":["QxsScrollbar","defineComponent","name","props","height","type","String","Number","default","maxHeight","always","Boolean","setup","_ref","slots","getHeight","value","wrapperStyle","overflow","position","scrollbarStyles","h","class","style"],"mappings":"6CAEO,MAAMA,EAAeC,EAAgB,CAC1CC,KAAM,eACNC,MAAO,CACLC,OAAQ,CAAEC,KAAM,CAACC,OAAQC,QAASC,QAAS,IAC3CC,UAAW,CAAEJ,KAAM,CAACC,OAAQC,QAASC,QAAS,IAC9CE,OAAQ,CAAEL,KAAMM,QAASH,SAAS,IAEpCI,KAAAA,CAAMT,EAAAU,GAAkB,IAAXC,MAAEA,GAAMD,EACnB,MAAME,EAAaC,GACI,iBAAVA,EAA6B,GAAGA,MACpCA,EAGHC,EAA8B,CAClCC,SAAU,OACVC,SAAU,YAGRhB,EAAMC,SACRa,EAAab,OAASW,EAAUZ,EAAMC,SAGpCD,EAAMM,YACRQ,EAAaR,UAAYM,EAAUZ,EAAMM,YAG3C,MAAMW,EAAkB,ifAepBjB,EAAMO,OACJ,GACA,gNAUN,MAAO,IAAMW,EAAE,MAAO,CACpBC,MAAO,gBACPC,MAAO,CAAEJ,SAAU,aAClB,CACDE,EAAE,QAASD,GACXC,EAAE,MAAO,CACPC,MAAO,yBACPC,MAAON,GACNH,EAAMN,cAEb"}
@@ -0,0 +1,2 @@
1
+ import{defineComponent as e,inject as l,computed as a,h as t,ref as o,watch as s,provide as r}from"vue";const i=Symbol("QxsSelect"),n=e({name:"QxsOption",props:{value:{type:[String,Number,Boolean,Object],required:!0},label:{type:String,default:""},disabled:{type:Boolean,default:!1}},setup(e,o){let{slots:s}=o;const r=l(i);if(!r)return()=>null;r.registerOption(e.value,e.label||String(e.value));const n=a(()=>r.multiple.value?Array.isArray(r.modelValue.value)&&r.modelValue.value.includes(e.value):r.modelValue.value===e.value),d=()=>{e.disabled||r.handleSelect(e.value,e.label||String(e.value))};return()=>t("div",{class:["qxs-option",{"is-selected":n.value,"is-disabled":e.disabled}],onClick:d,style:{padding:"4px 8px",cursor:e.disabled?"not-allowed":"pointer",backgroundColor:n.value?"rgba(61, 97, 227, 0.1)":"transparent",color:n.value?"var(--qxs-color-primary, #3D61E3)":e.disabled?"#c0c4cc":"#606266",fontSize:"14px",lineHeight:"1.25",borderRadius:"4px",fontWeight:n.value?"500":"400",marginBottom:"2px"},onMouseenter:l=>{e.disabled||(l.currentTarget.style.backgroundColor=n.value?"rgba(61, 97, 227, 0.1)":"#f5f7fa")},onMouseleave:l=>{e.disabled||(l.currentTarget.style.backgroundColor=n.value?"rgba(61, 97, 227, 0.1)":"transparent")}},s.default?.()||e.label)}}),d=e({name:"QxsSelect",props:{modelValue:{type:[String,Number,Boolean,Array,Object],default:""},disabled:{type:Boolean,default:!1},placeholder:{type:String,default:"请选择"},clearable:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},size:{type:String,default:"default"},filterable:{type:Boolean,default:!1}},emits:["update:modelValue","change","clear","visible-change","remove-tag","focus","blur"],setup(e,l){let{slots:n,emit:d}=l;const u=o(!1),p=o(""),c=o(),x=o([]),g=o(new Map);s(()=>e.modelValue,l=>{e.multiple&&Array.isArray(l)&&(x.value=l.map(e=>({value:e,label:g.value.get(e)||String(e)})))},{immediate:!0,deep:!0});const b=a(()=>e.multiple&&Array.isArray(e.modelValue)?e.modelValue.length>0?`已选择 ${e.modelValue.length} 项`:"":p.value),f=l=>{l.stopPropagation(),e.multiple?(d("update:modelValue",[]),x.value=[]):(d("update:modelValue",""),p.value=""),d("clear")},v=()=>{e.disabled||(u.value=!u.value,d("visible-change",u.value))},m=e=>{d("focus",e)},y=e=>{d("blur",e)};r(i,{modelValue:a(()=>e.modelValue),multiple:a(()=>e.multiple),handleSelect:(l,a)=>{if(e.multiple){const t=Array.isArray(e.modelValue)?[...e.modelValue]:[],o=t.findIndex(e=>e===l);if(o>-1){t.splice(o,1);const e=x.value.findIndex(e=>e.value===l);e>-1&&x.value.splice(e,1),d("remove-tag",l)}else t.push(l),x.value.push({value:l,label:a});d("update:modelValue",t),d("change",t)}else p.value=a,d("update:modelValue",l),d("change",l),u.value=!1},registerOption:(e,l)=>{g.value.set(e,l)}});const h=a(()=>"large"===e.size?"40px":"small"===e.size?"24px":"32px");return()=>t("div",{class:["qxs-select",`qxs-select--${e.size}`,{"is-disabled":e.disabled,"is-focus":u.value}],style:{position:"relative",display:"inline-block",width:"100%"}},[t("div",{class:"qxs-select__wrapper",onClick:v,style:{position:"relative",cursor:e.disabled?"not-allowed":"pointer"}},[e.multiple?t("div",{class:"qxs-select__tags",style:{display:"flex",flexWrap:"wrap",gap:"4px",padding:"4px 30px 4px 8px",minHeight:h.value,border:"1px solid hsl(214.3 31.8% 91.4%)",borderRadius:"6px",backgroundColor:e.disabled?"hsl(210 40% 96.1%)":"#fff",cursor:e.disabled?"not-allowed":"pointer",alignItems:"center"}},[...x.value.map(l=>t("span",{class:"qxs-select__tag",style:{display:"inline-flex",alignItems:"center",gap:"2px",padding:"1px 6px",backgroundColor:"var(--qxs-color-primary, #3D61E3)",border:"none",borderRadius:"4px",fontSize:"12px",color:"#fff",fontWeight:"500",lineHeight:"1.2"}},[t("span",null,l.label),!e.disabled&&t("span",{class:"qxs-select__tag-close",onClick:a=>((l,a)=>{if(a.stopPropagation(),e.multiple){const a=Array.isArray(e.modelValue)?[...e.modelValue]:[],t=a.findIndex(e=>e===l);if(t>-1){a.splice(t,1);const e=x.value.findIndex(e=>e.value===l);e>-1&&x.value.splice(e,1),d("remove-tag",l),d("update:modelValue",a),d("change",a)}}})(l.value,a),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",width:"12px",height:"12px",borderRadius:"50%",fontSize:"9px",color:"#fff",transition:"all 0.2s"},onMouseenter:e=>{e.currentTarget.style.backgroundColor="rgba(255, 255, 255, 0.2)"},onMouseleave:e=>{e.currentTarget.style.backgroundColor="transparent"}},"×")])),0===x.value.length&&t("span",{style:{color:"hsl(215 20.2% 65.1%)",fontSize:"14px"}},e.placeholder)]):t("input",{ref:c,class:"qxs-select__inner",type:"text",readonly:!e.filterable,value:b.value,placeholder:e.placeholder,disabled:e.disabled,onFocus:m,onBlur:y,style:{width:"100%",height:h.value,padding:"0 30px 0 12px",border:"1px solid hsl(214.3 31.8% 91.4%)",borderRadius:"6px",outline:"none",fontSize:"14px",backgroundColor:e.disabled?"hsl(210 40% 96.1%)":"#fff",cursor:e.disabled?"not-allowed":"pointer",transition:"border-color 0.2s"}}),t("span",{class:"qxs-select__suffix",style:{position:"absolute",right:"10px",top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:"4px"}},[e.clearable&&b.value&&!e.disabled&&t("span",{class:"qxs-select__clear",onClick:f,style:{fontSize:"14px",cursor:"pointer"}},"×"),t("span",{class:"qxs-select__caret",style:{fontSize:"12px",transform:u.value?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"}},"▼")])]),u.value&&t("div",{class:"qxs-select__dropdown",style:{position:"absolute",top:"100%",left:"0",right:"0",marginTop:"4px",backgroundColor:"#fff",border:"1px solid hsl(214.3 31.8% 91.4%)",borderRadius:"6px",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",zIndex:2e3,maxHeight:"274px",overflowY:"auto",padding:"4px"}},n.default?.())])}});export{n as QxsOption,d as QxsSelect,d as default};
2
+ //# sourceMappingURL=index.mjs.map