foucui 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +8 -8
  2. package/README.publish.md +19 -0
  3. package/dist/components/{QiuAnchor → FouAnchor}/context.d.ts +4 -4
  4. package/dist/components/{QiuBadge → FouBadge}/composables/useTableHostHeight.d.ts +1 -1
  5. package/dist/components/FouBadge/index.d.ts +18 -0
  6. package/dist/components/{QiuBadge → FouBadge}/shared/BadgeTemplateRenderer.vue.d.ts +1 -1
  7. package/dist/components/{QiuBadge → FouBadge}/shared/badgeTemplate.d.ts +1 -1
  8. package/dist/components/{QiuButton → FouButton}/index.vue.d.ts +4 -4
  9. package/dist/components/{QiuCanvasKit/QiuCanvasEditor.vue.d.ts → FouCanvasKit/FouCanvasEditor.vue.d.ts} +4 -2
  10. package/dist/components/{QiuCanvasKit → FouCanvasKit}/components/DataModulesPanel.vue.d.ts +1 -0
  11. package/dist/components/{QiuCanvasKit → FouCanvasKit}/index.d.ts +4 -4
  12. package/dist/components/{QiuCanvasKit → FouCanvasKit}/types.d.ts +1 -1
  13. package/dist/components/{QiuCarousel → FouCarousel}/context.d.ts +4 -4
  14. package/dist/components/{QiuCascader → FouCascader}/types.d.ts +7 -7
  15. package/dist/components/{QiuCheckbox → FouCheckbox}/types.d.ts +1 -1
  16. package/dist/components/{QiuCollapse → FouCollapse}/context.d.ts +2 -2
  17. package/dist/components/{QiuDescriptions → FouDescriptions}/context.d.ts +4 -4
  18. package/dist/components/{QiuDropdown → FouDropdown}/context.d.ts +2 -2
  19. package/dist/components/{QiuForm → FouForm}/types.d.ts +10 -10
  20. package/dist/components/FouLoading/index.d.ts +26 -0
  21. package/dist/components/{QiuLoading → FouLoading}/spinner.vue.d.ts +3 -3
  22. package/dist/components/{QiuLoading → FouLoading}/types.d.ts +2 -2
  23. package/dist/components/{QiuMenu → FouMenu}/context.d.ts +2 -2
  24. package/dist/components/{QiuMenuNav → FouMenuNav}/context.d.ts +2 -2
  25. package/dist/components/{QiuMsg/QiuMsgItem.vue.d.ts → FouMsg/FouMsgItem.vue.d.ts} +3 -3
  26. package/dist/components/FouMsg/index.d.ts +30 -0
  27. package/dist/components/{QiuMsg → FouMsg}/types.d.ts +5 -5
  28. package/dist/components/{QiuMsgBox → FouMsgBox}/index.d.ts +3 -3
  29. package/dist/components/{QiuNotification/QiuNotificationItem.vue.d.ts → FouNotification/FouNotificationItem.vue.d.ts} +3 -3
  30. package/dist/components/FouNotification/index.d.ts +30 -0
  31. package/dist/components/FouNotification/types.d.ts +12 -0
  32. package/dist/components/{QiuRadio → FouRadio}/types.d.ts +1 -1
  33. package/dist/components/FouRow/types.d.ts +4 -0
  34. package/dist/components/{QiuSelect → FouSelect}/index.vue.d.ts +3 -3
  35. package/dist/components/{QiuSelect → FouSelect}/types.d.ts +3 -3
  36. package/dist/components/{QiuStep → FouStep}/index.vue.d.ts +1 -1
  37. package/dist/components/{QiuSteps → FouSteps}/context.d.ts +5 -5
  38. package/dist/components/{QiuTabBar → FouTabBar}/index.vue.d.ts +3 -3
  39. package/dist/components/{QiuTabBar → FouTabBar}/types.d.ts +5 -5
  40. package/dist/components/{QiuTable → FouTable}/export.d.ts +5 -5
  41. package/dist/components/FouTable/index.d.ts +3 -0
  42. package/dist/components/{QiuTable → FouTable}/index.vue.d.ts +60 -60
  43. package/dist/components/FouTable/registry.d.ts +39 -0
  44. package/dist/components/{QiuTable → FouTable}/types.d.ts +60 -60
  45. package/dist/components/{QiuTable → FouTable}/useArea.d.ts +10 -10
  46. package/dist/components/{QiuTable → FouTable}/useColumns.d.ts +5 -5
  47. package/dist/components/FouTable/useEdit.d.ts +36 -0
  48. package/dist/components/{QiuTable → FouTable}/useHistory.d.ts +5 -5
  49. package/dist/components/{QiuTable → FouTable}/useMerge.d.ts +6 -6
  50. package/dist/components/{QiuTable → FouTable}/useScrollSync.d.ts +1 -1
  51. package/dist/components/{QiuTable → FouTable}/utils.d.ts +17 -17
  52. package/dist/components/FouTree/types.d.ts +13 -0
  53. package/dist/components/{QiuUpload → FouUpload}/index.vue.d.ts +17 -17
  54. package/dist/foucui.css +1 -1
  55. package/dist/foucui.js +10749 -10646
  56. package/dist/foucui.umd.cjs +40 -40
  57. package/dist/index.d.ts +43 -43
  58. package/dist/src/bridge/@/config/index.d.ts +1 -1
  59. package/dist/src/bridge/@fou/plugins/shortcuts.d.ts +2 -0
  60. package/package.json +27 -15
  61. package/components/QiuAffix/index.vue +0 -186
  62. package/components/QiuAlert/index.vue +0 -208
  63. package/components/QiuAnchor/context.ts +0 -18
  64. package/components/QiuAnchor/index.vue +0 -180
  65. package/components/QiuAnchorLink/index.vue +0 -67
  66. package/components/QiuApp/index.vue +0 -9
  67. package/components/QiuAutocomplete/index.vue +0 -408
  68. package/components/QiuAvatar/index.vue +0 -140
  69. package/components/QiuBacktop/index.vue +0 -121
  70. package/components/QiuBadge/api/index.ts +0 -389
  71. package/components/QiuBadge/components/BadgeImagePickerDialog.vue +0 -243
  72. package/components/QiuBadge/components/BadgeLibraryManagerDialog.vue +0 -30
  73. package/components/QiuBadge/components/BadgeLibraryPanel.vue +0 -182
  74. package/components/QiuBadge/composables/useTableHostHeight.ts +0 -53
  75. package/components/QiuBadge/index.ts +0 -18
  76. package/components/QiuBadge/shared/BadgeTemplateRenderer.vue +0 -32
  77. package/components/QiuBadge/shared/assetUrl.ts +0 -26
  78. package/components/QiuBadge/shared/badgeTemplate.ts +0 -309
  79. package/components/QiuBadge/utils/chinaAreaData.ts +0 -44
  80. package/components/QiuBadge/utils/hostRegion.ts +0 -22
  81. package/components/QiuBadge/utils/pca-code.json +0 -1
  82. package/components/QiuBadge/utils/pdfFromElement.ts +0 -348
  83. package/components/QiuBadge/views/BadgeLibraryView.vue +0 -32
  84. package/components/QiuBadge/views/BadgeManageView.vue +0 -1364
  85. package/components/QiuBadge/views/BadgeTemplateEditorView.vue +0 -10
  86. package/components/QiuBadge/views/BadgeTemplateListView.vue +0 -229
  87. package/components/QiuBadge/views/DeskLabelTemplateListView.vue +0 -227
  88. package/components/QiuBadge/views/DeskLabelView.vue +0 -683
  89. package/components/QiuBadgeDot/index.vue +0 -87
  90. package/components/QiuButton/index.vue +0 -247
  91. package/components/QiuButtonGroup/index.vue +0 -63
  92. package/components/QiuCanvasKit/QiuCanvasEditor.vue +0 -5503
  93. package/components/QiuCanvasKit/QiuCanvasRenderer.vue +0 -348
  94. package/components/QiuCanvasKit/assetUrl.ts +0 -11
  95. package/components/QiuCanvasKit/components/DataModulesPanel.vue +0 -352
  96. package/components/QiuCanvasKit/export/html.ts +0 -132
  97. package/components/QiuCanvasKit/export/pdf.ts +0 -48
  98. package/components/QiuCanvasKit/export/png.ts +0 -50
  99. package/components/QiuCanvasKit/index.ts +0 -20
  100. package/components/QiuCanvasKit/modules/badgeCompat.ts +0 -84
  101. package/components/QiuCanvasKit/modules/dataRegistry.ts +0 -207
  102. package/components/QiuCanvasKit/modules/merge.ts +0 -71
  103. package/components/QiuCanvasKit/presets/badge.ts +0 -67
  104. package/components/QiuCanvasKit/presets/banner.ts +0 -79
  105. package/components/QiuCanvasKit/types.ts +0 -138
  106. package/components/QiuCard/index.vue +0 -104
  107. package/components/QiuCarousel/context.ts +0 -16
  108. package/components/QiuCarousel/index.vue +0 -343
  109. package/components/QiuCarouselItem/index.vue +0 -47
  110. package/components/QiuCascader/index.vue +0 -879
  111. package/components/QiuCascader/types.ts +0 -48
  112. package/components/QiuCheckbox/QiuCheckboxGroup.vue +0 -78
  113. package/components/QiuCheckbox/index.vue +0 -231
  114. package/components/QiuCheckbox/types.ts +0 -8
  115. package/components/QiuCode/index.vue +0 -64
  116. package/components/QiuCol/col.scss +0 -55
  117. package/components/QiuCol/index.vue +0 -64
  118. package/components/QiuCollapse/context.ts +0 -10
  119. package/components/QiuCollapse/index.vue +0 -70
  120. package/components/QiuCollapseItem/index.vue +0 -167
  121. package/components/QiuColorField/index.vue +0 -296
  122. package/components/QiuColorPicker/README.md +0 -118
  123. package/components/QiuColorPicker/index.vue +0 -60
  124. package/components/QiuColorfulCard/index.vue +0 -101
  125. package/components/QiuCombobox/index.vue +0 -277
  126. package/components/QiuConfigProvider/index.vue +0 -31
  127. package/components/QiuContextMenu/index.vue +0 -209
  128. package/components/QiuDate/index.vue +0 -1134
  129. package/components/QiuDescriptions/context.ts +0 -20
  130. package/components/QiuDescriptions/index.vue +0 -115
  131. package/components/QiuDescriptionsItem/index.vue +0 -103
  132. package/components/QiuDialog/index.vue +0 -828
  133. package/components/QiuDigitalCard/index.vue +0 -159
  134. package/components/QiuDivider/index.vue +0 -185
  135. package/components/QiuDot/index.vue +0 -83
  136. package/components/QiuDrawer/index.vue +0 -350
  137. package/components/QiuDropdown/QiuDropdownItem.vue +0 -74
  138. package/components/QiuDropdown/QiuDropdownMenu.vue +0 -22
  139. package/components/QiuDropdown/context.ts +0 -9
  140. package/components/QiuDropdown/index.vue +0 -189
  141. package/components/QiuEmpty/index.vue +0 -73
  142. package/components/QiuForm/index.vue +0 -172
  143. package/components/QiuForm/types.ts +0 -39
  144. package/components/QiuFormItem/index.vue +0 -276
  145. package/components/QiuFullscreen/index.vue +0 -11
  146. package/components/QiuGrid/index.vue +0 -408
  147. package/components/QiuHoverCard/index.vue +0 -192
  148. package/components/QiuIcon/index.vue +0 -117
  149. package/components/QiuIconPicker/iconify.libraries.ts +0 -182
  150. package/components/QiuIconPicker/icons.catalog.ts +0 -3072
  151. package/components/QiuIconPicker/index.vue +0 -488
  152. package/components/QiuImage/index.vue +0 -177
  153. package/components/QiuInput/index.vue +0 -328
  154. package/components/QiuInputNumber/index.vue +0 -295
  155. package/components/QiuInputOtp/index.vue +0 -190
  156. package/components/QiuKbd/index.vue +0 -57
  157. package/components/QiuLayoutContainer/index.vue +0 -50
  158. package/components/QiuLinkPreview/index.vue +0 -224
  159. package/components/QiuLoading/index.ts +0 -176
  160. package/components/QiuLoading/spinner.vue +0 -820
  161. package/components/QiuLoading/types.ts +0 -44
  162. package/components/QiuMention/index.vue +0 -299
  163. package/components/QiuMenu/QiuMenuRoot.vue +0 -241
  164. package/components/QiuMenu/components/QiuMenuItem.vue +0 -340
  165. package/components/QiuMenu/components/QiuSubMenu.vue +0 -504
  166. package/components/QiuMenu/context.ts +0 -21
  167. package/components/QiuMenu/index.vue +0 -43
  168. package/components/QiuMenuNav/QiuMenuNavItem.vue +0 -100
  169. package/components/QiuMenuNav/QiuMenuNavSub.vue +0 -120
  170. package/components/QiuMenuNav/context.ts +0 -14
  171. package/components/QiuMenuNav/index.vue +0 -148
  172. package/components/QiuMsg/QiuMsgItem.vue +0 -180
  173. package/components/QiuMsg/index.ts +0 -158
  174. package/components/QiuMsg/types.ts +0 -23
  175. package/components/QiuMsgBox/index.ts +0 -147
  176. package/components/QiuNotification/QiuNotificationItem.vue +0 -168
  177. package/components/QiuNotification/index.ts +0 -155
  178. package/components/QiuNotification/types.ts +0 -14
  179. package/components/QiuPage/index.vue +0 -12
  180. package/components/QiuPageHeader/index.vue +0 -115
  181. package/components/QiuPageMain/index.vue +0 -78
  182. package/components/QiuPagination/index.vue +0 -421
  183. package/components/QiuPasswordStrength/index.vue +0 -101
  184. package/components/QiuPopconfirm/index.vue +0 -196
  185. package/components/QiuPopover/index.vue +0 -277
  186. package/components/QiuProgress/index.vue +0 -235
  187. package/components/QiuQrcode/index.vue +0 -302
  188. package/components/QiuQueryForm/components/QiuQueryFormBottomPanel.vue +0 -13
  189. package/components/QiuQueryForm/components/QiuQueryFormLeftPanel.vue +0 -37
  190. package/components/QiuQueryForm/components/QiuQueryFormRightPanel.vue +0 -37
  191. package/components/QiuQueryForm/components/QiuQueryFormTopPanel.vue +0 -13
  192. package/components/QiuQueryForm/index.vue +0 -117
  193. package/components/QiuRadio/QiuRadioGroup.vue +0 -75
  194. package/components/QiuRadio/index.vue +0 -191
  195. package/components/QiuRadio/types.ts +0 -9
  196. package/components/QiuRate/index.vue +0 -184
  197. package/components/QiuRefresh/index.vue +0 -32
  198. package/components/QiuResult/index.vue +0 -103
  199. package/components/QiuRow/index.vue +0 -60
  200. package/components/QiuRow/types.ts +0 -5
  201. package/components/QiuScrollbar/index.vue +0 -107
  202. package/components/QiuSearchBar/index.vue +0 -154
  203. package/components/QiuSegmented/index.vue +0 -120
  204. package/components/QiuSelect/QiuOption.vue +0 -93
  205. package/components/QiuSelect/index.vue +0 -452
  206. package/components/QiuSelect/types.ts +0 -15
  207. package/components/QiuSkeleton/index.vue +0 -78
  208. package/components/QiuSlider/index.vue +0 -266
  209. package/components/QiuSpace/index.vue +0 -95
  210. package/components/QiuSparkline/index.vue +0 -92
  211. package/components/QiuStatistic/index.vue +0 -4
  212. package/components/QiuStatistics/index.vue +0 -123
  213. package/components/QiuStep/index.vue +0 -220
  214. package/components/QiuSteps/context.ts +0 -25
  215. package/components/QiuSteps/index.vue +0 -84
  216. package/components/QiuSwitch/index.vue +0 -145
  217. package/components/QiuTabBar/index.vue +0 -218
  218. package/components/QiuTabBar/types.ts +0 -19
  219. package/components/QiuTabPane/index.vue +0 -82
  220. package/components/QiuTable/columns.ts +0 -16
  221. package/components/QiuTable/export.ts +0 -102
  222. package/components/QiuTable/index.ts +0 -24
  223. package/components/QiuTable/index.vue +0 -3503
  224. package/components/QiuTable/registry.ts +0 -75
  225. package/components/QiuTable/styles/table.scss +0 -1230
  226. package/components/QiuTable/types.ts +0 -413
  227. package/components/QiuTable/useArea.ts +0 -202
  228. package/components/QiuTable/useColumns.ts +0 -325
  229. package/components/QiuTable/useEdit.ts +0 -136
  230. package/components/QiuTable/useExtras.ts +0 -115
  231. package/components/QiuTable/useHistory.ts +0 -77
  232. package/components/QiuTable/useMerge.ts +0 -105
  233. package/components/QiuTable/useResize.ts +0 -86
  234. package/components/QiuTable/useScrollSync.ts +0 -152
  235. package/components/QiuTable/useVirtual.ts +0 -97
  236. package/components/QiuTable/utils.ts +0 -165
  237. package/components/QiuTableColumn/index.vue +0 -101
  238. package/components/QiuTag/index.vue +0 -143
  239. package/components/QiuText/index.vue +0 -99
  240. package/components/QiuTime/index.vue +0 -548
  241. package/components/QiuTimeAgo/index.vue +0 -103
  242. package/components/QiuTimeline/index.vue +0 -54
  243. package/components/QiuTimelineItem/index.vue +0 -140
  244. package/components/QiuTips/index.vue +0 -323
  245. package/components/QiuTooltip/index.vue +0 -237
  246. package/components/QiuTransfer/index.vue +0 -277
  247. package/components/QiuTree/QiuTreeNode.vue +0 -146
  248. package/components/QiuTree/index.vue +0 -143
  249. package/components/QiuTree/types.ts +0 -30
  250. package/components/QiuTreeSelect/index.vue +0 -259
  251. package/components/QiuTrend/index.vue +0 -92
  252. package/components/QiuUpload/index.vue +0 -628
  253. package/components/QiuUploadCrop/index.vue +0 -1267
  254. package/components/QiuWatermark/index.vue +0 -121
  255. package/components/useBodyScrollLock.ts +0 -28
  256. package/dist/components/QiuBadge/index.d.ts +0 -18
  257. package/dist/components/QiuBadge/utils/pca-code.json.d.ts +0 -3
  258. package/dist/components/QiuLoading/index.d.ts +0 -26
  259. package/dist/components/QiuMsg/index.d.ts +0 -30
  260. package/dist/components/QiuNotification/index.d.ts +0 -30
  261. package/dist/components/QiuNotification/types.d.ts +0 -12
  262. package/dist/components/QiuRow/types.d.ts +0 -4
  263. package/dist/components/QiuTable/index.d.ts +0 -3
  264. package/dist/components/QiuTable/registry.d.ts +0 -39
  265. package/dist/components/QiuTable/useEdit.d.ts +0 -36
  266. package/dist/components/QiuTree/types.d.ts +0 -13
  267. package/dist/src/bridge/@qiu/plugins/shortcuts.d.ts +0 -2
  268. package/plugins/qiu.ts +0 -83
  269. package/plugins/shortcuts.ts +0 -69
  270. package/src/bridge/@/api/media.ts +0 -8
  271. package/src/bridge/@/api/notice.ts +0 -5
  272. package/src/bridge/@/config/index.ts +0 -38
  273. package/src/bridge/@/config/media.config.ts +0 -37
  274. package/src/bridge/@/config/security.config.ts +0 -8
  275. package/src/bridge/@/i18n/index.ts +0 -6
  276. package/src/bridge/@/store/modules/bing.ts +0 -9
  277. package/src/bridge/@/store/modules/errorLog.ts +0 -9
  278. package/src/bridge/@/store/modules/media.ts +0 -10
  279. package/src/bridge/@/store/modules/routes.ts +0 -10
  280. package/src/bridge/@/store/modules/settings.ts +0 -9
  281. package/src/bridge/@/store/modules/tabs.ts +0 -9
  282. package/src/bridge/@/store/modules/user.ts +0 -9
  283. package/src/bridge/@/utils/convertToCamelCase.ts +0 -11
  284. package/src/bridge/@/utils/index.ts +0 -9
  285. package/src/bridge/@/utils/pageTitle.ts +0 -4
  286. package/src/bridge/@/utils/routes.ts +0 -14
  287. package/src/bridge/@/utils/validate.ts +0 -17
  288. package/src/bridge/@qiu/plugins/shortcuts.ts +0 -3
  289. package/src/i18n.ts +0 -8
  290. package/src/icons/qiu-logo.svg +0 -1
  291. package/styles/dark.scss +0 -194
  292. package/styles/normalize.css +0 -349
  293. package/styles/plain.scss +0 -423
  294. package/styles/qiu-tokens.scss +0 -40
  295. package/styles/qiu.scss +0 -1149
  296. package/styles/technology.scss +0 -452
  297. package/styles/var.scss +0 -382
  298. package/styles/variables.scss +0 -77
  299. /package/dist/components/{QiuAnchorLink → FouAnchorLink}/index.vue.d.ts +0 -0
  300. /package/dist/components/{QiuBadge → FouBadge}/api/index.d.ts +0 -0
  301. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeImagePickerDialog.vue.d.ts +0 -0
  302. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeLibraryManagerDialog.vue.d.ts +0 -0
  303. /package/dist/components/{QiuBadge → FouBadge}/components/BadgeLibraryPanel.vue.d.ts +0 -0
  304. /package/dist/components/{QiuBadge → FouBadge}/shared/assetUrl.d.ts +0 -0
  305. /package/dist/components/{QiuBadge → FouBadge}/utils/chinaAreaData.d.ts +0 -0
  306. /package/dist/components/{QiuBadge → FouBadge}/utils/hostRegion.d.ts +0 -0
  307. /package/dist/components/{QiuBadge → FouBadge}/utils/pdfFromElement.d.ts +0 -0
  308. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeLibraryView.vue.d.ts +0 -0
  309. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeManageView.vue.d.ts +0 -0
  310. /package/dist/components/{QiuBadge → FouBadge}/views/BadgeTemplateListView.vue.d.ts +0 -0
  311. /package/dist/components/{QiuBadge → FouBadge}/views/DeskLabelTemplateListView.vue.d.ts +0 -0
  312. /package/dist/components/{QiuBadge → FouBadge}/views/DeskLabelView.vue.d.ts +0 -0
  313. /package/dist/components/{QiuCanvasKit/QiuCanvasRenderer.vue.d.ts → FouCanvasKit/FouCanvasRenderer.vue.d.ts} +0 -0
  314. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/assetUrl.d.ts +0 -0
  315. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/html.d.ts +0 -0
  316. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/pdf.d.ts +0 -0
  317. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/export/png.d.ts +0 -0
  318. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/badgeCompat.d.ts +0 -0
  319. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/dataRegistry.d.ts +0 -0
  320. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/modules/merge.d.ts +0 -0
  321. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/presets/badge.d.ts +0 -0
  322. /package/dist/components/{QiuCanvasKit → FouCanvasKit}/presets/banner.d.ts +0 -0
  323. /package/dist/components/{QiuCarouselItem → FouCarouselItem}/index.vue.d.ts +0 -0
  324. /package/dist/components/{QiuCheckbox/QiuCheckboxGroup.vue.d.ts → FouCheckbox/FouCheckboxGroup.vue.d.ts} +0 -0
  325. /package/dist/components/{QiuCheckbox → FouCheckbox}/index.vue.d.ts +0 -0
  326. /package/dist/components/{QiuCode → FouCode}/index.vue.d.ts +0 -0
  327. /package/dist/components/{QiuCollapseItem → FouCollapseItem}/index.vue.d.ts +0 -0
  328. /package/dist/components/{QiuColorField → FouColorField}/index.vue.d.ts +0 -0
  329. /package/dist/components/{QiuColorPicker → FouColorPicker}/index.vue.d.ts +0 -0
  330. /package/dist/components/{QiuCombobox → FouCombobox}/index.vue.d.ts +0 -0
  331. /package/dist/components/{QiuContextMenu → FouContextMenu}/index.vue.d.ts +0 -0
  332. /package/dist/components/{QiuDescriptionsItem → FouDescriptionsItem}/index.vue.d.ts +0 -0
  333. /package/dist/components/{QiuDigitalCard → FouDigitalCard}/index.vue.d.ts +0 -0
  334. /package/dist/components/{QiuDropdown/QiuDropdownItem.vue.d.ts → FouDropdown/FouDropdownItem.vue.d.ts} +0 -0
  335. /package/dist/components/{QiuDropdown/QiuDropdownMenu.vue.d.ts → FouDropdown/FouDropdownMenu.vue.d.ts} +0 -0
  336. /package/dist/components/{QiuDropdown → FouDropdown}/index.vue.d.ts +0 -0
  337. /package/dist/components/{QiuHoverCard → FouHoverCard}/index.vue.d.ts +0 -0
  338. /package/dist/components/{QiuIcon → FouIcon}/index.vue.d.ts +0 -0
  339. /package/dist/components/{QiuIconPicker → FouIconPicker}/iconify.libraries.d.ts +0 -0
  340. /package/dist/components/{QiuIconPicker → FouIconPicker}/icons.catalog.d.ts +0 -0
  341. /package/dist/components/{QiuInput → FouInput}/index.vue.d.ts +0 -0
  342. /package/dist/components/{QiuInputNumber → FouInputNumber}/index.vue.d.ts +0 -0
  343. /package/dist/components/{QiuInputOtp → FouInputOtp}/index.vue.d.ts +0 -0
  344. /package/dist/components/{QiuKbd → FouKbd}/index.vue.d.ts +0 -0
  345. /package/dist/components/{QiuLayoutContainer → FouLayoutContainer}/index.vue.d.ts +0 -0
  346. /package/dist/components/{QiuLinkPreview → FouLinkPreview}/index.vue.d.ts +0 -0
  347. /package/dist/components/{QiuMention → FouMention}/index.vue.d.ts +0 -0
  348. /package/dist/components/{QiuMenu/QiuMenuRoot.vue.d.ts → FouMenu/FouMenuRoot.vue.d.ts} +0 -0
  349. /package/dist/components/{QiuMenuNav/QiuMenuNavItem.vue.d.ts → FouMenuNav/FouMenuNavItem.vue.d.ts} +0 -0
  350. /package/dist/components/{QiuMenuNav/QiuMenuNavSub.vue.d.ts → FouMenuNav/FouMenuNavSub.vue.d.ts} +0 -0
  351. /package/dist/components/{QiuMenuNav → FouMenuNav}/index.vue.d.ts +0 -0
  352. /package/dist/components/{QiuPageMain → FouPageMain}/index.vue.d.ts +0 -0
  353. /package/dist/components/{QiuPagination → FouPagination}/index.vue.d.ts +0 -0
  354. /package/dist/components/{QiuPasswordStrength → FouPasswordStrength}/index.vue.d.ts +0 -0
  355. /package/dist/components/{QiuQrcode → FouQrcode}/index.vue.d.ts +0 -0
  356. /package/dist/components/{QiuRadio/QiuRadioGroup.vue.d.ts → FouRadio/FouRadioGroup.vue.d.ts} +0 -0
  357. /package/dist/components/{QiuSearchBar → FouSearchBar}/index.vue.d.ts +0 -0
  358. /package/dist/components/{QiuSelect/QiuOption.vue.d.ts → FouSelect/FouOption.vue.d.ts} +0 -0
  359. /package/dist/components/{QiuSparkline → FouSparkline}/index.vue.d.ts +0 -0
  360. /package/dist/components/{QiuSwitch → FouSwitch}/index.vue.d.ts +0 -0
  361. /package/dist/components/{QiuTabPane → FouTabPane}/index.vue.d.ts +0 -0
  362. /package/dist/components/{QiuTable → FouTable}/columns.d.ts +0 -0
  363. /package/dist/components/{QiuTable → FouTable}/useExtras.d.ts +0 -0
  364. /package/dist/components/{QiuTable → FouTable}/useResize.d.ts +0 -0
  365. /package/dist/components/{QiuTable → FouTable}/useVirtual.d.ts +0 -0
  366. /package/dist/components/{QiuTime → FouTime}/index.vue.d.ts +0 -0
  367. /package/dist/components/{QiuTimeAgo → FouTimeAgo}/index.vue.d.ts +0 -0
  368. /package/dist/components/{QiuTimelineItem → FouTimelineItem}/index.vue.d.ts +0 -0
  369. /package/dist/components/{QiuTooltip → FouTooltip}/index.vue.d.ts +0 -0
  370. /package/dist/components/{QiuTrend → FouTrend}/index.vue.d.ts +0 -0
  371. /package/dist/components/{QiuUploadCrop → FouUploadCrop}/index.vue.d.ts +0 -0
@@ -1,350 +0,0 @@
1
- <template>
2
- <Teleport to="body" :disabled="!appendToBody">
3
- <Transition :name="transitionName">
4
- <div
5
- v-if="drawerVisible"
6
- class="qiu-drawer-root"
7
- :class="[`qiu-drawer-root--${direction}`]"
8
- :style="{ zIndex: String(zIndex) }"
9
- >
10
- <div
11
- v-if="modal"
12
- class="qiu-drawer__mask"
13
- @click="onMaskClick"
14
- />
15
-
16
- <div
17
- class="qiu-drawer"
18
- :class="[
19
- `qiu-drawer--${direction}`,
20
- { 'qiu-drawer--animated': animated },
21
- attrs.class,
22
- ]"
23
- v-bind="attrsWithoutClass"
24
- :style="drawerStyle"
25
- role="dialog"
26
- aria-modal="true"
27
- >
28
- <div v-if="showClose || title || $slots.header" class="qiu-drawer__header">
29
- <div class="qiu-drawer__title">
30
- <slot name="header">{{ title }}</slot>
31
- </div>
32
- <button
33
- v-if="showClose"
34
- type="button"
35
- class="qiu-drawer__close"
36
- aria-label="close"
37
- @click="requestClose"
38
- >
39
- ×
40
- </button>
41
- </div>
42
-
43
- <div class="qiu-drawer__body">
44
- <slot />
45
- </div>
46
-
47
- <div v-if="$slots.footer" class="qiu-drawer__footer">
48
- <slot name="footer" />
49
- </div>
50
- </div>
51
- </div>
52
- </Transition>
53
- </Teleport>
54
- </template>
55
-
56
- <script lang="ts" setup>
57
- import { useBodyScrollLock } from '../useBodyScrollLock'
58
- defineOptions({ name: 'QiuDrawer', inheritAttrs: false })
59
-
60
- type Direction = 'rtl' | 'ltr' | 'ttb' | 'btt'
61
-
62
- const attrs = useAttrs()
63
- const attrsWithoutClass = computed(() => {
64
- const { class: _c, style: _s, ...rest } = attrs as Record<string, unknown>
65
- return rest
66
- })
67
-
68
- const props = withDefaults(
69
- defineProps<{
70
- modelValue?: boolean
71
- title?: string
72
- direction?: Direction
73
- size?: string | number
74
- modal?: boolean
75
- closeOnClickModal?: boolean
76
- closeOnPressEscape?: boolean
77
- showClose?: boolean
78
- animated?: boolean
79
- zIndex?: number
80
- /** 兼容 Element 风格;当前始终 Teleport 到 body,false 时禁用 Teleport */
81
- appendToBody?: boolean
82
- beforeClose?: (done: () => void) => void
83
- }>(),
84
- {
85
- modelValue: false,
86
- title: '',
87
- direction: 'rtl',
88
- size: '30%',
89
- modal: true,
90
- closeOnClickModal: true,
91
- closeOnPressEscape: false,
92
- showClose: true,
93
- animated: true,
94
- zIndex: 2000,
95
- appendToBody: true,
96
- }
97
- )
98
-
99
- const appendToBody = computed(() => props.appendToBody !== false)
100
-
101
- const emit = defineEmits<{
102
- 'update:modelValue': [boolean]
103
- open: []
104
- opened: []
105
- close: []
106
- closed: []
107
- }>()
108
-
109
- const drawerVisible = useVModel(props, 'modelValue', emit)
110
-
111
- const resolvedSize = computed(() =>
112
- typeof props.size === 'number' ? `${props.size}px` : String(props.size)
113
- )
114
-
115
- const drawerStyle = computed(() => {
116
- const size = resolvedSize.value
117
- switch (props.direction) {
118
- case 'ltr':
119
- return { width: size, height: '100%' }
120
- case 'ttb':
121
- return { width: '100%', height: size }
122
- case 'btt':
123
- return { width: '100%', height: size }
124
- default:
125
- return { width: size, height: '100%' }
126
- }
127
- })
128
-
129
- const transitionName = computed(() => {
130
- switch (props.direction) {
131
- case 'ltr':
132
- return 'qiu-drawer-slide-left'
133
- case 'ttb':
134
- return 'qiu-drawer-slide-top'
135
- case 'btt':
136
- return 'qiu-drawer-slide-bottom'
137
- default:
138
- return 'qiu-drawer-slide-right'
139
- }
140
- })
141
-
142
- const { lock: lockBodyScroll, unlock: unlockBodyScroll } = useBodyScrollLock()
143
-
144
- const doClose = () => {
145
- emit('close')
146
- drawerVisible.value = false
147
- }
148
-
149
- const requestClose = () => {
150
- if (props.beforeClose) {
151
- props.beforeClose(() => doClose())
152
- return
153
- }
154
- doClose()
155
- }
156
-
157
- const onMaskClick = () => {
158
- if (props.closeOnClickModal) requestClose()
159
- }
160
-
161
- const needLock = computed(() => props.modal && drawerVisible.value)
162
-
163
- watch(needLock, async (v) => {
164
- if (v) {
165
- lockBodyScroll()
166
- emit('open')
167
- await nextTick()
168
- emit('opened')
169
- } else {
170
- unlockBodyScroll()
171
- emit('closed')
172
- }
173
- })
174
-
175
- const onKeydown = (e: KeyboardEvent) => {
176
- if (props.closeOnPressEscape && e.key === 'Escape') requestClose()
177
- }
178
-
179
- watch(drawerVisible, (v) => {
180
- if (v) window.addEventListener('keydown', onKeydown)
181
- else window.removeEventListener('keydown', onKeydown)
182
- })
183
-
184
- onMounted(() => {
185
- if (needLock.value) lockBodyScroll()
186
- })
187
-
188
- onBeforeUnmount(() => {
189
- unlockBodyScroll()
190
- window.removeEventListener('keydown', onKeydown)
191
- })
192
- </script>
193
-
194
- <style lang="scss" scoped>
195
- .qiu-drawer-root {
196
- position: fixed;
197
- inset: 0;
198
- pointer-events: none;
199
- }
200
-
201
- .qiu-drawer__mask {
202
- position: absolute;
203
- inset: 0;
204
- pointer-events: auto;
205
- background: var(--qiu-drawer-mask-bg, var(--qiu-overlay-color-lighter, rgba(0, 0, 0, 0.45)));
206
- }
207
-
208
- .qiu-drawer {
209
- position: absolute;
210
- display: flex;
211
- flex-direction: column;
212
- pointer-events: auto;
213
- background: var(--qiu-bg-color, var(--qiu-bg-color, #fff));
214
- box-shadow: var(--qiu-box-shadow, 0 8px 24px rgba(0, 0, 0, 0.12));
215
- box-sizing: border-box;
216
- overflow: hidden;
217
-
218
- &--rtl {
219
- top: 0;
220
- right: 0;
221
- }
222
-
223
- &--ltr {
224
- top: 0;
225
- left: 0;
226
- }
227
-
228
- &--ttb {
229
- top: 0;
230
- left: 0;
231
- }
232
-
233
- &--btt {
234
- bottom: 0;
235
- left: 0;
236
- }
237
- }
238
-
239
- .qiu-drawer__header {
240
- display: flex;
241
- flex-shrink: 0;
242
- align-items: center;
243
- justify-content: space-between;
244
- padding: 16px 20px;
245
- border-bottom: 1px solid var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5));
246
- }
247
-
248
- .qiu-drawer__title {
249
- flex: 1;
250
- min-width: 0;
251
- font-size: 16px;
252
- font-weight: 600;
253
- color: var(--qiu-text-color-primary, var(--qiu-text-color-primary, #303133));
254
- }
255
-
256
- .qiu-drawer__close {
257
- display: inline-flex;
258
- align-items: center;
259
- justify-content: center;
260
- width: 32px;
261
- height: 32px;
262
- margin-left: 8px;
263
- padding: 0;
264
- font-size: 20px;
265
- line-height: 1;
266
- color: var(--qiu-text-color-secondary, var(--qiu-text-color-secondary, #909399));
267
- cursor: pointer;
268
- background: transparent;
269
- border: 0;
270
- border-radius: 4px;
271
-
272
- &:hover {
273
- color: var(--qiu-color-primary, var(--qiu-color-primary, #409eff));
274
- background: var(--qiu-fill-color-light, var(--qiu-fill-color-light, #f5f7fa));
275
- }
276
- }
277
-
278
- .qiu-drawer__body {
279
- display: flex;
280
- flex-direction: column;
281
- flex: 1;
282
- min-height: 0;
283
- min-width: 0;
284
- padding: 16px 20px;
285
- overflow: auto;
286
- color: var(--qiu-text-color-regular, var(--qiu-text-color-regular, #606266));
287
- font-size: 14px;
288
- }
289
-
290
- .qiu-drawer__footer {
291
- flex-shrink: 0;
292
- display: flex;
293
- gap: 8px;
294
- justify-content: flex-end;
295
- padding: 12px 20px;
296
- border-top: 1px solid var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5));
297
- }
298
-
299
- /* slide transitions */
300
- .qiu-drawer-slide-right-enter-active,
301
- .qiu-drawer-slide-right-leave-active,
302
- .qiu-drawer-slide-left-enter-active,
303
- .qiu-drawer-slide-left-leave-active,
304
- .qiu-drawer-slide-top-enter-active,
305
- .qiu-drawer-slide-top-leave-active,
306
- .qiu-drawer-slide-bottom-enter-active,
307
- .qiu-drawer-slide-bottom-leave-active {
308
- transition: opacity 0.25s ease;
309
-
310
- .qiu-drawer {
311
- transition: transform 0.25s ease;
312
- }
313
- }
314
-
315
- .qiu-drawer-slide-right-enter-from,
316
- .qiu-drawer-slide-right-leave-to {
317
- opacity: 0;
318
-
319
- .qiu-drawer {
320
- transform: translateX(100%);
321
- }
322
- }
323
-
324
- .qiu-drawer-slide-left-enter-from,
325
- .qiu-drawer-slide-left-leave-to {
326
- opacity: 0;
327
-
328
- .qiu-drawer {
329
- transform: translateX(-100%);
330
- }
331
- }
332
-
333
- .qiu-drawer-slide-top-enter-from,
334
- .qiu-drawer-slide-top-leave-to {
335
- opacity: 0;
336
-
337
- .qiu-drawer {
338
- transform: translateY(-100%);
339
- }
340
- }
341
-
342
- .qiu-drawer-slide-bottom-enter-from,
343
- .qiu-drawer-slide-bottom-leave-to {
344
- opacity: 0;
345
-
346
- .qiu-drawer {
347
- transform: translateY(100%);
348
- }
349
- }
350
- </style>
@@ -1,74 +0,0 @@
1
- <template>
2
- <li
3
- class="qiu-dropdown-item"
4
- :class="{
5
- 'is-disabled': disabled,
6
- 'is-divided': divided,
7
- }"
8
- role="menuitem"
9
- @click="onClick"
10
- >
11
- <slot />
12
- </li>
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- import { QIU_DROPDOWN_KEY } from './context'
17
-
18
- defineOptions({ name: 'QiuDropdownItem' })
19
-
20
- const props = withDefaults(
21
- defineProps<{
22
- command?: string | number
23
- disabled?: boolean
24
- divided?: boolean
25
- }>(),
26
- {
27
- command: '',
28
- disabled: false,
29
- divided: false,
30
- }
31
- )
32
-
33
- const emit = defineEmits<{
34
- click: [MouseEvent]
35
- }>()
36
-
37
- const dropdown = inject(QIU_DROPDOWN_KEY, null)
38
-
39
- const onClick = (e: MouseEvent) => {
40
- if (props.disabled) return
41
- emit('click', e)
42
- dropdown?.emitCommand(props.command)
43
- }
44
- </script>
45
-
46
- <style lang="scss" scoped>
47
- .qiu-dropdown-item {
48
- display: flex;
49
- align-items: center;
50
- gap: 8px;
51
- padding: 8px 16px;
52
- font-size: 14px;
53
- line-height: 1.4;
54
- color: var(--qiu-text-color-regular, var(--qiu-text-color-regular, #606266));
55
- cursor: pointer;
56
- white-space: nowrap;
57
- transition: background 0.15s ease, color 0.15s ease;
58
-
59
- &:hover:not(.is-disabled) {
60
- color: var(--qiu-color-primary, var(--qiu-color-primary, #409eff));
61
- background: var(--qiu-fill-color-light, var(--qiu-fill-color-light, #f5f7fa));
62
- }
63
-
64
- &.is-disabled {
65
- color: var(--qiu-text-color-placeholder, var(--qiu-text-color-placeholder, #a8abb2));
66
- cursor: not-allowed;
67
- }
68
-
69
- &.is-divided {
70
- margin-top: 4px;
71
- border-top: 1px solid var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5));
72
- }
73
- }
74
- </style>
@@ -1,22 +0,0 @@
1
- <template>
2
- <ul class="qiu-dropdown-menu" role="menu">
3
- <slot />
4
- </ul>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- defineOptions({ name: 'QiuDropdownMenu' })
9
- </script>
10
-
11
- <style lang="scss" scoped>
12
- .qiu-dropdown-menu {
13
- margin: 0;
14
- padding: 4px 0;
15
- list-style: none;
16
- background: var(--qiu-bg-color, var(--qiu-bg-color, #fff));
17
- border: 1px solid var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5));
18
- border-radius: 4px;
19
- box-shadow: var(--qiu-box-shadow-light, 0 4px 12px rgba(0, 0, 0, 0.1));
20
- box-sizing: border-box;
21
- }
22
- </style>
@@ -1,9 +0,0 @@
1
- import type { InjectionKey, Ref } from 'vue'
2
-
3
- export interface QiuDropdownContext {
4
- visible: Ref<boolean>
5
- close: () => void
6
- emitCommand: (command: string | number) => void
7
- }
8
-
9
- export const QIU_DROPDOWN_KEY: InjectionKey<QiuDropdownContext> = Symbol('QiuDropdown')
@@ -1,189 +0,0 @@
1
- <template>
2
- <span ref="triggerRef" class="qiu-dropdown">
3
- <span class="qiu-dropdown__trigger" @click.stop="toggle">
4
- <slot />
5
- </span>
6
-
7
- <Teleport to="body">
8
- <Transition name="qiu-dropdown-fade">
9
- <div
10
- v-if="visible"
11
- ref="menuHostRef"
12
- class="qiu-dropdown__popper"
13
- :class="popperClass"
14
- :style="popperStyle"
15
- @click.stop
16
- >
17
- <slot name="dropdown" />
18
- </div>
19
- </Transition>
20
- </Teleport>
21
- </span>
22
- </template>
23
-
24
- <script lang="ts" setup>
25
- import { QIU_DROPDOWN_KEY } from './context'
26
-
27
- defineOptions({ name: 'QiuDropdown' })
28
-
29
- const props = withDefaults(
30
- defineProps<{
31
- /** 禁用下拉 */
32
- disabled?: boolean
33
- /** 弹出位置 */
34
- placement?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'bottom' | 'top'
35
- /** 附加到弹层的 class */
36
- popperClass?: string
37
- }>(),
38
- {
39
- disabled: false,
40
- placement: 'bottom-start',
41
- popperClass: '',
42
- }
43
- )
44
-
45
- const emit = defineEmits<{
46
- command: [string | number]
47
- visibleChange: [boolean]
48
- }>()
49
-
50
- const triggerRef = ref<HTMLElement | null>(null)
51
- const menuHostRef = ref<HTMLElement | null>(null)
52
- const visible = ref(false)
53
- const popperStyle = ref<Record<string, string>>({
54
- position: 'fixed',
55
- top: '-9999px',
56
- left: '-9999px',
57
- zIndex: '3000',
58
- })
59
-
60
- const close = () => {
61
- if (!visible.value) return
62
- visible.value = false
63
- emit('visibleChange', false)
64
- }
65
-
66
- const open = async () => {
67
- if (props.disabled) return
68
- visible.value = true
69
- emit('visibleChange', true)
70
- await nextTick()
71
- updatePosition()
72
- // 再测一次:内容渲染后尺寸更准(尤其是 tabs more 面板)
73
- requestAnimationFrame(() => updatePosition())
74
- }
75
-
76
- const toggle = () => {
77
- if (props.disabled) return
78
- if (visible.value) close()
79
- else open()
80
- }
81
-
82
- const emitCommand = (command: string | number) => {
83
- emit('command', command)
84
- close()
85
- }
86
-
87
- provide(QIU_DROPDOWN_KEY, { visible, close, emitCommand })
88
-
89
- const updatePosition = () => {
90
- const trigger = triggerRef.value
91
- const menu = menuHostRef.value
92
- if (!trigger || !menu) return
93
-
94
- const rect = trigger.getBoundingClientRect()
95
- const menuRect = menu.getBoundingClientRect()
96
- const gap = 4
97
- const vw = window.innerWidth
98
- const vh = window.innerHeight
99
- const place = props.placement
100
-
101
- let top = place.startsWith('top') ? rect.top - menuRect.height - gap : rect.bottom + gap
102
- let left = rect.left
103
-
104
- if (place.endsWith('end')) {
105
- left = rect.right - menuRect.width
106
- } else if (place === 'bottom' || place === 'top') {
107
- left = rect.left + (rect.width - menuRect.width) / 2
108
- }
109
-
110
- if (left + menuRect.width > vw - 4) left = vw - menuRect.width - 4
111
- if (left < 4) left = 4
112
- if (top + menuRect.height > vh - 4) top = rect.top - menuRect.height - gap
113
- if (top < 4) top = 4
114
-
115
- popperStyle.value = {
116
- position: 'fixed',
117
- top: `${Math.round(top)}px`,
118
- left: `${Math.round(left)}px`,
119
- zIndex: '3000',
120
- }
121
- }
122
-
123
- const onDocClick = (e: MouseEvent) => {
124
- if (!visible.value) return
125
- const t = e.target as Node
126
- if (triggerRef.value?.contains(t) || menuHostRef.value?.contains(t)) return
127
- close()
128
- }
129
-
130
- const onScrollOrResize = () => {
131
- if (visible.value) updatePosition()
132
- }
133
-
134
- watch(visible, (v) => {
135
- if (v) {
136
- document.addEventListener('click', onDocClick, true)
137
- window.addEventListener('scroll', onScrollOrResize, true)
138
- window.addEventListener('resize', onScrollOrResize)
139
- } else {
140
- document.removeEventListener('click', onDocClick, true)
141
- window.removeEventListener('scroll', onScrollOrResize, true)
142
- window.removeEventListener('resize', onScrollOrResize)
143
- }
144
- })
145
-
146
- onBeforeUnmount(() => {
147
- document.removeEventListener('click', onDocClick, true)
148
- window.removeEventListener('scroll', onScrollOrResize, true)
149
- window.removeEventListener('resize', onScrollOrResize)
150
- })
151
-
152
- defineExpose({ open, close, toggle })
153
- </script>
154
-
155
- <style lang="scss" scoped>
156
- .qiu-dropdown {
157
- display: inline-flex;
158
- flex-shrink: 0;
159
- align-items: center;
160
- justify-content: center;
161
- vertical-align: middle;
162
- }
163
-
164
- .qiu-dropdown__trigger {
165
- display: inline-flex;
166
- align-items: center;
167
- justify-content: center;
168
- line-height: 1;
169
- cursor: pointer;
170
- }
171
-
172
- .qiu-dropdown__popper {
173
- position: fixed;
174
- z-index: 3000;
175
- min-width: 120px;
176
- pointer-events: auto;
177
- }
178
-
179
- .qiu-dropdown-fade-enter-active,
180
- .qiu-dropdown-fade-leave-active {
181
- transition: opacity 0.15s ease, transform 0.15s ease;
182
- }
183
-
184
- .qiu-dropdown-fade-enter-from,
185
- .qiu-dropdown-fade-leave-to {
186
- opacity: 0;
187
- transform: translateY(-4px);
188
- }
189
- </style>
@@ -1,73 +0,0 @@
1
- <template>
2
- <div class="qiu-empty">
3
- <div class="qiu-empty__image">
4
- <slot name="image">
5
- <svg
6
- class="qiu-empty__svg"
7
- viewBox="0 0 120 80"
8
- xmlns="http://www.w3.org/2000/svg"
9
- aria-hidden="true"
10
- >
11
- <rect x="10" y="20" width="100" height="50" rx="4" fill="var(--qiu-fill-color, var(--qiu-fill-color, #f0f2f5))" />
12
- <rect x="20" y="30" width="40" height="6" rx="2" fill="var(--qiu-border-color, var(--qiu-border-color, #dcdfe6))" />
13
- <rect x="20" y="42" width="60" height="6" rx="2" fill="var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5))" />
14
- <rect x="20" y="54" width="30" height="6" rx="2" fill="var(--qiu-border-color-lighter, var(--qiu-border-color-lighter, #ebeef5))" />
15
- </svg>
16
- </slot>
17
- </div>
18
- <p v-if="description || $slots.description" class="qiu-empty__description">
19
- <slot name="description">{{ description }}</slot>
20
- </p>
21
- <div v-if="$slots.default" class="qiu-empty__actions">
22
- <slot />
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- defineOptions({ name: 'QiuEmpty' })
29
-
30
- withDefaults(
31
- defineProps<{
32
- description?: string
33
- }>(),
34
- {
35
- description: '暂无数据',
36
- }
37
- )
38
- </script>
39
-
40
- <style lang="scss" scoped>
41
- .qiu-empty {
42
- display: flex;
43
- flex-direction: column;
44
- align-items: center;
45
- justify-content: center;
46
- padding: 32px 16px;
47
- text-align: center;
48
- }
49
-
50
- .qiu-empty__image {
51
- margin-bottom: 16px;
52
- }
53
-
54
- .qiu-empty__svg {
55
- width: 120px;
56
- height: 80px;
57
- }
58
-
59
- .qiu-empty__description {
60
- margin: 0 0 16px;
61
- font-size: 14px;
62
- line-height: 1.5;
63
- color: var(--qiu-text-color-secondary, var(--qiu-text-color-secondary, #909399));
64
- }
65
-
66
- .qiu-empty__actions {
67
- display: flex;
68
- flex-wrap: wrap;
69
- gap: 8px;
70
- align-items: center;
71
- justify-content: center;
72
- }
73
- </style>