neko-ui 2.8.21 → 2.8.23

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 (671) hide show
  1. package/es/avatar/README.mdx +10 -0
  2. package/es/avatar/examples/basic.md +14 -0
  3. package/es/avatar/examples/group.md +57 -0
  4. package/es/avatar/examples/size.md +21 -0
  5. package/es/avatar/group.js +2 -2
  6. package/es/avatar/group.js.map +1 -1
  7. package/es/avatar/index.js +2 -2
  8. package/es/avatar/index.js.map +1 -1
  9. package/es/avatar/style.js +2 -2
  10. package/es/avatar/style.js.map +1 -1
  11. package/es/back-top/README.mdx +10 -0
  12. package/es/back-top/examples/basic.md +19 -0
  13. package/es/back-top/examples/mount.md +36 -0
  14. package/es/back-top/examples/target.md +46 -0
  15. package/es/back-top/index.js +1 -1
  16. package/es/back-top/index.js.map +1 -1
  17. package/es/basic-config/README.mdx +11 -0
  18. package/es/button/README.mdx +10 -0
  19. package/es/button/examples/basic.md +21 -0
  20. package/es/button/examples/block.md +33 -0
  21. package/es/button/examples/circle.md +21 -0
  22. package/es/button/examples/danger.md +23 -0
  23. package/es/button/examples/dashed.md +21 -0
  24. package/es/button/examples/disabled.md +35 -0
  25. package/es/button/examples/fill.md +21 -0
  26. package/es/button/examples/flat.md +21 -0
  27. package/es/button/examples/ghost.md +21 -0
  28. package/es/button/examples/icon.md +30 -0
  29. package/es/button/examples/link.md +21 -0
  30. package/es/button/examples/size.md +23 -0
  31. package/es/button/index.js +1 -1
  32. package/es/button/index.js.map +1 -1
  33. package/es/button/style.js +1 -0
  34. package/es/button/style.js.map +1 -1
  35. package/es/capture-screen/README.mdx +10 -0
  36. package/es/capture-screen/examples/basic.md +13 -0
  37. package/es/capture-screen/examples/custom-save.md +30 -0
  38. package/es/capture-screen/examples/preview.md +13 -0
  39. package/es/capture-screen/examples/recorder-save.md +13 -0
  40. package/es/capture-screen/index.js +1 -1
  41. package/es/capture-screen/index.js.map +1 -1
  42. package/es/carousel/README.mdx +10 -0
  43. package/es/carousel/examples/autoplay.md +21 -0
  44. package/es/carousel/examples/basic.md +23 -0
  45. package/es/carousel/examples/dots.md +23 -0
  46. package/es/carousel/examples/header.md +38 -0
  47. package/es/carousel/index.js +1 -1
  48. package/es/carousel/index.js.map +1 -1
  49. package/es/checkbox/README.mdx +10 -0
  50. package/es/checkbox/examples/basic.md +31 -0
  51. package/es/checkbox/examples/check-all.md +37 -0
  52. package/es/checkbox/examples/disabled-all.md +28 -0
  53. package/es/checkbox/examples/disabled-option.md +35 -0
  54. package/es/checkbox/examples/field-names.md +40 -0
  55. package/es/checkbox/examples/status.md +37 -0
  56. package/es/checkbox/examples/vertical.md +36 -0
  57. package/es/checkbox/index.js +1 -1
  58. package/es/checkbox/index.js.map +1 -1
  59. package/es/code/README.mdx +10 -0
  60. package/es/code/examples/basic.md +19 -0
  61. package/es/code/examples/diff.md +45 -0
  62. package/es/code/examples/line-number.md +18 -0
  63. package/es/code/examples/live-edit.md +20 -0
  64. package/es/code/examples/toolbar.md +18 -0
  65. package/es/code/index.js +2 -2
  66. package/es/code/index.js.map +1 -1
  67. package/es/code/worker.js.map +1 -1
  68. package/es/color-palette/README.mdx +10 -0
  69. package/es/color-palette/examples/default-value.md +25 -0
  70. package/es/color-palette/examples/hexa.md +13 -0
  71. package/es/color-palette/examples/hsla.md +13 -0
  72. package/es/color-palette/examples/rgba.md +13 -0
  73. package/es/color-palette/index.js +1 -1
  74. package/es/color-palette/index.js.map +1 -1
  75. package/es/color-picker/README.mdx +10 -0
  76. package/es/color-picker/examples/basic.md +12 -0
  77. package/es/color-picker/examples/default-value.md +20 -0
  78. package/es/color-picker/examples/size.md +17 -0
  79. package/es/color-picker/index.js +1 -1
  80. package/es/color-picker/index.js.map +1 -1
  81. package/es/cron/README.mdx +10 -0
  82. package/es/cron/begin-interval.js.map +1 -1
  83. package/es/cron/day.js.map +1 -1
  84. package/es/cron/examples/basic.md +19 -0
  85. package/es/cron/examples/card.md +12 -0
  86. package/es/cron/examples/show-cron.md +12 -0
  87. package/es/cron/hour.js +1 -1
  88. package/es/cron/hour.js.map +1 -1
  89. package/es/cron/index.js +1 -1
  90. package/es/cron/index.js.map +1 -1
  91. package/es/cron/item.js.map +1 -1
  92. package/es/cron/minute.js +1 -1
  93. package/es/cron/minute.js.map +1 -1
  94. package/es/cron/month.js +1 -1
  95. package/es/cron/month.js.map +1 -1
  96. package/es/cron/period.js.map +1 -1
  97. package/es/cron/second.js +1 -1
  98. package/es/cron/second.js.map +1 -1
  99. package/es/cron/some.js.map +1 -1
  100. package/es/date-picker/README.mdx +10 -0
  101. package/es/date-picker/date.js +1 -1
  102. package/es/date-picker/date.js.map +1 -1
  103. package/es/date-picker/dayjs.js +1 -1
  104. package/es/date-picker/dayjs.js.map +1 -1
  105. package/es/date-picker/examples/basic.md +24 -0
  106. package/es/date-picker/examples/date.md +13 -0
  107. package/es/date-picker/examples/disbaled.md +13 -0
  108. package/es/date-picker/examples/header.md +13 -0
  109. package/es/date-picker/examples/month.md +13 -0
  110. package/es/date-picker/examples/time.md +15 -0
  111. package/es/date-picker/examples/today.md +13 -0
  112. package/es/date-picker/examples/year.md +13 -0
  113. package/es/date-picker/index.js +1 -1
  114. package/es/date-picker/index.js.map +1 -1
  115. package/es/date-picker/month.js +1 -1
  116. package/es/date-picker/month.js.map +1 -1
  117. package/es/date-picker/panel.js +1 -1
  118. package/es/date-picker/panel.js.map +1 -1
  119. package/es/date-picker/time.js +1 -1
  120. package/es/date-picker/time.js.map +1 -1
  121. package/es/date-picker/year.js +1 -1
  122. package/es/date-picker/year.js.map +1 -1
  123. package/es/dropdown/README.mdx +10 -0
  124. package/es/dropdown/examples/arrow.md +59 -0
  125. package/es/dropdown/examples/basic.md +17 -0
  126. package/es/dropdown/examples/click.md +45 -0
  127. package/es/dropdown/examples/context-menu.md +66 -0
  128. package/es/dropdown/examples/field-names.md +44 -0
  129. package/es/dropdown/examples/icon.md +30 -0
  130. package/es/dropdown/examples/multiple.md +45 -0
  131. package/es/dropdown/examples/no-data.md +16 -0
  132. package/es/dropdown/examples/placement.md +59 -0
  133. package/es/dropdown/examples/toggle.md +36 -0
  134. package/es/dropdown/index.js +1 -1
  135. package/es/dropdown/index.js.map +1 -1
  136. package/es/empty/index.js.map +1 -1
  137. package/es/from-schema/index.js +1 -1
  138. package/es/from-schema/index.js.map +1 -1
  139. package/es/highlight-text/README.mdx +10 -0
  140. package/es/highlight-text/examples/basic.md +19 -0
  141. package/es/highlight-text/examples/mut.md +47 -0
  142. package/es/highlight-text/examples/not-hightlight.md +19 -0
  143. package/es/highlight-text/index.js +2 -2
  144. package/es/highlight-text/index.js.map +1 -1
  145. package/es/img/README.mdx +10 -0
  146. package/es/img/examples/basic.md +17 -0
  147. package/es/img/examples/close-mask.md +21 -0
  148. package/es/img/examples/disabled.md +16 -0
  149. package/es/img/examples/error.md +13 -0
  150. package/es/img/examples/esc.md +21 -0
  151. package/es/img/examples/open-change.md +25 -0
  152. package/es/img/index.js +1 -1
  153. package/es/img/index.js.map +1 -1
  154. package/es/img/lazy.js +1 -1
  155. package/es/img/lazy.js.map +1 -1
  156. package/es/index.js +1 -1
  157. package/es/index.js.map +1 -1
  158. package/es/input/README.mdx +10 -0
  159. package/es/input/examples/basic.md +31 -0
  160. package/es/input/examples/prefix&suffix.md +33 -0
  161. package/es/input/examples/size.md +21 -0
  162. package/es/input/examples/status.md +23 -0
  163. package/es/input/index.js +1 -1
  164. package/es/input/index.js.map +1 -1
  165. package/es/input-number/README.mdx +10 -0
  166. package/es/input-number/examples/basic.md +26 -0
  167. package/es/input-number/examples/formatter.md +36 -0
  168. package/es/input-number/examples/max-min.md +13 -0
  169. package/es/input-number/index.js.map +1 -1
  170. package/es/katex/README.mdx +42 -0
  171. package/es/katex/examples/block.md +25 -0
  172. package/es/katex/examples/inline.md +19 -0
  173. package/es/md/README.mdx +10 -0
  174. package/es/md/examples/in-children.md +23 -0
  175. package/es/md/examples/in-text.md +32 -0
  176. package/es/md/examples/math.md +36 -0
  177. package/es/md/index.js +1 -1
  178. package/es/md/index.js.map +1 -1
  179. package/es/menu/README.mdx +10 -0
  180. package/es/menu/examples/basic.md +17 -0
  181. package/es/menu/examples/field-names.md +42 -0
  182. package/es/menu/examples/icon.md +125 -0
  183. package/es/menu/examples/multiple.md +42 -0
  184. package/es/menu/index.js +1 -1
  185. package/es/menu/index.js.map +1 -1
  186. package/es/modal/README.mdx +10 -0
  187. package/es/modal/examples/basic.md +56 -0
  188. package/es/modal/examples/close-icon.md +57 -0
  189. package/es/modal/examples/esc-closable.md +64 -0
  190. package/es/modal/examples/mask-blur.md +56 -0
  191. package/es/modal/examples/mask-closable.md +64 -0
  192. package/es/modal/index.js +1 -1
  193. package/es/modal/index.js.map +1 -1
  194. package/es/notification/README.mdx +11 -0
  195. package/es/notification/examples/basic.md +35 -0
  196. package/es/notification/examples/close.md +35 -0
  197. package/es/notification/examples/type.md +84 -0
  198. package/es/notification/examples/update.md +52 -0
  199. package/es/notification/index.js.map +1 -1
  200. package/es/notification/notification.js +1 -1
  201. package/es/notification/notification.js.map +1 -1
  202. package/es/pagination/README.mdx +10 -0
  203. package/es/pagination/examples/basic.md +13 -0
  204. package/es/pagination/examples/onchange.md +29 -0
  205. package/es/pagination/examples/size.md +23 -0
  206. package/es/pagination/examples/total-text.md +42 -0
  207. package/es/pagination/index.js +1 -1
  208. package/es/pagination/index.js.map +1 -1
  209. package/es/popover/README.mdx +10 -0
  210. package/es/popover/examples/basic.md +35 -0
  211. package/es/popover/examples/click.md +15 -0
  212. package/es/popover/examples/context-menu.md +58 -0
  213. package/es/popover/examples/controlled.md +47 -0
  214. package/es/popover/index.js +1 -1
  215. package/es/popover/index.js.map +1 -1
  216. package/es/prism/css.js.map +1 -1
  217. package/es/prism/index.js.map +1 -1
  218. package/es/provider/README.mdx +10 -0
  219. package/es/provider/examples/scheme.md +14 -0
  220. package/es/provider/index.js.map +1 -1
  221. package/es/radio/README.mdx +10 -0
  222. package/es/radio/examples/basic.md +19 -0
  223. package/es/radio/examples/disabled-option.md +19 -0
  224. package/es/radio/examples/disabled.md +19 -0
  225. package/es/radio/examples/field-names.md +39 -0
  226. package/es/radio/examples/layout-vertical.md +19 -0
  227. package/es/radio/examples/status.md +31 -0
  228. package/es/radio/index.js +1 -1
  229. package/es/radio/index.js.map +1 -1
  230. package/es/segmented/README.mdx +10 -0
  231. package/es/segmented/examples/basic.md +18 -0
  232. package/es/segmented/examples/custom-field-names.md +43 -0
  233. package/es/segmented/examples/disabled-option.md +29 -0
  234. package/es/segmented/examples/disabled.md +18 -0
  235. package/es/segmented/examples/icon.md +28 -0
  236. package/es/segmented/examples/options.md +21 -0
  237. package/es/segmented/index.js +2 -2
  238. package/es/segmented/index.js.map +1 -1
  239. package/es/select/README.mdx +10 -0
  240. package/es/select/examples/basic.md +44 -0
  241. package/es/select/examples/disabled-option.md +21 -0
  242. package/es/select/examples/disabled.md +24 -0
  243. package/es/select/examples/field-names.md +40 -0
  244. package/es/select/examples/item-suffix.md +84 -0
  245. package/es/select/examples/multiple.md +61 -0
  246. package/es/select/examples/no-data.md +12 -0
  247. package/es/select/examples/prefix-icon.md +74 -0
  248. package/es/select/index.js +1 -1
  249. package/es/select/index.js.map +1 -1
  250. package/es/skeleton/README.mdx +10 -0
  251. package/es/skeleton/examples/animation.md +13 -0
  252. package/es/skeleton/examples/avatar.md +13 -0
  253. package/es/skeleton/examples/basic.md +12 -0
  254. package/es/skeleton/examples/rows.md +13 -0
  255. package/es/skeleton/examples/title.md +12 -0
  256. package/es/skeleton/index.js +3 -3
  257. package/es/skeleton/index.js.map +1 -1
  258. package/es/spin/README.mdx +10 -0
  259. package/es/spin/examples/basic.md +67 -0
  260. package/es/spin/index.js +4 -4
  261. package/es/spin/index.js.map +1 -1
  262. package/es/switch/README.mdx +10 -0
  263. package/es/switch/examples/basic.md +24 -0
  264. package/es/switch/examples/checked-text.md +17 -0
  265. package/es/switch/examples/disabled.md +15 -0
  266. package/es/switch/examples/loading.md +17 -0
  267. package/es/switch/index.js +1 -1
  268. package/es/switch/index.js.map +1 -1
  269. package/es/table/README.mdx +10 -0
  270. package/es/table/examples/basic.md +29 -0
  271. package/es/table/examples/key.md +29 -0
  272. package/es/table/examples/order.md +29 -0
  273. package/es/table/examples/pagination.md +67 -0
  274. package/es/table/examples/render.md +92 -0
  275. package/es/table/examples/size.md +52 -0
  276. package/es/table/examples/summary.md +40 -0
  277. package/es/table/index.js +1 -1
  278. package/es/table/index.js.map +1 -1
  279. package/es/tabs/README.mdx +10 -0
  280. package/es/tabs/examples/add-remove.md +115 -0
  281. package/es/tabs/examples/animated.md +33 -0
  282. package/es/tabs/examples/basic.md +32 -0
  283. package/es/tabs/examples/card.md +33 -0
  284. package/es/tabs/examples/center.md +33 -0
  285. package/es/tabs/examples/disabled-tab.md +34 -0
  286. package/es/tabs/examples/disabled.md +33 -0
  287. package/es/tabs/examples/extra.md +65 -0
  288. package/es/tabs/index.js +2 -2
  289. package/es/tabs/index.js.map +1 -1
  290. package/es/tag/README.mdx +10 -0
  291. package/es/tag/examples/basic.md +28 -0
  292. package/es/tag/examples/bordered.md +19 -0
  293. package/es/tag/examples/color.md +25 -0
  294. package/es/tag/examples/icon.md +21 -0
  295. package/es/tag/examples/type.md +19 -0
  296. package/es/tag/index.js +3 -3
  297. package/es/tag/index.js.map +1 -1
  298. package/es/theme/README.mdx +10 -0
  299. package/es/theme/examples/colors.md +123 -0
  300. package/es/theme/examples/theme.md +19 -0
  301. package/es/theme/index.js +1 -1
  302. package/es/theme/index.js.map +1 -1
  303. package/es/tree/README.mdx +10 -0
  304. package/es/tree/examples/basic.md +108 -0
  305. package/es/tree/examples/custom-render.md +115 -0
  306. package/es/tree/examples/direction.md +100 -0
  307. package/es/tree/examples/field-names.md +114 -0
  308. package/es/tree/examples/multiple.md +117 -0
  309. package/es/tree/examples/readonly.md +90 -0
  310. package/es/tree/examples/render-tree-string1.md +70 -0
  311. package/es/tree/examples/render-tree-string2.md +52 -0
  312. package/es/tree/examples/schema.md +130 -0
  313. package/es/tree/examples/size.md +125 -0
  314. package/es/tree/examples/toggle.md +71 -0
  315. package/es/tree/index.js +1 -1
  316. package/es/tree/index.js.map +1 -1
  317. package/es/tree/register.js.map +1 -1
  318. package/es/typography/README.mdx +10 -0
  319. package/es/typography/examples/basic.md +27 -0
  320. package/es/typography/examples/tag.md +25 -0
  321. package/es/typography/examples/truncated.md +17 -0
  322. package/es/typography/index.js +3 -3
  323. package/es/typography/index.js.map +1 -1
  324. package/eslint.config.mjs +9 -0
  325. package/lib/avatar/README.mdx +10 -0
  326. package/lib/avatar/examples/basic.md +14 -0
  327. package/lib/avatar/examples/group.md +57 -0
  328. package/lib/avatar/examples/size.md +21 -0
  329. package/lib/avatar/group.js.map +1 -1
  330. package/lib/avatar/index.js +2 -2
  331. package/lib/avatar/index.js.map +1 -1
  332. package/lib/avatar/style.js +2 -2
  333. package/lib/avatar/style.js.map +1 -1
  334. package/lib/back-top/README.mdx +10 -0
  335. package/lib/back-top/examples/basic.md +19 -0
  336. package/lib/back-top/examples/mount.md +36 -0
  337. package/lib/back-top/examples/target.md +46 -0
  338. package/lib/back-top/index.js +1 -1
  339. package/lib/back-top/index.js.map +1 -1
  340. package/lib/basic-config/README.mdx +11 -0
  341. package/lib/button/README.mdx +10 -0
  342. package/lib/button/examples/basic.md +21 -0
  343. package/lib/button/examples/block.md +33 -0
  344. package/lib/button/examples/circle.md +21 -0
  345. package/lib/button/examples/danger.md +23 -0
  346. package/lib/button/examples/dashed.md +21 -0
  347. package/lib/button/examples/disabled.md +35 -0
  348. package/lib/button/examples/fill.md +21 -0
  349. package/lib/button/examples/flat.md +21 -0
  350. package/lib/button/examples/ghost.md +21 -0
  351. package/lib/button/examples/icon.md +30 -0
  352. package/lib/button/examples/link.md +21 -0
  353. package/lib/button/examples/size.md +23 -0
  354. package/lib/button/index.js +1 -1
  355. package/lib/button/index.js.map +1 -1
  356. package/lib/button/style.js +1 -0
  357. package/lib/button/style.js.map +1 -1
  358. package/lib/capture-screen/README.mdx +10 -0
  359. package/lib/capture-screen/examples/basic.md +13 -0
  360. package/lib/capture-screen/examples/custom-save.md +30 -0
  361. package/lib/capture-screen/examples/preview.md +13 -0
  362. package/lib/capture-screen/examples/recorder-save.md +13 -0
  363. package/lib/capture-screen/index.js +1 -1
  364. package/lib/capture-screen/index.js.map +1 -1
  365. package/lib/carousel/README.mdx +10 -0
  366. package/lib/carousel/examples/autoplay.md +21 -0
  367. package/lib/carousel/examples/basic.md +23 -0
  368. package/lib/carousel/examples/dots.md +23 -0
  369. package/lib/carousel/examples/header.md +38 -0
  370. package/lib/carousel/index.js +1 -1
  371. package/lib/carousel/index.js.map +1 -1
  372. package/lib/checkbox/README.mdx +10 -0
  373. package/lib/checkbox/examples/basic.md +31 -0
  374. package/lib/checkbox/examples/check-all.md +37 -0
  375. package/lib/checkbox/examples/disabled-all.md +28 -0
  376. package/lib/checkbox/examples/disabled-option.md +35 -0
  377. package/lib/checkbox/examples/field-names.md +40 -0
  378. package/lib/checkbox/examples/status.md +37 -0
  379. package/lib/checkbox/examples/vertical.md +36 -0
  380. package/lib/checkbox/index.js +1 -1
  381. package/lib/checkbox/index.js.map +1 -1
  382. package/lib/code/README.mdx +10 -0
  383. package/lib/code/examples/basic.md +19 -0
  384. package/lib/code/examples/diff.md +45 -0
  385. package/lib/code/examples/line-number.md +18 -0
  386. package/lib/code/examples/live-edit.md +20 -0
  387. package/lib/code/examples/toolbar.md +18 -0
  388. package/lib/code/index.js +2 -2
  389. package/lib/code/index.js.map +1 -1
  390. package/lib/code/worker.js.map +1 -1
  391. package/lib/color-palette/README.mdx +10 -0
  392. package/lib/color-palette/examples/default-value.md +25 -0
  393. package/lib/color-palette/examples/hexa.md +13 -0
  394. package/lib/color-palette/examples/hsla.md +13 -0
  395. package/lib/color-palette/examples/rgba.md +13 -0
  396. package/lib/color-palette/index.js +1 -1
  397. package/lib/color-palette/index.js.map +1 -1
  398. package/lib/color-picker/README.mdx +10 -0
  399. package/lib/color-picker/examples/basic.md +12 -0
  400. package/lib/color-picker/examples/default-value.md +20 -0
  401. package/lib/color-picker/examples/size.md +17 -0
  402. package/lib/color-picker/index.js +1 -1
  403. package/lib/color-picker/index.js.map +1 -1
  404. package/lib/cron/README.mdx +10 -0
  405. package/lib/cron/begin-interval.js.map +1 -1
  406. package/lib/cron/day.js.map +1 -1
  407. package/lib/cron/examples/basic.md +19 -0
  408. package/lib/cron/examples/card.md +12 -0
  409. package/lib/cron/examples/show-cron.md +12 -0
  410. package/lib/cron/hour.js +1 -1
  411. package/lib/cron/hour.js.map +1 -1
  412. package/lib/cron/index.js.map +1 -1
  413. package/lib/cron/item.js.map +1 -1
  414. package/lib/cron/minute.js +1 -1
  415. package/lib/cron/minute.js.map +1 -1
  416. package/lib/cron/month.js +1 -1
  417. package/lib/cron/month.js.map +1 -1
  418. package/lib/cron/period.js.map +1 -1
  419. package/lib/cron/second.js +1 -1
  420. package/lib/cron/second.js.map +1 -1
  421. package/lib/cron/some.js.map +1 -1
  422. package/lib/date-picker/README.mdx +10 -0
  423. package/lib/date-picker/date.js.map +1 -1
  424. package/lib/date-picker/dayjs.js +1 -1
  425. package/lib/date-picker/dayjs.js.map +1 -1
  426. package/lib/date-picker/examples/basic.md +24 -0
  427. package/lib/date-picker/examples/date.md +13 -0
  428. package/lib/date-picker/examples/disbaled.md +13 -0
  429. package/lib/date-picker/examples/header.md +13 -0
  430. package/lib/date-picker/examples/month.md +13 -0
  431. package/lib/date-picker/examples/time.md +15 -0
  432. package/lib/date-picker/examples/today.md +13 -0
  433. package/lib/date-picker/examples/year.md +13 -0
  434. package/lib/date-picker/index.js +1 -1
  435. package/lib/date-picker/index.js.map +1 -1
  436. package/lib/date-picker/month.js.map +1 -1
  437. package/lib/date-picker/panel.js +1 -1
  438. package/lib/date-picker/panel.js.map +1 -1
  439. package/lib/date-picker/time.js.map +1 -1
  440. package/lib/date-picker/year.js.map +1 -1
  441. package/lib/dropdown/README.mdx +10 -0
  442. package/lib/dropdown/examples/arrow.md +59 -0
  443. package/lib/dropdown/examples/basic.md +17 -0
  444. package/lib/dropdown/examples/click.md +45 -0
  445. package/lib/dropdown/examples/context-menu.md +66 -0
  446. package/lib/dropdown/examples/field-names.md +44 -0
  447. package/lib/dropdown/examples/icon.md +30 -0
  448. package/lib/dropdown/examples/multiple.md +45 -0
  449. package/lib/dropdown/examples/no-data.md +16 -0
  450. package/lib/dropdown/examples/placement.md +59 -0
  451. package/lib/dropdown/examples/toggle.md +36 -0
  452. package/lib/dropdown/index.js +1 -1
  453. package/lib/dropdown/index.js.map +1 -1
  454. package/lib/empty/index.js.map +1 -1
  455. package/lib/from-schema/index.js +1 -1
  456. package/lib/from-schema/index.js.map +1 -1
  457. package/lib/highlight-text/README.mdx +10 -0
  458. package/lib/highlight-text/examples/basic.md +19 -0
  459. package/lib/highlight-text/examples/mut.md +47 -0
  460. package/lib/highlight-text/examples/not-hightlight.md +19 -0
  461. package/lib/highlight-text/index.js.map +1 -1
  462. package/lib/img/README.mdx +10 -0
  463. package/lib/img/examples/basic.md +17 -0
  464. package/lib/img/examples/close-mask.md +21 -0
  465. package/lib/img/examples/disabled.md +16 -0
  466. package/lib/img/examples/error.md +13 -0
  467. package/lib/img/examples/esc.md +21 -0
  468. package/lib/img/examples/open-change.md +25 -0
  469. package/lib/img/index.js +1 -1
  470. package/lib/img/index.js.map +1 -1
  471. package/lib/img/lazy.js +1 -1
  472. package/lib/img/lazy.js.map +1 -1
  473. package/lib/index.js +1 -1
  474. package/lib/index.js.map +1 -1
  475. package/lib/input/README.mdx +10 -0
  476. package/lib/input/examples/basic.md +31 -0
  477. package/lib/input/examples/prefix&suffix.md +33 -0
  478. package/lib/input/examples/size.md +21 -0
  479. package/lib/input/examples/status.md +23 -0
  480. package/lib/input/index.js +1 -1
  481. package/lib/input/index.js.map +1 -1
  482. package/lib/input-number/README.mdx +10 -0
  483. package/lib/input-number/examples/basic.md +26 -0
  484. package/lib/input-number/examples/formatter.md +36 -0
  485. package/lib/input-number/examples/max-min.md +13 -0
  486. package/lib/input-number/index.js.map +1 -1
  487. package/lib/katex/README.mdx +42 -0
  488. package/lib/katex/examples/block.md +25 -0
  489. package/lib/katex/examples/inline.md +19 -0
  490. package/lib/md/README.mdx +10 -0
  491. package/lib/md/examples/in-children.md +23 -0
  492. package/lib/md/examples/in-text.md +32 -0
  493. package/lib/md/examples/math.md +36 -0
  494. package/lib/md/index.js +1 -1
  495. package/lib/md/index.js.map +1 -1
  496. package/lib/menu/README.mdx +10 -0
  497. package/lib/menu/examples/basic.md +17 -0
  498. package/lib/menu/examples/field-names.md +42 -0
  499. package/lib/menu/examples/icon.md +125 -0
  500. package/lib/menu/examples/multiple.md +42 -0
  501. package/lib/menu/index.js +1 -1
  502. package/lib/menu/index.js.map +1 -1
  503. package/lib/modal/README.mdx +10 -0
  504. package/lib/modal/examples/basic.md +56 -0
  505. package/lib/modal/examples/close-icon.md +57 -0
  506. package/lib/modal/examples/esc-closable.md +64 -0
  507. package/lib/modal/examples/mask-blur.md +56 -0
  508. package/lib/modal/examples/mask-closable.md +64 -0
  509. package/lib/modal/index.js.map +1 -1
  510. package/lib/notification/README.mdx +11 -0
  511. package/lib/notification/examples/basic.md +35 -0
  512. package/lib/notification/examples/close.md +35 -0
  513. package/lib/notification/examples/type.md +84 -0
  514. package/lib/notification/examples/update.md +52 -0
  515. package/lib/notification/index.js.map +1 -1
  516. package/lib/notification/notification.js +1 -1
  517. package/lib/notification/notification.js.map +1 -1
  518. package/lib/pagination/README.mdx +10 -0
  519. package/lib/pagination/examples/basic.md +13 -0
  520. package/lib/pagination/examples/onchange.md +29 -0
  521. package/lib/pagination/examples/size.md +23 -0
  522. package/lib/pagination/examples/total-text.md +42 -0
  523. package/lib/pagination/index.js +1 -1
  524. package/lib/pagination/index.js.map +1 -1
  525. package/lib/popover/README.mdx +10 -0
  526. package/lib/popover/examples/basic.md +35 -0
  527. package/lib/popover/examples/click.md +15 -0
  528. package/lib/popover/examples/context-menu.md +58 -0
  529. package/lib/popover/examples/controlled.md +47 -0
  530. package/lib/popover/index.js +1 -1
  531. package/lib/popover/index.js.map +1 -1
  532. package/lib/prism/css.js.map +1 -1
  533. package/lib/prism/index.js.map +1 -1
  534. package/lib/provider/README.mdx +10 -0
  535. package/lib/provider/examples/scheme.md +14 -0
  536. package/lib/provider/index.js.map +1 -1
  537. package/lib/radio/README.mdx +10 -0
  538. package/lib/radio/examples/basic.md +19 -0
  539. package/lib/radio/examples/disabled-option.md +19 -0
  540. package/lib/radio/examples/disabled.md +19 -0
  541. package/lib/radio/examples/field-names.md +39 -0
  542. package/lib/radio/examples/layout-vertical.md +19 -0
  543. package/lib/radio/examples/status.md +31 -0
  544. package/lib/radio/index.js +1 -1
  545. package/lib/radio/index.js.map +1 -1
  546. package/lib/segmented/README.mdx +10 -0
  547. package/lib/segmented/examples/basic.md +18 -0
  548. package/lib/segmented/examples/custom-field-names.md +43 -0
  549. package/lib/segmented/examples/disabled-option.md +29 -0
  550. package/lib/segmented/examples/disabled.md +18 -0
  551. package/lib/segmented/examples/icon.md +28 -0
  552. package/lib/segmented/examples/options.md +21 -0
  553. package/lib/segmented/index.js +2 -2
  554. package/lib/segmented/index.js.map +1 -1
  555. package/lib/select/README.mdx +10 -0
  556. package/lib/select/examples/basic.md +44 -0
  557. package/lib/select/examples/disabled-option.md +21 -0
  558. package/lib/select/examples/disabled.md +24 -0
  559. package/lib/select/examples/field-names.md +40 -0
  560. package/lib/select/examples/item-suffix.md +84 -0
  561. package/lib/select/examples/multiple.md +61 -0
  562. package/lib/select/examples/no-data.md +12 -0
  563. package/lib/select/examples/prefix-icon.md +74 -0
  564. package/lib/select/index.js +1 -1
  565. package/lib/select/index.js.map +1 -1
  566. package/lib/skeleton/README.mdx +10 -0
  567. package/lib/skeleton/examples/animation.md +13 -0
  568. package/lib/skeleton/examples/avatar.md +13 -0
  569. package/lib/skeleton/examples/basic.md +12 -0
  570. package/lib/skeleton/examples/rows.md +13 -0
  571. package/lib/skeleton/examples/title.md +12 -0
  572. package/lib/skeleton/index.js.map +1 -1
  573. package/lib/spin/README.mdx +10 -0
  574. package/lib/spin/examples/basic.md +67 -0
  575. package/lib/spin/index.js +3 -3
  576. package/lib/spin/index.js.map +1 -1
  577. package/lib/switch/README.mdx +10 -0
  578. package/lib/switch/examples/basic.md +24 -0
  579. package/lib/switch/examples/checked-text.md +17 -0
  580. package/lib/switch/examples/disabled.md +15 -0
  581. package/lib/switch/examples/loading.md +17 -0
  582. package/lib/switch/index.js +1 -1
  583. package/lib/switch/index.js.map +1 -1
  584. package/lib/table/README.mdx +10 -0
  585. package/lib/table/examples/basic.md +29 -0
  586. package/lib/table/examples/key.md +29 -0
  587. package/lib/table/examples/order.md +29 -0
  588. package/lib/table/examples/pagination.md +67 -0
  589. package/lib/table/examples/render.md +92 -0
  590. package/lib/table/examples/size.md +52 -0
  591. package/lib/table/examples/summary.md +40 -0
  592. package/lib/table/index.js +1 -1
  593. package/lib/table/index.js.map +1 -1
  594. package/lib/tabs/README.mdx +10 -0
  595. package/lib/tabs/examples/add-remove.md +115 -0
  596. package/lib/tabs/examples/animated.md +33 -0
  597. package/lib/tabs/examples/basic.md +32 -0
  598. package/lib/tabs/examples/card.md +33 -0
  599. package/lib/tabs/examples/center.md +33 -0
  600. package/lib/tabs/examples/disabled-tab.md +34 -0
  601. package/lib/tabs/examples/disabled.md +33 -0
  602. package/lib/tabs/examples/extra.md +65 -0
  603. package/lib/tabs/index.js +2 -2
  604. package/lib/tabs/index.js.map +1 -1
  605. package/lib/tag/README.mdx +10 -0
  606. package/lib/tag/examples/basic.md +28 -0
  607. package/lib/tag/examples/bordered.md +19 -0
  608. package/lib/tag/examples/color.md +25 -0
  609. package/lib/tag/examples/icon.md +21 -0
  610. package/lib/tag/examples/type.md +19 -0
  611. package/lib/tag/index.js +3 -3
  612. package/lib/tag/index.js.map +1 -1
  613. package/lib/theme/README.mdx +10 -0
  614. package/lib/theme/examples/colors.md +123 -0
  615. package/lib/theme/examples/theme.md +19 -0
  616. package/lib/theme/index.js +1 -1
  617. package/lib/theme/index.js.map +1 -1
  618. package/lib/tree/README.mdx +10 -0
  619. package/lib/tree/examples/basic.md +108 -0
  620. package/lib/tree/examples/custom-render.md +115 -0
  621. package/lib/tree/examples/direction.md +100 -0
  622. package/lib/tree/examples/field-names.md +114 -0
  623. package/lib/tree/examples/multiple.md +117 -0
  624. package/lib/tree/examples/readonly.md +90 -0
  625. package/lib/tree/examples/render-tree-string1.md +70 -0
  626. package/lib/tree/examples/render-tree-string2.md +52 -0
  627. package/lib/tree/examples/schema.md +130 -0
  628. package/lib/tree/examples/size.md +125 -0
  629. package/lib/tree/examples/toggle.md +71 -0
  630. package/lib/tree/index.js +1 -1
  631. package/lib/tree/index.js.map +1 -1
  632. package/lib/tree/register.js.map +1 -1
  633. package/lib/typography/README.mdx +10 -0
  634. package/lib/typography/examples/basic.md +27 -0
  635. package/lib/typography/examples/tag.md +25 -0
  636. package/lib/typography/examples/truncated.md +17 -0
  637. package/lib/typography/index.js.map +1 -1
  638. package/package.json +18 -18
  639. package/types/avatar/group.d.ts +1 -1
  640. package/types/back-top/index.d.ts +1 -1
  641. package/types/capture-screen/index.d.ts +1 -1
  642. package/types/color-palette/index.d.ts +1 -1
  643. package/types/color-picker/index.d.ts +1 -1
  644. package/types/cron/begin-interval.d.ts +3 -3
  645. package/types/cron/index.d.ts +5 -5
  646. package/types/cron/item.d.ts +4 -4
  647. package/types/cron/period.d.ts +3 -3
  648. package/types/cron/some.d.ts +3 -3
  649. package/types/date-picker/date.d.ts +2 -2
  650. package/types/date-picker/index.d.ts +2 -2
  651. package/types/date-picker/month.d.ts +2 -2
  652. package/types/date-picker/panel.d.ts +3 -3
  653. package/types/date-picker/time.d.ts +2 -2
  654. package/types/date-picker/year.d.ts +2 -2
  655. package/types/dropdown/index.d.ts +1 -1
  656. package/types/empty/index.d.ts +1 -1
  657. package/types/from-schema/index.d.ts +4 -4
  658. package/types/index.d.ts +12 -12
  659. package/types/md/index.d.ts +1 -1
  660. package/types/modal/index.d.ts +1 -1
  661. package/types/notification/index.d.ts +1 -1
  662. package/types/pagination/index.d.ts +1 -1
  663. package/types/provider/index.d.ts +1 -1
  664. package/types/segmented/index.d.ts +1 -1
  665. package/types/select/index.d.ts +1 -1
  666. package/types/table/index.d.ts +1 -1
  667. package/types/tabs/index.d.ts +1 -1
  668. package/types/tree/index.d.ts +1 -1
  669. package/umd/assets/svg/favicon.svg +1 -0
  670. package/umd/index.js +2 -2
  671. package/umd/js/46e8f96158e59015.js +1 -0
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 通用
3
+ title: 头像
4
+ subtitle: n-avatar
5
+ icon: 🎧
6
+ ---
7
+
8
+ # 带轮廓的头像
9
+
10
+ > 带 logo 轮廓的头像
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: 最简单的用法
3
+ description: 通过 `src` 属性设置头像
4
+ order: 1
5
+ col: 50%
6
+ ---
7
+
8
+ ```html
9
+ <n-avatar src="https://gw.alipayobjects.com/zos/alicdn/HJtErOC0O/avatar.png"></n-avatar>
10
+ ```
11
+
12
+ ```jsx
13
+ <n-avatar src="https://gw.alipayobjects.com/zos/alicdn/HJtErOC0O/avatar.png" />
14
+ ```
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: 头像组
3
+ description: 使用 AvatarGroup 将头像组合展现。
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-avatar-group></n-avatar-group>
9
+ <n-avatar-group max-count="10"></n-avatar-group>
10
+ <script>
11
+ const el = container.querySelectorAll('n-avatar-group');
12
+
13
+ el[0].data = Array(4).fill({
14
+ src: 'https://gw.alipayobjects.com/zos/alicdn/HJtErOC0O/avatar.png',
15
+ });
16
+ el[1].data = Array(20)
17
+ .fill(0)
18
+ .map((_, i) => {
19
+ if (i % 2) {
20
+ return {
21
+ src: 'https://gw.alipayobjects.com/zos/alicdn/HJtErOC0O/avatar.png',
22
+ };
23
+ }
24
+ return {
25
+ username: ['avatar', 'gw', 'bjec', '#zos'][i % 3],
26
+ color: ['#cabdeb', 'green', '#e9887c', '#e989ua'][i % 3],
27
+ };
28
+ });
29
+ </script>
30
+ ```
31
+
32
+ ```jsx
33
+ const data1 = Array(4).fill({
34
+ src: 'https://gw.alipayobjects.com/zos/alicdn/HJtErOC0O/avatar.png',
35
+ });
36
+ const data2 = Array(20)
37
+ .fill(0)
38
+ .map((_, i) => {
39
+ if (i % 2) {
40
+ return {
41
+ src: 'https://gw.alipayobjects.com/zos/alicdn/HJtErOC0O/avatar.png',
42
+ };
43
+ }
44
+ return {
45
+ username: ['avatar', 'gw', 'bjec', '#zos'][i % 3],
46
+ color: ['#cabdeb', 'green', '#e9887c', '#e989ua'][i % 3],
47
+ };
48
+ });
49
+
50
+ render(
51
+ <>
52
+ <n-avatar-group data={data1} />
53
+ <br />
54
+ <n-avatar-group data={data2} max-count={10} />
55
+ </>
56
+ );
57
+ ```
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: 最简单的用法
3
+ description: 头像内置有大、中、小三种尺寸。通过设置 `size` 为 `large`、`small` 分别把按钮设为大、小尺寸。若不设置 `size`,则尺寸为中 'normal'。也可以将 `size` 设置为实际大小 `number`
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-avatar size="100" username="100"></n-avatar>
9
+ <n-avatar size="50" username="50"></n-avatar>
10
+ <n-avatar size="large" username="large"></n-avatar>
11
+ <n-avatar size="normal" username="normal"></n-avatar>
12
+ <n-avatar size="small" username="small"></n-avatar>
13
+ ```
14
+
15
+ ```jsx
16
+ <n-avatar size="100" username="100"></n-avatar>
17
+ <n-avatar size="50" username="50"></n-avatar>
18
+ <n-avatar size="large" username="large"></n-avatar>
19
+ <n-avatar size="normal" username="normal"></n-avatar>
20
+ <n-avatar size="small" username="small"></n-avatar>
21
+ ```
@@ -1,4 +1,4 @@
1
- import{template as e}from"solid-js/web";import{spread as r}from"solid-js/web";import{mergeProps as t}from"solid-js/web";import{insert as n}from"solid-js/web";import{getOwner as i}from"solid-js/web";import{effect as a}from"solid-js/web";import{createComponent as o}from"solid-js/web";let s=e("<style>"),l=e("<style> "),p=e('<n-popover trigger="click"><n-avatar>',!0,!1),m=e("<div>"),d=e("<n-avatar>",!0,!1),u=e('<div class="more">');import{For as c,Show as v,createMemo as g,mergeProps as f,splitProps as h}from"solid-js";import{css as w,cx as x}from"@moneko/css";import{customElement as $}from"solid-element";import"../avatar";import"../popover";let z=w`
1
+ import{template as e}from"solid-js/web";import{spread as r}from"solid-js/web";import{mergeProps as t}from"solid-js/web";import{insert as n}from"solid-js/web";import{getOwner as i}from"solid-js/web";import{effect as a}from"solid-js/web";import{createComponent as o}from"solid-js/web";let s=e("<style>"),l=e("<style> "),p=e('<n-popover trigger="click"><n-avatar>',!0,!1),m=e("<div>"),d=e("<n-avatar>",!0,!1),u=e('<div class="more">');import{createMemo as c,For as v,mergeProps as g,Show as f,splitProps as h}from"solid-js";import{css as w,cx as x}from"@moneko/css";import{customElement as $}from"solid-element";import"../avatar";import"../popover";let z=w`
2
2
  .group {
3
3
  display: inline-flex;
4
4
  align-items: center;
@@ -38,5 +38,5 @@ import{template as e}from"solid-js/web";import{spread as r}from"solid-js/web";im
38
38
  display: flex;
39
39
  }
40
40
  }
41
- `,b={data:[],size:void 0,class:void 0,maxCount:void 0,css:void 0};function j(e){let[$,j]=h(f(b,e),["data","maxCount","class","size","css"]),C=g(()=>$.data||[]),y=g(()=>C().slice(0,$.maxCount)),k=g(()=>{let e=C(),r=e.length-($.maxCount||e.length);return r>0?e.slice(-r):[]});return[(()=>{let e=s();return e.textContent=z,e})(),o(v,{get when(){return $.css},get children(){let e=l(),r=e.firstChild;return a(()=>r.data=w($.css)),e}}),(()=>{let e=m();return r(e,t(j,{get class(){return x("group",$.class)}}),!1,!0),n(e,o(c,{get each(){return y()},children:e=>(()=>{let n=d();return r(n,t(e,{get size(){return $.size}}),!1,!1),n._$owner=i(),n})()}),null),n(e,o(v,{get when(){return k().length},get children(){let e=p(),s=e.firstChild;return e.arrow=!0,e.popupCss=_,e.content=(()=>{let e=u();return n(e,o(c,{get each(){return k()},children:e=>(()=>{let n=d();return r(n,t(e,{get size(){return $.size}}),!1,!1),n._$owner=i(),n})()})),e})(),e._$owner=i(),s._$owner=i(),a(e=>{let r=$.size,t=`+${k().length}`;return r!==e._v$&&(s.size=e._v$=r),t!==e._v$2&&(s.username=e._v$2=t),e},{_v$:void 0,_v$2:void 0}),e}}),null),e})()]}$("n-avatar-group",b,j);export default j;
41
+ `,b={data:[],size:void 0,class:void 0,maxCount:void 0,css:void 0};function j(e){let[$,j]=h(g(b,e),["data","maxCount","class","size","css"]),C=c(()=>$.data||[]),y=c(()=>C().slice(0,$.maxCount)),k=c(()=>{let e=C(),r=e.length-($.maxCount||e.length);return r>0?e.slice(-r):[]});return[(()=>{let e=s();return e.textContent=z,e})(),o(f,{get when(){return $.css},get children(){let e=l(),r=e.firstChild;return a(()=>r.data=w($.css)),e}}),(()=>{let e=m();return r(e,t(j,{get class(){return x("group",$.class)}}),!1,!0),n(e,o(v,{get each(){return y()},children:e=>(()=>{let n=d();return r(n,t(e,{get size(){return $.size}}),!1,!1),n._$owner=i(),n})()}),null),n(e,o(f,{get when(){return k().length},get children(){let e=p(),s=e.firstChild;return e.arrow=!0,e.popupCss=_,e.content=(()=>{let e=u();return n(e,o(v,{get each(){return k()},children:e=>(()=>{let n=d();return r(n,t(e,{get size(){return $.size}}),!1,!1),n._$owner=i(),n})()})),e})(),e._$owner=i(),s._$owner=i(),a(e=>{let r=$.size,t=`+${k().length}`;return r!==e._v$&&(s.size=e._v$=r),t!==e._v$2&&(s.username=e._v$2=t),e},{_v$:void 0,_v$2:void 0}),e}}),null),e})()]}$("n-avatar-group",b,j);export default j;
42
42
  //# sourceMappingURL=group.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/avatar/group.tsx"],"sourcesContent":["import { For, Show, createMemo, mergeProps, splitProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport '../avatar';\nimport '../popover';\nimport type { AvatarProps, BasicConfig, CustomElement } from '..';\n\nconst style = css`\n .group {\n display: inline-flex;\n align-items: center;\n\n & > n-avatar {\n display: flex;\n }\n\n & > n-avatar:not(:first-child),\n & > n-popover {\n margin-inline-start: -4%;\n transition: margin-inline-start var(--transition-duration);\n\n &:hover:not(n-popover) {\n margin-inline-start: 4px;\n\n &:has(+ n-avatar),\n &:has(+ n-popover) {\n margin-inline-end: calc(4% + 4px);\n }\n }\n }\n }\n`;\n\nconst moreCss = css`\n .more {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n padding: 8px;\n max-inline-size: 60vi;\n max-block-size: 80vb;\n gap: 8px;\n flex-wrap: wrap;\n\n & > n-avatar {\n display: flex;\n }\n }\n`;\n\nexport interface AvatarGroupProps {\n /** 头像数据 */\n data?: Omit<AvatarProps, 'size'>[];\n /** 头像尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 最多显示个数 */\n maxCount?: number;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n}\nexport type AvatarGroupElement = CustomElement<AvatarGroupProps>;\n\nconst defaultProps: AvatarGroupProps = {\n data: [],\n size: void 0,\n class: void 0,\n maxCount: void 0,\n css: void 0,\n};\n\nfunction AvatarGroup(_props: AvatarGroupProps) {\n const props = mergeProps(defaultProps, _props);\n const [local, other] = splitProps(props, ['data', 'maxCount', 'class', 'size', 'css']);\n const data = createMemo(() => local.data || []);\n const showAvatar = createMemo(() => data().slice(0, local.maxCount));\n const more = createMemo(() => {\n const _data = data();\n const len = _data.length - (local.maxCount || _data.length);\n\n if (len > 0) {\n return _data.slice(-len);\n }\n return [];\n });\n\n return (\n <>\n <style textContent={style} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <div {...other} class={cx('group', local.class)}>\n <For each={showAvatar()}>{(a) => <n-avatar {...a} size={local.size} />}</For>\n <Show when={more().length}>\n <n-popover\n arrow={true}\n trigger=\"click\"\n popup-css={moreCss}\n content={\n <div class=\"more\">\n <For each={more()}>{(a) => <n-avatar {...a} size={local.size} />}</For>\n </div>\n }\n >\n <n-avatar size={local.size} username={`+${more().length}`} />\n </n-popover>\n </Show>\n </div>\n </>\n );\n}\n\ncustomElement<AvatarGroupProps>('n-avatar-group', defaultProps, AvatarGroup);\n\nexport default AvatarGroup;\n"],"names":["For","Show","createMemo","mergeProps","splitProps","css","cx","customElement","style","moreCss","defaultProps","data","size","class","maxCount","AvatarGroup","_props","local","other","showAvatar","slice","more","_data","len","length","a"],"mappings":"+aAAA,QAASA,OAAAA,CAAG,CAAEC,QAAAA,CAAI,CAAEC,cAAAA,CAAU,CAAEC,cAAAA,CAAU,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACzE,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,OAAO,WAAY,AACnB,OAAO,YAAa,CAGpB,IAAMC,EAAQH,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBlB,CAAC,CAEKI,EAAUJ,CAAG,CAAC;;;;;;;;;;;;;;;;AAgBpB,CAAC,CAkBKK,EAAiC,CACrCC,KAAM,EAAE,CACRC,KAAM,KAAK,EACXC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfT,IAAK,KAAK,CACZ,EAEA,SAASU,EAAYC,CAAwB,EAE3C,GAAM,CAACC,EAAOC,EAAM,CAAGd,EADTD,EAAWO,EAAcM,GACE,CAAC,OAAQ,WAAY,QAAS,OAAQ,MAAM,EAC/EL,EAAOT,EAAW,IAAMe,EAAMN,IAAI,EAAI,EAAE,EACxCQ,EAAajB,EAAW,IAAMS,IAAOS,KAAK,CAAC,EAAGH,EAAMH,QAAQ,GAC5DO,EAAOnB,EAAW,KACtB,IAAMoB,EAAQX,IACRY,EAAMD,EAAME,MAAM,CAAIP,CAAAA,EAAMH,QAAQ,EAAIQ,EAAME,MAAM,AAAD,SAEzD,AAAID,EAAM,EACDD,EAAMF,KAAK,CAAC,CAACG,GAEf,EAAE,AACX,GAEA,4CAEwBf,UACnBP,qBAAWgB,EAAMZ,GAAG,8DACCA,EAAIY,EAAMZ,GAAG,qCAE1Ba,sBAAcZ,EAAG,QAASW,EAAMJ,KAAK,kBAC3Cb,qBAAUmB,cAAe,AAACM,gCAAoBA,qBAASR,EAAML,IAAI,6CACjEX,qBAAWoB,IAAOG,MAAM,yDAEd,CAAA,aAEIf,yCAGNT,qBAAUqB,cAAS,AAACI,gCAAoBA,qBAASR,EAAML,IAAI,gFAIhDK,EAAML,IAAI,GAAY,CAAC,CAAC,EAAES,IAAOG,MAAM,CAAC,CAAC,oHAMrE,CAEAjB,EAAgC,iBAAkBG,EAAcK,EAEhE,gBAAeA,CAAY"}
1
+ {"version":3,"sources":["../../components/avatar/group.tsx"],"sourcesContent":["import { createMemo, For, mergeProps, Show, splitProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { AvatarProps, BasicConfig, CustomElement } from '..';\n\nimport '../avatar';\nimport '../popover';\n\nconst style = css`\n .group {\n display: inline-flex;\n align-items: center;\n\n & > n-avatar {\n display: flex;\n }\n\n & > n-avatar:not(:first-child),\n & > n-popover {\n margin-inline-start: -4%;\n transition: margin-inline-start var(--transition-duration);\n\n &:hover:not(n-popover) {\n margin-inline-start: 4px;\n\n &:has(+ n-avatar),\n &:has(+ n-popover) {\n margin-inline-end: calc(4% + 4px);\n }\n }\n }\n }\n`;\n\nconst moreCss = css`\n .more {\n display: flex;\n justify-content: center;\n align-items: center;\n overflow-y: auto;\n padding: 8px;\n max-inline-size: 60vi;\n max-block-size: 80vb;\n gap: 8px;\n flex-wrap: wrap;\n\n & > n-avatar {\n display: flex;\n }\n }\n`;\n\nexport interface AvatarGroupProps {\n /** 头像数据 */\n data?: Omit<AvatarProps, 'size'>[];\n /** 头像尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 最多显示个数 */\n maxCount?: number;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n}\nexport type AvatarGroupElement = CustomElement<AvatarGroupProps>;\n\nconst defaultProps: AvatarGroupProps = {\n data: [],\n size: void 0,\n class: void 0,\n maxCount: void 0,\n css: void 0,\n};\n\nfunction AvatarGroup(_props: AvatarGroupProps) {\n const props = mergeProps(defaultProps, _props);\n const [local, other] = splitProps(props, ['data', 'maxCount', 'class', 'size', 'css']);\n const data = createMemo(() => local.data || []);\n const showAvatar = createMemo(() => data().slice(0, local.maxCount));\n const more = createMemo(() => {\n const _data = data();\n const len = _data.length - (local.maxCount || _data.length);\n\n if (len > 0) {\n return _data.slice(-len);\n }\n return [];\n });\n\n return (\n <>\n <style textContent={style} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <div {...other} class={cx('group', local.class)}>\n <For each={showAvatar()}>{(a) => <n-avatar {...a} size={local.size} />}</For>\n <Show when={more().length}>\n <n-popover\n arrow={true}\n trigger=\"click\"\n popup-css={moreCss}\n content={\n <div class=\"more\">\n <For each={more()}>{(a) => <n-avatar {...a} size={local.size} />}</For>\n </div>\n }\n >\n <n-avatar size={local.size} username={`+${more().length}`} />\n </n-popover>\n </Show>\n </div>\n </>\n );\n}\n\ncustomElement<AvatarGroupProps>('n-avatar-group', defaultProps, AvatarGroup);\n\nexport default AvatarGroup;\n"],"names":["createMemo","For","mergeProps","Show","splitProps","css","cx","customElement","style","moreCss","defaultProps","data","size","class","maxCount","AvatarGroup","_props","local","other","showAvatar","slice","more","_data","len","length","a"],"mappings":"+aAAA,QAASA,cAAAA,CAAU,CAAEC,OAAAA,CAAG,CAAEC,cAAAA,CAAU,CAAEC,QAAAA,CAAI,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACzE,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAI9C,OAAO,WAAY,AACnB,OAAO,YAAa,CAEpB,IAAMC,EAAQH,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBlB,CAAC,CAEKI,EAAUJ,CAAG,CAAC;;;;;;;;;;;;;;;;AAgBpB,CAAC,CAkBKK,EAAiC,CACrCC,KAAM,EAAE,CACRC,KAAM,KAAK,EACXC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfT,IAAK,KAAK,CACZ,EAEA,SAASU,EAAYC,CAAwB,EAE3C,GAAM,CAACC,EAAOC,EAAM,CAAGd,EADTF,EAAWQ,EAAcM,GACE,CAAC,OAAQ,WAAY,QAAS,OAAQ,MAAM,EAC/EL,EAAOX,EAAW,IAAMiB,EAAMN,IAAI,EAAI,EAAE,EACxCQ,EAAanB,EAAW,IAAMW,IAAOS,KAAK,CAAC,EAAGH,EAAMH,QAAQ,GAC5DO,EAAOrB,EAAW,KACtB,IAAMsB,EAAQX,IACRY,EAAMD,EAAME,MAAM,CAAIP,CAAAA,EAAMH,QAAQ,EAAIQ,EAAME,MAAM,AAAD,SAEzD,AAAID,EAAM,EACDD,EAAMF,KAAK,CAAC,CAACG,GAEf,EAAE,AACX,GAEA,4CAEwBf,UACnBL,qBAAWc,EAAMZ,GAAG,8DACCA,EAAIY,EAAMZ,GAAG,qCAE1Ba,sBAAcZ,EAAG,QAASW,EAAMJ,KAAK,kBAC3CZ,qBAAUkB,cAAe,AAACM,gCAAoBA,qBAASR,EAAML,IAAI,6CACjET,qBAAWkB,IAAOG,MAAM,yDAEd,CAAA,aAEIf,yCAGNR,qBAAUoB,cAAS,AAACI,gCAAoBA,qBAASR,EAAML,IAAI,gFAIhDK,EAAML,IAAI,GAAY,CAAC,CAAC,EAAES,IAAOG,MAAM,CAAC,CAAC,oHAMrE,CAEAjB,EAAgC,iBAAkBG,EAAcK,EAEhE,gBAAeA,CAAY"}
@@ -1,9 +1,9 @@
1
- import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{spread as r}from"solid-js/web";import{mergeProps as s}from"solid-js/web";import"solid-js/web";import{insert as o}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as l}from"solid-js/web";let a=t("<style> "),n=t("<style>"),d=t("<span>"),c=t("<div>"),m=t('<svg viewBox="0 0 1 1" aria-hidden="true" overflow="hidden"><defs><clipPath id="clipPathAvatar" clipPathUnits="objectBoundingBox"><path d="M.395.126H.4A.016.016 0 0 1 .418.14v.002L.42.158a.39.39 0 0 0 .019.12L.44.284l.005.01c.011.026.034.05.05.053h.011a.084.084 0 0 0 .016-.01.115.115 0 0 0 .025-.03.259.259 0 0 0 .033-.14.02.02 0 0 0 0-.008.03.03 0 0 1 0-.01V.145L.584.136h.001C.583.134.591.127.594.126h.024L.63.127l.013.001h.01a.123.123 0 0 0 .021.003h.003L.7.133a.591.591 0 0 1 .046.004L.77.139h.013l.006.002h.009c.01 0 .019.006.036.023a.24.24 0 0 1 .018.02l.004.004a.49.49 0 0 1 .063.094L.927.3a.032.032 0 0 0 .004.007L.932.31l.004.007.007.022a.141.141 0 0 0 .004.008.34.34 0 0 0 .011.037l.002.01A.463.463 0 0 1 .969.46v.013A.358.358 0 0 1 .963.58a.537.537 0 0 1-.064.16.378.378 0 0 1-.096.111.042.042 0 0 1-.014.002L.762.851.732.85A1.092 1.092 0 0 0 .667.845C.641.842.636.84.63.832L.626.825C.624.822.628.814.636.8a.129.129 0 0 0 .01-.022.02.02 0 0 0 .001-.003V.773a.143.143 0 0 0 .009-.02A.149.149 0 0 1 .66.738.028.028 0 0 0 .662.73V.726a.243.243 0 0 1-.106.07.177.177 0 0 1-.121-.003A.25.25 0 0 1 .35.736C.34.726.338.724.337.727A.095.095 0 0 0 .344.75v.003s.001 0 0 0a.316.316 0 0 0 .024.053L.37.811c.005.01.005.013.001.02C.367.837.36.84.345.842A.462.462 0 0 1 .3.847.967.967 0 0 0 .25.85L.224.852.213.853A.027.027 0 0 1 .191.847.438.438 0 0 1 .098.735a.525.525 0 0 1-.065-.19L.032.529V.517a.35.35 0 0 1 0-.052L.034.433.036.421A.288.288 0 0 1 .04.397.173.173 0 0 1 .05.36c0-.003 0-.006.002-.01A.133.133 0 0 0 .057.336L.06.33A.293.293 0 0 1 .084.276L.09.266A.14.14 0 0 1 .1.246L.106.24A.288.288 0 0 1 .142.19a.227.227 0 0 0 .01-.01.17.17 0 0 1 .037-.036A.036.036 0 0 1 .202.14h.023L.228.138h.008L.248.136H.26A.104.104 0 0 0 .28.134a.01.01 0 0 1 .004 0h.003L.289.133h.006A.18.18 0 0 1 .313.131h.011L.327.13H.33L.348.128h.009L.364.127h.004L.37.126h.011L.388.125a.01.01 0 0 0 .003 0h.004z" fill="#7483AB">');import{Match as h,Show as p,Switch as f,createEffect as u,createMemo as L,createSignal as v,mergeProps as y,splitProps as A}from"solid-js";import{css as g,cx as w}from"@moneko/css";import{customElement as b}from"solid-element";import{style as j}from"./style";import C from"../img";import P from"../theme";function x(t){let b,x;let{baseStyle:z}=P,$={small:"24px",normal:"32px",large:"40px"},[B,V]=A(y({size:32},t),["class","css","src","alt","size","color","username"]),[W,H]=v(1),k=L(()=>{let e=$[B.size]||`${B.size}px`;return g`
1
+ import{use as e}from"solid-js/web";import{template as t}from"solid-js/web";import{spread as r}from"solid-js/web";import{mergeProps as s}from"solid-js/web";import"solid-js/web";import{insert as o}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as l}from"solid-js/web";let a=t("<style> "),n=t("<style>"),d=t("<span>"),c=t("<div>"),m=t('<svg viewBox="0 0 1 1" aria-hidden="true" overflow="hidden"><defs><clipPath id="clipPathAvatar" clipPathUnits="objectBoundingBox"><path d="M.395.126H.4A.016.016 0 0 1 .418.14v.002L.42.158a.39.39 0 0 0 .019.12L.44.284l.005.01c.011.026.034.05.05.053h.011a.084.084 0 0 0 .016-.01.115.115 0 0 0 .025-.03.259.259 0 0 0 .033-.14.02.02 0 0 0 0-.008.03.03 0 0 1 0-.01V.145L.584.136h.001C.583.134.591.127.594.126h.024L.63.127l.013.001h.01a.123.123 0 0 0 .021.003h.003L.7.133a.591.591 0 0 1 .046.004L.77.139h.013l.006.002h.009c.01 0 .019.006.036.023a.24.24 0 0 1 .018.02l.004.004a.49.49 0 0 1 .063.094L.927.3a.032.032 0 0 0 .004.007L.932.31l.004.007.007.022a.141.141 0 0 0 .004.008.34.34 0 0 0 .011.037l.002.01A.463.463 0 0 1 .969.46v.013A.358.358 0 0 1 .963.58a.537.537 0 0 1-.064.16.378.378 0 0 1-.096.111.042.042 0 0 1-.014.002L.762.851.732.85A1.092 1.092 0 0 0 .667.845C.641.842.636.84.63.832L.626.825C.624.822.628.814.636.8a.129.129 0 0 0 .01-.022.02.02 0 0 0 .001-.003V.773a.143.143 0 0 0 .009-.02A.149.149 0 0 1 .66.738.028.028 0 0 0 .662.73V.726a.243.243 0 0 1-.106.07.177.177 0 0 1-.121-.003A.25.25 0 0 1 .35.736C.34.726.338.724.337.727A.095.095 0 0 0 .344.75v.003s.001 0 0 0a.316.316 0 0 0 .024.053L.37.811c.005.01.005.013.001.02C.367.837.36.84.345.842A.462.462 0 0 1 .3.847.967.967 0 0 0 .25.85L.224.852.213.853A.027.027 0 0 1 .191.847.438.438 0 0 1 .098.735a.525.525 0 0 1-.065-.19L.032.529V.517a.35.35 0 0 1 0-.052L.034.433.036.421A.288.288 0 0 1 .04.397.173.173 0 0 1 .05.36c0-.003 0-.006.002-.01A.133.133 0 0 0 .057.336L.06.33A.293.293 0 0 1 .084.276L.09.266A.14.14 0 0 1 .1.246L.106.24A.288.288 0 0 1 .142.19a.227.227 0 0 0 .01-.01.17.17 0 0 1 .037-.036A.036.036 0 0 1 .202.14h.023L.228.138h.008L.248.136H.26A.104.104 0 0 0 .28.134a.01.01 0 0 1 .004 0h.003L.289.133h.006A.18.18 0 0 1 .313.131h.011L.327.13H.33L.348.128h.009L.364.127h.004L.37.126h.011L.388.125a.01.01 0 0 0 .003 0h.004z" fill="#7483AB">');import{createEffect as h,createMemo as p,createSignal as f,Match as u,mergeProps as L,Show as v,splitProps as y,Switch as A}from"solid-js";import{css as g,cx as w}from"@moneko/css";import{customElement as b}from"solid-element";import j from"../img";import C from"../theme";import{style as P}from"./style";function x(t){let b,x;let{baseStyle:z}=C,$={small:"24px",normal:"32px",large:"40px"},[B,V]=y(L({size:32},t),["class","css","src","alt","size","color","username"]),[W,H]=f(1),k=p(()=>{let e=$[B.size]||`${B.size}px`;return g`
2
2
  .avatar {
3
3
  --avatar-color: ${B.color};
4
4
 
5
5
  inline-size: ${e};
6
6
  block-size: ${e};
7
7
  }
8
- `});return u(()=>{x&&b&&x.clientWidth+6>b.clientWidth&&H((b.clientWidth-6)/x.clientWidth)}),[(()=>{let e=a(),t=e.firstChild;return i(()=>t.data=z()),e})(),(()=>{let e=n();return e.textContent=j,e})(),(()=>{let e=a(),t=e.firstChild;return i(()=>t.data=k()),e})(),l(p,{get when(){return B.css},get children(){let e=a(),t=e.firstChild;return i(()=>t.data=g(B.css)),e}}),(()=>{let t=c(),a=b;return"function"==typeof a?e(a,t):b=t,r(t,s({get class(){return w("avatar",B.class)}},V),!1,!0),o(t,l(f,{get children(){return[l(h,{get when(){return"string"==typeof B.src},get children(){return l(C,{get src(){return B.src},get alt(){return B.alt},style:{"z-index":9999}})}}),l(h,{get when(){return B.username},get children(){let t=d(),r=x;return"function"==typeof r?e(r,t):x=t,o(t,()=>B.username),i(()=>(W(),t.style.setProperty("transform",`scale(${W()})`))),t}})]}})),t})(),(()=>{let e=m();return e.style.setProperty("position","absolute"),e.style.setProperty("width","0"),e.style.setProperty("height","0"),e.style.setProperty("opacity","0"),e.style.setProperty("pointer-events","none"),e})()]}b("n-avatar",{css:void 0,size:void 0,src:void 0,alt:void 0,username:void 0,color:void 0,class:void 0},x);export default x;
8
+ `});return h(()=>{x&&b&&x.clientWidth+6>b.clientWidth&&H((b.clientWidth-6)/x.clientWidth)}),[(()=>{let e=a(),t=e.firstChild;return i(()=>t.data=z()),e})(),(()=>{let e=n();return e.textContent=P,e})(),(()=>{let e=a(),t=e.firstChild;return i(()=>t.data=k()),e})(),l(v,{get when(){return B.css},get children(){let e=a(),t=e.firstChild;return i(()=>t.data=g(B.css)),e}}),(()=>{let t=c(),a=b;return"function"==typeof a?e(a,t):b=t,r(t,s({get class(){return w("avatar",B.class)}},V),!1,!0),o(t,l(A,{get children(){return[l(u,{get when(){return"string"==typeof B.src},get children(){return l(j,{get src(){return B.src},get alt(){return B.alt},style:{"z-index":9999}})}}),l(u,{get when(){return B.username},get children(){let t=d(),r=x;return"function"==typeof r?e(r,t):x=t,o(t,()=>B.username),i(()=>(W(),t.style.setProperty("transform",`scale(${W()})`))),t}})]}})),t})(),(()=>{let e=m();return e.style.setProperty("position","absolute"),e.style.setProperty("width","0"),e.style.setProperty("height","0"),e.style.setProperty("opacity","0"),e.style.setProperty("pointer-events","none"),e})()]}b("n-avatar",{css:void 0,size:void 0,src:void 0,alt:void 0,username:void 0,color:void 0,class:void 0},x);export default x;
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/avatar/index.tsx"],"sourcesContent":["import {\n Match,\n Show,\n Switch,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n splitProps,\n} from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport Img from '../img';\nimport theme from '../theme';\nimport type { BasicConfig, CustomElement } from '../index';\n\nexport interface AvatarProps {\n /** 头像 */\n src?: string;\n /** 替代文本 */\n alt?: string;\n /** 尺寸\n * @default 'normal'\n */\n size?: number | BasicConfig['size'];\n /** 用户名 */\n username?: string;\n /** 背景颜色 */\n color?: string;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n}\nexport type AvatarElement = CustomElement<AvatarProps>;\n\nfunction Avatar(_: AvatarProps) {\n const { baseStyle } = theme;\n const avatarSize: Record<string, string> = {\n small: '24px',\n normal: '32px',\n large: '40px',\n };\n\n const props = mergeProps({ size: 32 }, _);\n const [local, other] = splitProps(props, [\n 'class',\n 'css',\n 'src',\n 'alt',\n 'size',\n 'color',\n 'username',\n ]);\n let box: HTMLDivElement | undefined;\n let label: HTMLSpanElement | undefined;\n const [scale, setScale] = createSignal(1);\n\n const _style = createMemo(() => {\n const size = avatarSize[local.size] || `${local.size}px`;\n\n return css`\n .avatar {\n --avatar-color: ${local.color};\n\n inline-size: ${size};\n block-size: ${size};\n }\n `;\n });\n\n createEffect(() => {\n if (label && box) {\n if (label.clientWidth + 6 > box.clientWidth) {\n setScale((box.clientWidth - 6) / label.clientWidth);\n }\n }\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={_style()} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <div ref={box} class={cx('avatar', local.class)} {...other}>\n <Switch>\n <Match when={typeof local.src === 'string'}>\n <Img src={local.src} alt={local.alt} style={{ 'z-index': 9999 }} />\n </Match>\n <Match when={local.username}>\n <span ref={label} style={{ transform: `scale(${scale()})` }}>\n {local.username}\n </span>\n </Match>\n </Switch>\n </div>\n <svg\n viewBox=\"0 0 1 1\"\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n width: '0',\n height: '0',\n opacity: 0,\n 'pointer-events': 'none',\n }}\n overflow=\"hidden\"\n >\n <defs>\n <clipPath id=\"clipPathAvatar\" clipPathUnits=\"objectBoundingBox\">\n <path\n d=\"M.395.126H.4A.016.016 0 0 1 .418.14v.002L.42.158a.39.39 0 0 0 .019.12L.44.284l.005.01c.011.026.034.05.05.053h.011a.084.084 0 0 0 .016-.01.115.115 0 0 0 .025-.03.259.259 0 0 0 .033-.14.02.02 0 0 0 0-.008.03.03 0 0 1 0-.01V.145L.584.136h.001C.583.134.591.127.594.126h.024L.63.127l.013.001h.01a.123.123 0 0 0 .021.003h.003L.7.133a.591.591 0 0 1 .046.004L.77.139h.013l.006.002h.009c.01 0 .019.006.036.023a.24.24 0 0 1 .018.02l.004.004a.49.49 0 0 1 .063.094L.927.3a.032.032 0 0 0 .004.007L.932.31l.004.007.007.022a.141.141 0 0 0 .004.008.34.34 0 0 0 .011.037l.002.01A.463.463 0 0 1 .969.46v.013A.358.358 0 0 1 .963.58a.537.537 0 0 1-.064.16.378.378 0 0 1-.096.111.042.042 0 0 1-.014.002L.762.851.732.85A1.092 1.092 0 0 0 .667.845C.641.842.636.84.63.832L.626.825C.624.822.628.814.636.8a.129.129 0 0 0 .01-.022.02.02 0 0 0 .001-.003V.773a.143.143 0 0 0 .009-.02A.149.149 0 0 1 .66.738.028.028 0 0 0 .662.73V.726a.243.243 0 0 1-.106.07.177.177 0 0 1-.121-.003A.25.25 0 0 1 .35.736C.34.726.338.724.337.727A.095.095 0 0 0 .344.75v.003s.001 0 0 0a.316.316 0 0 0 .024.053L.37.811c.005.01.005.013.001.02C.367.837.36.84.345.842A.462.462 0 0 1 .3.847.967.967 0 0 0 .25.85L.224.852.213.853A.027.027 0 0 1 .191.847.438.438 0 0 1 .098.735a.525.525 0 0 1-.065-.19L.032.529V.517a.35.35 0 0 1 0-.052L.034.433.036.421A.288.288 0 0 1 .04.397.173.173 0 0 1 .05.36c0-.003 0-.006.002-.01A.133.133 0 0 0 .057.336L.06.33A.293.293 0 0 1 .084.276L.09.266A.14.14 0 0 1 .1.246L.106.24A.288.288 0 0 1 .142.19a.227.227 0 0 0 .01-.01.17.17 0 0 1 .037-.036A.036.036 0 0 1 .202.14h.023L.228.138h.008L.248.136H.26A.104.104 0 0 0 .28.134a.01.01 0 0 1 .004 0h.003L.289.133h.006A.18.18 0 0 1 .313.131h.011L.327.13H.33L.348.128h.009L.364.127h.004L.37.126h.011L.388.125a.01.01 0 0 0 .003 0h.004z\"\n fill=\"#7483AB\"\n />\n </clipPath>\n </defs>\n </svg>\n </>\n );\n}\n\ncustomElement<AvatarProps>(\n 'n-avatar',\n {\n css: void 0,\n size: void 0,\n src: void 0,\n alt: void 0,\n username: void 0,\n color: void 0,\n class: void 0,\n },\n Avatar,\n);\nexport default Avatar;\n"],"names":["Match","Show","Switch","createEffect","createMemo","createSignal","mergeProps","splitProps","css","cx","customElement","style","Img","theme","Avatar","_","box","label","baseStyle","avatarSize","small","normal","large","local","other","size","scale","setScale","_style","color","clientWidth","class","src","alt","username"],"mappings":"ouEAAA,QACEA,SAAAA,CAAK,CACLC,QAAAA,CAAI,CACJC,UAAAA,CAAM,CACNC,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,cAAAA,CAAU,KACL,UAAW,AAClB,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAASC,SAAAA,CAAK,KAAQ,SAAU,AAChC,QAAOC,MAAS,QAAS,AACzB,QAAOC,MAAW,UAAW,CAuB7B,SAASC,EAAOC,CAAc,MAkBxBC,EACAC,EAlBJ,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGL,EAChBM,EAAqC,CACzCC,MAAO,OACPC,OAAQ,OACRC,MAAO,MACT,EAGM,CAACC,EAAOC,EAAM,CAAGjB,EADTD,EAAW,CAAEmB,KAAM,EAAG,EAAGV,GACE,CACvC,QACA,MACA,MACA,MACA,OACA,QACA,WACD,EAGK,CAACW,EAAOC,EAAS,CAAGtB,EAAa,GAEjCuB,EAASxB,EAAW,KACxB,IAAMqB,EAAON,CAAU,CAACI,EAAME,IAAI,CAAC,EAAI,CAAC,EAAEF,EAAME,IAAI,CAAC,EAAE,CAAC,CAExD,OAAOjB,CAAG,CAAC;;wBAES,EAAEe,EAAMM,KAAK,CAAC;;qBAEjB,EAAEJ,EAAK;oBACR,EAAEA,EAAK;;IAEvB,CAAC,AACH,GAUA,OARAtB,EAAa,KACPc,GAASD,GACPC,EAAMa,WAAW,CAAG,EAAId,EAAIc,WAAW,EACzCH,EAAS,AAACX,CAAAA,EAAIc,WAAW,CAAG,CAAA,EAAKb,EAAMa,WAAW,CAGxD,uDAIwBZ,gDACAP,2DACAiB,aACnB3B,qBAAWsB,EAAMf,GAAG,8DACCA,EAAIe,EAAMf,GAAG,0BAEzBQ,oCAAAA,8BAAYP,EAAG,SAAUc,EAAMQ,KAAK,IAAOP,gBAClDtB,2BACEF,oBAAY,AAAqB,UAArB,OAAOuB,EAAMS,GAAG,0BAC1BpB,oBAASW,EAAMS,GAAG,mBAAOT,EAAMU,GAAG,QAAS,CAAE,UAAW,IAAK,SAE/DjC,qBAAYuB,EAAMW,QAAQ,6BACdjB,oCAAAA,YACRM,EAAMW,QAAQ,SAD8BR,oCAAT,CAAC,MAAM,EAAEA,IAAQ,CAAC,CAAC,+OA6BrE,CAEAhB,EACE,WACA,CACEF,IAAK,KAAK,EACViB,KAAM,KAAK,EACXO,IAAK,KAAK,EACVC,IAAK,KAAK,EACVC,SAAU,KAAK,EACfL,MAAO,KAAK,EACZE,MAAO,KAAK,CACd,EACAjB,EAEF,gBAAeA,CAAO"}
1
+ {"version":3,"sources":["../../components/avatar/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n Match,\n mergeProps,\n Show,\n splitProps,\n Switch,\n} from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport Img from '../img';\nimport type { BasicConfig, CustomElement } from '../index';\nimport theme from '../theme';\n\nimport { style } from './style';\n\nexport interface AvatarProps {\n /** 头像 */\n src?: string;\n /** 替代文本 */\n alt?: string;\n /** 尺寸\n * @default 'normal'\n */\n size?: number | BasicConfig['size'];\n /** 用户名 */\n username?: string;\n /** 背景颜色 */\n color?: string;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n}\nexport type AvatarElement = CustomElement<AvatarProps>;\n\nfunction Avatar(_: AvatarProps) {\n const { baseStyle } = theme;\n const avatarSize: Record<string, string> = {\n small: '24px',\n normal: '32px',\n large: '40px',\n };\n\n const props = mergeProps({ size: 32 }, _);\n const [local, other] = splitProps(props, [\n 'class',\n 'css',\n 'src',\n 'alt',\n 'size',\n 'color',\n 'username',\n ]);\n let box: HTMLDivElement | undefined;\n let label: HTMLSpanElement | undefined;\n const [scale, setScale] = createSignal(1);\n\n const _style = createMemo(() => {\n const size = avatarSize[local.size] || `${local.size}px`;\n\n return css`\n .avatar {\n --avatar-color: ${local.color};\n\n inline-size: ${size};\n block-size: ${size};\n }\n `;\n });\n\n createEffect(() => {\n if (label && box) {\n if (label.clientWidth + 6 > box.clientWidth) {\n setScale((box.clientWidth - 6) / label.clientWidth);\n }\n }\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={_style()} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <div ref={box} class={cx('avatar', local.class)} {...other}>\n <Switch>\n <Match when={typeof local.src === 'string'}>\n <Img src={local.src} alt={local.alt} style={{ 'z-index': 9999 }} />\n </Match>\n <Match when={local.username}>\n <span ref={label} style={{ transform: `scale(${scale()})` }}>\n {local.username}\n </span>\n </Match>\n </Switch>\n </div>\n <svg\n viewBox=\"0 0 1 1\"\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n width: '0',\n height: '0',\n opacity: 0,\n 'pointer-events': 'none',\n }}\n overflow=\"hidden\"\n >\n <defs>\n <clipPath id=\"clipPathAvatar\" clipPathUnits=\"objectBoundingBox\">\n <path\n d=\"M.395.126H.4A.016.016 0 0 1 .418.14v.002L.42.158a.39.39 0 0 0 .019.12L.44.284l.005.01c.011.026.034.05.05.053h.011a.084.084 0 0 0 .016-.01.115.115 0 0 0 .025-.03.259.259 0 0 0 .033-.14.02.02 0 0 0 0-.008.03.03 0 0 1 0-.01V.145L.584.136h.001C.583.134.591.127.594.126h.024L.63.127l.013.001h.01a.123.123 0 0 0 .021.003h.003L.7.133a.591.591 0 0 1 .046.004L.77.139h.013l.006.002h.009c.01 0 .019.006.036.023a.24.24 0 0 1 .018.02l.004.004a.49.49 0 0 1 .063.094L.927.3a.032.032 0 0 0 .004.007L.932.31l.004.007.007.022a.141.141 0 0 0 .004.008.34.34 0 0 0 .011.037l.002.01A.463.463 0 0 1 .969.46v.013A.358.358 0 0 1 .963.58a.537.537 0 0 1-.064.16.378.378 0 0 1-.096.111.042.042 0 0 1-.014.002L.762.851.732.85A1.092 1.092 0 0 0 .667.845C.641.842.636.84.63.832L.626.825C.624.822.628.814.636.8a.129.129 0 0 0 .01-.022.02.02 0 0 0 .001-.003V.773a.143.143 0 0 0 .009-.02A.149.149 0 0 1 .66.738.028.028 0 0 0 .662.73V.726a.243.243 0 0 1-.106.07.177.177 0 0 1-.121-.003A.25.25 0 0 1 .35.736C.34.726.338.724.337.727A.095.095 0 0 0 .344.75v.003s.001 0 0 0a.316.316 0 0 0 .024.053L.37.811c.005.01.005.013.001.02C.367.837.36.84.345.842A.462.462 0 0 1 .3.847.967.967 0 0 0 .25.85L.224.852.213.853A.027.027 0 0 1 .191.847.438.438 0 0 1 .098.735a.525.525 0 0 1-.065-.19L.032.529V.517a.35.35 0 0 1 0-.052L.034.433.036.421A.288.288 0 0 1 .04.397.173.173 0 0 1 .05.36c0-.003 0-.006.002-.01A.133.133 0 0 0 .057.336L.06.33A.293.293 0 0 1 .084.276L.09.266A.14.14 0 0 1 .1.246L.106.24A.288.288 0 0 1 .142.19a.227.227 0 0 0 .01-.01.17.17 0 0 1 .037-.036A.036.036 0 0 1 .202.14h.023L.228.138h.008L.248.136H.26A.104.104 0 0 0 .28.134a.01.01 0 0 1 .004 0h.003L.289.133h.006A.18.18 0 0 1 .313.131h.011L.327.13H.33L.348.128h.009L.364.127h.004L.37.126h.011L.388.125a.01.01 0 0 0 .003 0h.004z\"\n fill=\"#7483AB\"\n />\n </clipPath>\n </defs>\n </svg>\n </>\n );\n}\n\ncustomElement<AvatarProps>(\n 'n-avatar',\n {\n css: void 0,\n size: void 0,\n src: void 0,\n alt: void 0,\n username: void 0,\n color: void 0,\n class: void 0,\n },\n Avatar,\n);\nexport default Avatar;\n"],"names":["createEffect","createMemo","createSignal","Match","mergeProps","Show","splitProps","Switch","css","cx","customElement","Img","theme","style","Avatar","_","box","label","baseStyle","avatarSize","small","normal","large","local","other","size","scale","setScale","_style","color","clientWidth","class","src","alt","username"],"mappings":"ouEAAA,QACEA,gBAAAA,CAAY,CACZC,cAAAA,CAAU,CACVC,gBAAAA,CAAY,CACZC,SAAAA,CAAK,CACLC,cAAAA,CAAU,CACVC,QAAAA,CAAI,CACJC,cAAAA,CAAU,CACVC,UAAAA,CAAM,KACD,UAAW,AAClB,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAE9C,QAAOC,MAAS,QAAS,AAEzB,QAAOC,MAAW,UAAW,AAE7B,QAASC,SAAAA,CAAK,KAAQ,SAAU,CAsBhC,SAASC,EAAOC,CAAc,MAkBxBC,EACAC,EAlBJ,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGN,EAChBO,EAAqC,CACzCC,MAAO,OACPC,OAAQ,OACRC,MAAO,MACT,EAGM,CAACC,EAAOC,EAAM,CAAGlB,EADTF,EAAW,CAAEqB,KAAM,EAAG,EAAGV,GACE,CACvC,QACA,MACA,MACA,MACA,OACA,QACA,WACD,EAGK,CAACW,EAAOC,EAAS,CAAGzB,EAAa,GAEjC0B,EAAS3B,EAAW,KACxB,IAAMwB,EAAON,CAAU,CAACI,EAAME,IAAI,CAAC,EAAI,CAAC,EAAEF,EAAME,IAAI,CAAC,EAAE,CAAC,CAExD,OAAOjB,CAAG,CAAC;;wBAES,EAAEe,EAAMM,KAAK,CAAC;;qBAEjB,EAAEJ,EAAK;oBACR,EAAEA,EAAK;;IAEvB,CAAC,AACH,GAUA,OARAzB,EAAa,KACPiB,GAASD,GACPC,EAAMa,WAAW,CAAG,EAAId,EAAIc,WAAW,EACzCH,EAAS,AAACX,CAAAA,EAAIc,WAAW,CAAG,CAAA,EAAKb,EAAMa,WAAW,CAGxD,uDAIwBZ,gDACAL,2DACAe,aACnBvB,qBAAWkB,EAAMf,GAAG,8DACCA,EAAIe,EAAMf,GAAG,0BAEzBQ,oCAAAA,8BAAYP,EAAG,SAAUc,EAAMQ,KAAK,IAAOP,gBAClDjB,2BACEJ,oBAAY,AAAqB,UAArB,OAAOoB,EAAMS,GAAG,0BAC1BrB,oBAASY,EAAMS,GAAG,mBAAOT,EAAMU,GAAG,QAAS,CAAE,UAAW,IAAK,SAE/D9B,qBAAYoB,EAAMW,QAAQ,6BACdjB,oCAAAA,YACRM,EAAMW,QAAQ,SAD8BR,oCAAT,CAAC,MAAM,EAAEA,IAAQ,CAAC,CAAC,+OA6BrE,CAEAhB,EACE,WACA,CACEF,IAAK,KAAK,EACViB,KAAM,KAAK,EACXO,IAAK,KAAK,EACVC,IAAK,KAAK,EACVC,SAAU,KAAK,EACfL,MAAO,KAAK,EACZE,MAAO,KAAK,CACd,EACAjB,EAEF,gBAAeA,CAAO"}
@@ -1,4 +1,4 @@
1
- import{css as e}from"@moneko/css";import i from"./favicon.svg";let t=`data:image/svg+xml;base64,${window.btoa(decodeURIComponent(i.replace("data:image/svg+xml,","")))}`;export const style=e`
1
+ import{css as e}from"@moneko/css";import i from"./favicon.svg";export const style=e`
2
2
  .avatar {
3
3
  position: relative;
4
4
  display: inline-flex;
@@ -33,7 +33,7 @@ import{css as e}from"@moneko/css";import i from"./favicon.svg";let t=`data:image
33
33
  }
34
34
 
35
35
  &::after {
36
- background: url(${t}) no-repeat center/contain;
36
+ background: url(${i}) no-repeat center/contain;
37
37
  }
38
38
 
39
39
  &:hover {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/avatar/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\nimport favicon from './favicon.svg';\n\nconst faviconBg = `data:image/svg+xml;base64,${window.btoa(\n decodeURIComponent(favicon.replace('data:image/svg+xml,', '')),\n)}`;\n\nexport const style = css`\n .avatar {\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n inline-size: 32px;\n block-size: 32px;\n transition: transform var(--transition-duration);\n cursor: pointer;\n user-select: none;\n animation: avatar-morph-effect 8s var(--transition-timing-function) infinite;\n background-image: linear-gradient(\n 45deg,\n var(--primary-outline) 0%,\n var(--success-outline) 100%\n );\n\n &::before,\n &::after {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n display: block;\n inline-size: 100%;\n block-size: 100%;\n content: '';\n pointer-events: none;\n }\n\n &::before {\n clip-path: url('#clipPathAvatar');\n }\n\n &::after {\n background: url(${faviconBg}) no-repeat center/contain;\n }\n\n &:hover {\n transform: scale(1.2);\n }\n\n img {\n position: absolute;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n clip-path: url('#clipPathAvatar');\n }\n }\n\n @keyframes avatar-morph-effect {\n 0% {\n border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;\n }\n\n 50% {\n border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;\n }\n\n 100% {\n border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;\n }\n }\n`;\n"],"names":["css","favicon","faviconBg","window","btoa","decodeURIComponent","replace","style"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAClC,QAAOC,MAAa,eAAgB,CAEpC,IAAMC,EAAY,CAAC,0BAA0B,EAAEC,OAAOC,IAAI,CACxDC,mBAAmBJ,EAAQK,OAAO,CAAC,sBAAuB,MAC1D,CAAC,AAEH,QAAO,MAAMC,MAAQP,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmCH,EAAEE,EAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BlC,CAAC,AAAC"}
1
+ {"version":3,"sources":["../../components/avatar/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nimport favicon from './favicon.svg';\n\nexport const style = css`\n .avatar {\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n inline-size: 32px;\n block-size: 32px;\n transition: transform var(--transition-duration);\n cursor: pointer;\n user-select: none;\n animation: avatar-morph-effect 8s var(--transition-timing-function) infinite;\n background-image: linear-gradient(\n 45deg,\n var(--primary-outline) 0%,\n var(--success-outline) 100%\n );\n\n &::before,\n &::after {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n display: block;\n inline-size: 100%;\n block-size: 100%;\n content: '';\n pointer-events: none;\n }\n\n &::before {\n clip-path: url('#clipPathAvatar');\n }\n\n &::after {\n background: url(${favicon}) no-repeat center/contain;\n }\n\n &:hover {\n transform: scale(1.2);\n }\n\n img {\n position: absolute;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n clip-path: url('#clipPathAvatar');\n }\n }\n\n @keyframes avatar-morph-effect {\n 0% {\n border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;\n }\n\n 50% {\n border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;\n }\n\n 100% {\n border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;\n }\n }\n`;\n"],"names":["css","favicon","style"],"mappings":"AAAA,OAASA,OAAAA,CAAG,KAAQ,aAAc,AAElC,QAAOC,MAAa,eAAgB,AAEpC,QAAO,MAAMC,MAAQF,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmCH,EAAEC,EAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BhC,CAAC,AAAC"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 通用
3
+ title: 回到顶部
4
+ subtitle: n-back-top
5
+ icon: ⇪
6
+ ---
7
+
8
+ # BackTop 回到顶部
9
+
10
+ > 返回页面顶部的操作按钮。
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 最简单的用法
3
+ description: 最简单的用法
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <div style="width:100%;">
9
+ <n-back-top css=":host{float:right;}"></n-back-top>
10
+ 根据 window 滚动浮现在
11
+ </div>
12
+ ```
13
+
14
+ ```jsx
15
+ <div style={{ width: '100%' }}>
16
+ 根据 window 滚动浮现在
17
+ <n-back-top css=":host{float:right;}" />
18
+ </div>
19
+ ```
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: 指定挂载位置
3
+ description: 指定返回顶部的按钮挂载位置, 默认为 n-back-top 所在位置的 shadowRoot 中
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <p>这里返回顶部的按钮挂载到 body 上, 根据 window 滚动浮现在左下角</p>
9
+ <n-back-top></n-back-top>
10
+ <script>
11
+ var el = container.querySelector('n-back-top');
12
+
13
+ el.mount = document.body;
14
+ el.css = `.back-top {
15
+ position: fixed;
16
+ right: unset;
17
+ left: 300px;
18
+ }`;
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <p>
24
+ 这里返回顶部的按钮挂载到 body 上, 根据 window 滚动浮现在左下角
25
+ <n-back-top
26
+ css={`
27
+ .back-top {
28
+ position: fixed;
29
+ right: unset;
30
+ left: 300px;
31
+ }
32
+ `}
33
+ mount={() => document.body}
34
+ />
35
+ </p>
36
+ ```
@@ -0,0 +1,46 @@
1
+ ---
2
+ title: 指定滚动容器
3
+ description: 通过 `target` 属性设置滚动容器, 通过 `visibility-height` 属性设置容器滚动到 200 时出现返回顶部
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <div
9
+ id="custom-back-top-target"
10
+ style="height: 200px; width: 100%; overflow: auto; position: relative;"
11
+ >
12
+ <div>
13
+ <p style="height: 100px;">1</p>
14
+ <p style="height: 100px;">2</p>
15
+ <p style="height: 100px;">3</p>
16
+ <p style="height: 100px;">4</p>
17
+ </div>
18
+ <n-back-top visibility-height="200"></n-back-top>
19
+ </div>
20
+ <script>
21
+ const el = container.querySelector('n-back-top');
22
+
23
+ el.target = container.getElementById('custom-back-top-target');
24
+ </script>
25
+ ```
26
+
27
+ ```jsx
28
+ let el: HTMLDivElement;
29
+
30
+ render(
31
+ <div
32
+ ref={(e) => {
33
+ el = e;
34
+ }}
35
+ style={{ height: '200px', width: '100%', overflow: 'auto', position: 'relative' }}
36
+ >
37
+ <div>
38
+ <p style="height: 100px;">1</p>
39
+ <p style="height: 100px;">2</p>
40
+ <p style="height: 100px;">3</p>
41
+ <p style="height: 100px;">4</p>
42
+ </div>
43
+ <n-back-top visibility-height={200} target={() => el} />
44
+ </div>
45
+ );
46
+ ```
@@ -1,2 +1,2 @@
1
- import{template as t}from"solid-js/web";import{spread as e}from"solid-js/web";import{mergeProps as o}from"solid-js/web";import"solid-js/web";import{effect as r}from"solid-js/web";import{delegateEvents as i}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let n=t("<style> "),m=t("<style>"),a=t("<div>");import{Show as d,createEffect as c,createMemo as u,createSignal as p,mergeProps as g,onCleanup as b,onMount as f,splitProps as v}from"solid-js";import h from"@moneko/common/lib/getMaxZindex";import y from"@moneko/common/lib/getScrollTop";import w from"@moneko/common/lib/isFunction";import{css as k,cx as j}from"@moneko/css";import{customElement as x}from"solid-element";import{Portal as H}from"solid-js/web";import{style as C}from"./style";import E from"../theme";function L(t){let{baseStyle:i,isDark:c}=E,[x,L]=v(g({target:window,visibilityHeight:400},t),["class","target","mount","css","visibilityHeight"]),[S,T]=p(null),z=u(()=>w(x.target)?x.target():x.target),A=u(()=>{let t=c()?"rgb(255 255 255 / 45%)":"var(--primary-border)";return`:host {--back-top-bg: ${t};}`});function D(){var t;null==(t=z())||t.scrollTo({top:0,behavior:"smooth"})}function F(){!1===S()&&T(null)}function M(t){t.preventDefault();let e=0,o=0,r=z();r&&(e=y(r),o=r.offsetHeight||0);let i=e>o/3||e>x.visibilityHeight;return!!S()!==i&&T(i),!1}return f(()=>{z().addEventListener("scroll",M,!1)}),b(()=>{z().removeEventListener("scroll",M,!1)}),s(d,{get when(){return null!==S()},get children(){return s(H,{useShadow:!0,get mount(){return x.mount},get children(){return[(()=>{let t=n(),e=t.firstChild;return r(()=>e.data=i()),t})(),(()=>{let t=n(),e=t.firstChild;return r(()=>e.data=A()),t})(),(()=>{let t=m();return t.textContent=C,t})(),s(d,{get when(){return x.css},get children(){let t=n(),e=t.firstChild;return r(()=>e.data=k(x.css)),t}}),(()=>{let t=a();return l(t,"click",D,!0),l(t,"animationend",F),e(t,o({get class(){return j("back-top",x.class)},get classList(){return{"back-top-out":!1===S()}},get style(){return{"z-index":h().toString()}}},L),!1,!1),t})()]}})}})}x("n-back-top",{class:void 0,css:void 0,visibilityHeight:void 0,mount:void 0,target:void 0},(t,e)=>{let o=e.element;o.mount||(o.style.position="sticky",o.style.bottom="24px",o.style.right="24px",o.style.display="block",o.style.pointerEvents="none");let r=g({css:o.css,visibilityHeight:o.visibilityHeight,mount:o.renderRoot,target:o.target},t);return c(()=>{o.removeAttribute("css")}),s(L,r)});export default L;i(["click"]);
1
+ import{template as t}from"solid-js/web";import{spread as e}from"solid-js/web";import{mergeProps as o}from"solid-js/web";import"solid-js/web";import{effect as r}from"solid-js/web";import{delegateEvents as i}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let n=t("<style> "),m=t("<style>"),a=t("<div>");import{createEffect as d,createMemo as c,createSignal as u,mergeProps as p,onCleanup as g,onMount as b,Show as f,splitProps as v}from"solid-js";import{Portal as h}from"solid-js/web";import y from"@moneko/common/lib/getMaxZindex";import w from"@moneko/common/lib/getScrollTop";import k from"@moneko/common/lib/isFunction";import{css as j,cx as x}from"@moneko/css";import{customElement as H}from"solid-element";import C from"../theme";import{style as E}from"./style";function L(t){let{baseStyle:i,isDark:d}=C,[H,L]=v(p({target:window,visibilityHeight:400},t),["class","target","mount","css","visibilityHeight"]),[S,T]=u(null),z=c(()=>k(H.target)?H.target():H.target),A=c(()=>{let t=d()?"rgb(255 255 255 / 45%)":"var(--primary-border)";return`:host {--back-top-bg: ${t};}`});function D(){var t;null==(t=z())||t.scrollTo({top:0,behavior:"smooth"})}function F(){!1===S()&&T(null)}function M(t){t.preventDefault();let e=0,o=0,r=z();r&&(e=w(r),o=r.offsetHeight||0);let i=e>o/3||e>H.visibilityHeight;return!!S()!==i&&T(i),!1}return b(()=>{var t;null==(t=z())||t.addEventListener("scroll",M,!1)}),g(()=>{var t;null==(t=z())||t.removeEventListener("scroll",M,!1)}),s(f,{get when(){return null!==S()},get children(){return s(h,{useShadow:!0,get mount(){return H.mount},get children(){return[(()=>{let t=n(),e=t.firstChild;return r(()=>e.data=i()),t})(),(()=>{let t=n(),e=t.firstChild;return r(()=>e.data=A()),t})(),(()=>{let t=m();return t.textContent=E,t})(),s(f,{get when(){return H.css},get children(){let t=n(),e=t.firstChild;return r(()=>e.data=j(H.css)),t}}),(()=>{let t=a();return l(t,"click",D,!0),l(t,"animationend",F),e(t,o({get class(){return x("back-top",H.class)},get classList(){return{"back-top-out":!1===S()}},get style(){return{"z-index":y().toString()}}},L),!1,!1),t})()]}})}})}H("n-back-top",{class:void 0,css:void 0,visibilityHeight:void 0,mount:void 0,target:void 0},(t,e)=>{let o=e.element;o.mount||(o.style.position="sticky",o.style.bottom="24px",o.style.right="24px",o.style.display="block",o.style.pointerEvents="none");let r=p({css:o.css,visibilityHeight:o.visibilityHeight,mount:o.renderRoot,target:o.target},t);return d(()=>{o.removeAttribute("css")}),s(L,r)});export default L;i(["click"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/back-top/index.tsx"],"sourcesContent":["import {\n Show,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n} from 'solid-js';\nimport { getMaxZindex, getScrollTop, isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { Portal } from 'solid-js/web';\nimport { style } from './style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface BackTopProps {\n /** 设置需要监听其滚动事件的元素\n * @default window\n */\n target?: HTMLElement | (() => HTMLElement);\n /** 挂载到指定的元素\n * @default body\n */\n mount?: HTMLElement;\n /** 滚动高度达到此参数值才出现 BackTop */\n visibilityHeight?: number;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n}\n\nfunction BackTop(_: BackTopProps) {\n const { baseStyle, isDark } = theme;\n const props = mergeProps({ target: window as unknown as HTMLElement, visibilityHeight: 400 }, _);\n const [local, other] = splitProps(props, ['class', 'target', 'mount', 'css', 'visibilityHeight']);\n const [show, setShow] = createSignal<boolean | null>(null);\n const target = createMemo(() => (isFunction(local.target) ? local.target() : local.target));\n\n const themeStyle = createMemo(() => {\n const bg = isDark() ? 'rgb(255 255 255 / 45%)' : 'var(--primary-border)';\n\n return `:host {--back-top-bg: ${bg};}`;\n });\n\n function handleBackTop() {\n target()?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n function exit() {\n if (show() === false) {\n setShow(null);\n }\n }\n function handleScrollY(e: Event) {\n e.preventDefault();\n let scrollTop = 0;\n let offsetHeight = 0;\n const _target = target();\n\n if (_target) {\n scrollTop = getScrollTop(_target);\n offsetHeight = _target.offsetHeight || 0;\n }\n const nextShow = scrollTop > offsetHeight / 3 || scrollTop > local.visibilityHeight;\n\n if (Boolean(show()) !== nextShow) {\n setShow(nextShow);\n }\n return false;\n }\n\n onMount(() => {\n target().addEventListener('scroll', handleScrollY, false);\n });\n onCleanup(() => {\n target().removeEventListener('scroll', handleScrollY, false);\n });\n return (\n <Show when={show() !== null}>\n <Portal useShadow mount={local.mount}>\n <style textContent={baseStyle()} />\n <style textContent={themeStyle()} />\n <style textContent={style} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <div\n onAnimationEnd={exit}\n class={cx('back-top', local.class)}\n classList={{\n 'back-top-out': show() === false,\n }}\n onClick={handleBackTop}\n style={{ 'z-index': getMaxZindex().toString() }}\n {...other}\n />\n </Portal>\n </Show>\n );\n}\n\nexport type BackTopElement = CustomElement<BackTopProps>;\n\ncustomElement<BackTopProps>(\n 'n-back-top',\n {\n class: void 0,\n css: void 0,\n visibilityHeight: void 0,\n mount: void 0,\n target: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n\n if (!el.mount) {\n el.style.position = 'sticky';\n el.style.bottom = '24px';\n el.style.right = '24px';\n el.style.display = 'block';\n el.style.pointerEvents = 'none';\n }\n const props = mergeProps(\n {\n css: el.css,\n visibilityHeight: el.visibilityHeight,\n mount: el.renderRoot as HTMLElement,\n target: el.target,\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return <BackTop {...props} />;\n },\n);\nexport default BackTop;\n"],"names":["Show","createEffect","createMemo","createSignal","mergeProps","onCleanup","onMount","splitProps","getMaxZindex","getScrollTop","isFunction","css","cx","customElement","Portal","style","theme","BackTop","_","baseStyle","isDark","local","other","target","window","visibilityHeight","show","setShow","themeStyle","bg","handleBackTop","scrollTo","top","behavior","exit","handleScrollY","e","preventDefault","scrollTop","offsetHeight","_target","nextShow","Boolean","addEventListener","removeEventListener","mount","class","toString","opt","el","element","position","bottom","right","display","pointerEvents","props","renderRoot","removeAttribute"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/back-top/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n splitProps,\n} from 'solid-js';\nimport { Portal } from 'solid-js/web';\nimport { getMaxZindex, getScrollTop, isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport theme from '../theme';\n\nimport { style } from './style';\n\nexport interface BackTopProps {\n /** 设置需要监听其滚动事件的元素\n * @default window\n */\n target?: HTMLElement | (() => HTMLElement | undefined);\n /** 挂载到指定的元素\n * @default body\n */\n mount?: HTMLElement;\n /** 滚动高度达到此参数值才出现 BackTop */\n visibilityHeight?: number;\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n}\n\nfunction BackTop(_: BackTopProps) {\n const { baseStyle, isDark } = theme;\n const props = mergeProps({ target: window as unknown as HTMLElement, visibilityHeight: 400 }, _);\n const [local, other] = splitProps(props, ['class', 'target', 'mount', 'css', 'visibilityHeight']);\n const [show, setShow] = createSignal<boolean | null>(null);\n const target = createMemo(() => (isFunction(local.target) ? local.target() : local.target));\n\n const themeStyle = createMemo(() => {\n const bg = isDark() ? 'rgb(255 255 255 / 45%)' : 'var(--primary-border)';\n\n return `:host {--back-top-bg: ${bg};}`;\n });\n\n function handleBackTop() {\n target()?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n function exit() {\n if (show() === false) {\n setShow(null);\n }\n }\n function handleScrollY(e: Event) {\n e.preventDefault();\n let scrollTop = 0;\n let offsetHeight = 0;\n const _target = target();\n\n if (_target) {\n scrollTop = getScrollTop(_target);\n offsetHeight = _target.offsetHeight || 0;\n }\n const nextShow = scrollTop > offsetHeight / 3 || scrollTop > local.visibilityHeight;\n\n if (Boolean(show()) !== nextShow) {\n setShow(nextShow);\n }\n return false;\n }\n\n onMount(() => {\n target()?.addEventListener('scroll', handleScrollY, false);\n });\n onCleanup(() => {\n target()?.removeEventListener('scroll', handleScrollY, false);\n });\n return (\n <Show when={show() !== null}>\n <Portal useShadow mount={local.mount}>\n <style textContent={baseStyle()} />\n <style textContent={themeStyle()} />\n <style textContent={style} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <div\n onAnimationEnd={exit}\n class={cx('back-top', local.class)}\n classList={{\n 'back-top-out': show() === false,\n }}\n onClick={handleBackTop}\n style={{ 'z-index': getMaxZindex().toString() }}\n {...other}\n />\n </Portal>\n </Show>\n );\n}\n\nexport type BackTopElement = CustomElement<BackTopProps>;\n\ncustomElement<BackTopProps>(\n 'n-back-top',\n {\n class: void 0,\n css: void 0,\n visibilityHeight: void 0,\n mount: void 0,\n target: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n\n if (!el.mount) {\n el.style.position = 'sticky';\n el.style.bottom = '24px';\n el.style.right = '24px';\n el.style.display = 'block';\n el.style.pointerEvents = 'none';\n }\n const props = mergeProps(\n {\n css: el.css,\n visibilityHeight: el.visibilityHeight,\n mount: el.renderRoot as HTMLElement,\n target: el.target,\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return <BackTop {...props} />;\n },\n);\nexport default BackTop;\n"],"names":["createEffect","createMemo","createSignal","mergeProps","onCleanup","onMount","Show","splitProps","Portal","getMaxZindex","getScrollTop","isFunction","css","cx","customElement","theme","style","BackTop","_","baseStyle","isDark","local","other","target","window","visibilityHeight","show","setShow","themeStyle","bg","handleBackTop","scrollTo","top","behavior","exit","handleScrollY","e","preventDefault","scrollTop","offsetHeight","_target","nextShow","Boolean","addEventListener","removeEventListener","mount","class","toString","opt","el","element","position","bottom","right","display","pointerEvents","props","renderRoot","removeAttribute"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: 全局
3
+ title: 通用配置项
4
+ subtitle: Basic Config
5
+ icon: ⚙️
6
+ order: 0
7
+ ---
8
+
9
+ # 通用配置项
10
+
11
+ > 组件继承的类型你都可以在这里找到对应的描述
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 通用
3
+ title: 按钮
4
+ subtitle: n-button
5
+ icon: 💠
6
+ ---
7
+
8
+ # 按钮
9
+
10
+ 按钮用于开始一个即时操作,响应用户点击行为,触发相应的业务逻辑。
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: 基本使用
3
+ description: 内置 5 种类型:`default`、`primary`、`success`、`warning`、`error`。
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-button>按钮</n-button>
9
+ <n-button type="primary">按钮</n-button>
10
+ <n-button type="success">按钮</n-button>
11
+ <n-button type="warning">按钮</n-button>
12
+ <n-button type="error">按钮</n-button>
13
+ ```
14
+
15
+ ```jsx
16
+ <n-button>按钮</n-button>
17
+ <n-button type="primary">按钮</n-button>
18
+ <n-button type="success">按钮</n-button>
19
+ <n-button type="warning">按钮</n-button>
20
+ <n-button type="error">按钮</n-button>
21
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: 块状按钮
3
+ description: 添加 `block` 属性将使按钮适合其父宽度。
4
+ order: 6
5
+ ---
6
+
7
+ ```html
8
+ <n-button block="true">一行</n-button>
9
+ <n-button type="primary" block="true">一行</n-button>
10
+ <n-button type="success" block="true">一行</n-button>
11
+ <n-button type="warning" block="true">一行</n-button>
12
+ <n-button type="error" block="true">一行</n-button>
13
+ <n-button link="true" block="true">一行</n-button>
14
+ ```
15
+
16
+ ```jsx
17
+ <n-button block>一行</n-button>
18
+ <n-button type="primary" block>
19
+ 一行
20
+ </n-button>
21
+ <n-button type="success" block>
22
+ 一行
23
+ </n-button>
24
+ <n-button type="error" block>
25
+ 一行
26
+ </n-button>
27
+ <n-button type="warning" block>
28
+ 一行
29
+ </n-button>
30
+ <n-button link block>
31
+ 一行
32
+ </n-button>
33
+ ```
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: 圆形按钮
3
+ description: 添加 `circle` 属性将按钮设置成圆形,通常在只有图标的按钮上使用
4
+ order: 5
5
+ ---
6
+
7
+ ```html
8
+ <n-button circle="true">🤔</n-button>
9
+ <n-button type="primary" circle="true">🤔</n-button>
10
+ <n-button type="success" circle="true">🤔</n-button>
11
+ <n-button type="warning" circle="true">🤔</n-button>
12
+ <n-button type="error" circle="true">🤔</n-button>
13
+ ```
14
+
15
+ ```jsx
16
+ <n-button circle>🤔</n-button>
17
+ <n-button type="primary" circle>🤔</n-button>
18
+ <n-button type="success" circle>🤔</n-button>
19
+ <n-button type="warning" circle>🤔</n-button>
20
+ <n-button type="error" circle>🤔</n-button>
21
+ ```
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: 危险按钮
3
+ description: 添加 `danger` 属性将按钮标记为危险操作
4
+ order: 8
5
+ ---
6
+
7
+ ```html
8
+ <n-button danger="true">default</n-button>
9
+ <n-button fill="true" danger="true"> fill </n-button>
10
+ <n-button dashed="true" danger="true"> dashed </n-button>
11
+ <n-button ghost="true" danger="true"> ghost </n-button>
12
+ <n-button flat="true" danger="true"> flat </n-button>
13
+ <n-button link="true" danger="true"> link </n-button>
14
+ ```
15
+
16
+ ```jsx
17
+ <n-button danger>default</n-button>
18
+ <n-button fill danger>fill</n-button>
19
+ <n-button dashed danger>dashed</n-button>
20
+ <n-button ghost danger>ghost</n-button>
21
+ <n-button flat danger>flat</n-button>
22
+ <n-button link danger>link</n-button>
23
+ ```
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: 虚线按钮
3
+ description: 添加 `dashed` 属性将按钮的边框设置成虚线
4
+ order: 9
5
+ ---
6
+
7
+ ```html
8
+ <n-button dashed="true" ghost="true">虚线</n-button>
9
+ <n-button type="primary" dashed="true" ghost="true">虚线</n-button>
10
+ <n-button type="success" dashed="true" ghost="true">虚线</n-button>
11
+ <n-button type="warning" dashed="true" ghost="true">虚线</n-button>
12
+ <n-button type="error" dashed="true" ghost="true">虚线</n-button>
13
+ ```
14
+
15
+ ```jsx
16
+ <n-button dashed ghost>虚线</n-button>
17
+ <n-button type="primary" dashed ghost>虚线</n-button>
18
+ <n-button type="success" dashed ghost>虚线</n-button>
19
+ <n-button type="warning" dashed ghost>虚线</n-button>
20
+ <n-button type="error" dashed ghost>虚线</n-button>
21
+ ```
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: 不可用状态
3
+ description: 添加 `disabled` 属性即可让按钮处于不可用状态,同时按钮样式也会改变
4
+ order: 11
5
+ ---
6
+
7
+ ```html
8
+ <n-button disabled="true">normal [disabled]</n-button>
9
+ <n-button type="primary" disabled="true"> primary </n-button>
10
+ <n-button disabled="true" fill="true"> fill </n-button>
11
+ <n-button disabled="true" link="true"> link </n-button>
12
+ <n-button disabled="true" type="primary" flat="true"> flat </n-button>
13
+ <n-button disabled="true" dashed="true"> dashed </n-button>
14
+ <div style="background-color: #827f7f; padding: 8px;">
15
+ <n-button type="primary" disabled="true" ghost="true">
16
+ ghost
17
+ <!-- 注释 -->
18
+ </n-button>
19
+ </div>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-button disabled>normal [disabled]</n-button>
24
+ <n-button type="primary" disabled> primary </n-button>
25
+ <n-button disabled fill> fill </n-button>
26
+ <n-button disabled link> link </n-button>
27
+ <n-button disabled type="primary" flat> flat </n-button>
28
+ <n-button disabled dashed> dashed </n-button>
29
+ <div style={{ 'background-color': '#827f7f', padding: '8px' }}>
30
+ <n-button type="primary" disabled ghost>
31
+ ghost
32
+ {/* 注释 */}
33
+ </n-button>
34
+ </div>
35
+ ```