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,27 @@
1
+ ---
2
+ title: 基本使用
3
+ description: 文本的基本格式
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-typography>normal text</n-typography>
9
+ <n-typography type="secondary">secondary text</n-typography>
10
+ <n-typography type="success">success text</n-typography>
11
+ <n-typography type="error">danger text</n-typography>
12
+ <n-typography type="warning">warning text</n-typography>
13
+ <n-typography type="primary">primary text</n-typography>
14
+ <n-typography type="primary" disabled="true"> disabled text </n-typography>
15
+ ```
16
+
17
+ ```jsx
18
+ <n-typography>normal text</n-typography>
19
+ <n-typography type="secondary">secondary text</n-typography>
20
+ <n-typography type="success">success text</n-typography>
21
+ <n-typography type="error">danger text</n-typography>
22
+ <n-typography type="warning">warning text</n-typography>
23
+ <n-typography type="primary">primary text</n-typography>
24
+ <n-typography type="primary" disabled>
25
+ disabled text
26
+ </n-typography>
27
+ ```
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: 自定义标签
3
+ description: 添加 `tag` 属性设置自定义标签类型
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-typography tag="mark">mark</n-typography>
9
+ <n-typography tag="u">underline</n-typography>
10
+ <n-typography tag="strong">strong</n-typography>
11
+ <n-typography tag="del">delete</n-typography>
12
+ <n-typography tag="i">italic</n-typography>
13
+ <n-typography tag="kbd">keyboard</n-typography>
14
+ <n-typography tag="a">link</n-typography>
15
+ ```
16
+
17
+ ```jsx
18
+ <n-typography tag="mark">mark</n-typography>
19
+ <n-typography tag="u">underline</n-typography>
20
+ <n-typography tag="strong">strong</n-typography>
21
+ <n-typography tag="del">delete</n-typography>
22
+ <n-typography tag="i">italic</n-typography>
23
+ <n-typography tag="kbd">keyboard</n-typography>
24
+ <n-typography tag="a">link</n-typography>
25
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: 超出隐藏
3
+ description: 添加 `truncated` 属性启用文本超出隐藏, 添加 `truncated.rows` 属性设置文本超出多少行后隐藏
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-typography truncated="2">Don’t <n-typography type="success">compare</n-typography> your life with others. There’s no comparison between the <n-typography type="warning">sun</n-typography> and the <n-typography type="warning">moon</n-typography>. They shine when it’s their time.</n-typography>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-typography truncated={2}>
13
+ Don’t <n-typography type="success">compare</n-typography> your life with others. There’s no
14
+ comparison between the <n-typography type="warning">sun</n-typography> and the
15
+ <n-typography type="warning">moon</n-typography>. They shine when it’s their time.
16
+ </n-typography>
17
+ ```
@@ -1,10 +1,10 @@
1
- import{template as e}from"solid-js/web";import{effect as t}from"solid-js/web";import{createComponent as r}from"solid-js/web";let o=e("<style> ");import{Show as l,createEffect as i,createMemo as s,mergeProps as d}from"solid-js";import{css as a,cx as n}from"@moneko/css";import{customElement as c}from"solid-element";import{Dynamic as p}from"solid-js/web";import m from"../theme";function u(e){let{baseStyle:i}=m,c=d({type:"text",tag:"span"},e),u=s(()=>{let t="secondary"===e.type?"--text-secondary":`--${e.type}-color`;"error"===e.type?t="--error-color":e.disabled&&(t="--disable-color");let r="";return e.truncated&&(r=a`
1
+ import{template as e}from"solid-js/web";import{effect as t}from"solid-js/web";import{createComponent as r}from"solid-js/web";let o=e("<style> ");import{createEffect as l,createMemo as i,mergeProps as s,Show as d}from"solid-js";import{Dynamic as a}from"solid-js/web";import{css as n,cx as c}from"@moneko/css";import{customElement as p}from"solid-element";import m from"../theme";function u(e){let{baseStyle:l}=m,p=s({type:"text",tag:"span"},e),u=i(()=>{let t="secondary"===e.type?"--text-secondary":`--${e.type}-color`;"error"===e.type?t="--error-color":e.disabled&&(t="--disable-color");let r="";return e.truncated&&(r=n`
2
2
  overflow: hidden;
3
3
  /* stylelint-disable-next-line */
4
4
  display: -webkit-box;
5
5
  -webkit-box-orient: block-axis;
6
6
  -webkit-line-clamp: ${"number"==typeof e.truncated&&e.truncated||1};
7
- `),a`
7
+ `),n`
8
8
  :host {
9
9
  display: inline-block;
10
10
  max-inline-size: 100%;
@@ -18,5 +18,5 @@ import{template as e}from"solid-js/web";import{effect as t}from"solid-js/web";im
18
18
  cursor: ${e.disabled?"not-allowed":"auto"};
19
19
  ${r}
20
20
  }
21
- `});return[(()=>{let e=o(),r=e.firstChild;return t(()=>r.data=i()),e})(),(()=>{let e=o(),r=e.firstChild;return t(()=>r.data=u()),e})(),r(l,{get when(){return e.css},get children(){let r=o(),l=r.firstChild;return t(()=>l.data=a(e.css)),r}}),r(p,{get component(){return c.tag},get class(){return n("typography",c.class)},get style(){return c.style},get children(){return c.children}})]}c("n-typography",{class:void 0,css:void 0,type:void 0,truncated:void 0,tag:void 0,disabled:void 0,style:void 0},(e,t)=>{let o=t.element,l=d({children:[...o.childNodes.values()]},e);return i(()=>{o.replaceChildren()}),r(u,l)});export default u;
21
+ `});return[(()=>{let e=o(),r=e.firstChild;return t(()=>r.data=l()),e})(),(()=>{let e=o(),r=e.firstChild;return t(()=>r.data=u()),e})(),r(d,{get when(){return e.css},get children(){let r=o(),l=r.firstChild;return t(()=>l.data=n(e.css)),r}}),r(a,{get component(){return p.tag},get class(){return c("typography",p.class)},get style(){return p.style},get children(){return p.children}})]}p("n-typography",{class:void 0,css:void 0,type:void 0,truncated:void 0,tag:void 0,disabled:void 0,style:void 0},(e,t)=>{let o=t.element,i=s({children:[...o.childNodes.values()]},e);return l(()=>{o.replaceChildren()}),r(u,i)});export default u;
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/typography/index.tsx"],"sourcesContent":["import { Show, createEffect, createMemo, mergeProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { Dynamic } from 'solid-js/web';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface TypographyProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 文本格式\n * @default 'text'\n */\n type?: 'primary' | 'warning' | 'success' | 'error' | 'text' | 'secondary';\n /** 启用超出隐藏\n * @default false\n */\n truncated?: boolean | number;\n /** 自定义标签名\n * @default 'span'\n */\n tag?: string;\n /** 禁用 */\n disabled?: boolean;\n children?: JSX.Element;\n style?: Record<string, string | number>;\n}\n\nfunction Typography(props: TypographyProps) {\n const { baseStyle } = theme;\n const _ = mergeProps(\n {\n type: 'text',\n tag: 'span',\n },\n props,\n );\n const customCss = createMemo(() => {\n let color = props.type === 'secondary' ? '--text-secondary' : `--${props.type}-color`;\n\n if (props.type === 'error') {\n color = '--error-color';\n } else if (props.disabled) {\n color = '--disable-color';\n }\n let truncated = '';\n\n if (props.truncated) {\n truncated = css`\n overflow: hidden;\n /* stylelint-disable-next-line */\n display: -webkit-box;\n -webkit-box-orient: block-axis;\n -webkit-line-clamp: ${(typeof props.truncated === 'number' && props.truncated) || 1};\n `;\n }\n\n return css`\n :host {\n display: inline-block;\n max-inline-size: 100%;\n }\n\n .typography {\n font-size: var(--font-size);\n word-break: break-word;\n word-wrap: break-word;\n color: var(${color});\n cursor: ${props.disabled ? 'not-allowed' : 'auto'};\n ${truncated}\n }\n `;\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={customCss()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Dynamic component={_.tag} class={cx('typography', _.class)} style={_.style}>\n {_.children}\n </Dynamic>\n </>\n );\n}\n\nexport type TypographyElement = CustomElement<TypographyProps>;\n\ncustomElement<TypographyProps>(\n 'n-typography',\n {\n class: void 0,\n css: void 0,\n type: void 0,\n truncated: void 0,\n tag: void 0,\n disabled: void 0,\n style: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n children: [...el.childNodes.values()],\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n });\n return <Typography {...props} />;\n },\n);\nexport default Typography;\n"],"names":["Show","createEffect","createMemo","mergeProps","css","cx","customElement","Dynamic","theme","Typography","props","baseStyle","_","type","tag","customCss","color","disabled","truncated","class","style","children","opt","el","element","childNodes","values","replaceChildren"],"mappings":"gJAAA,QAASA,QAAAA,CAAI,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACtE,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAASC,WAAAA,CAAO,KAAQ,cAAe,AACvC,QAAOC,MAAW,UAAW,CA0B7B,SAASC,EAAWC,CAAsB,EACxC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGH,EAChBI,EAAIT,EACR,CACEU,KAAM,OACNC,IAAK,MACP,EACAJ,GAEIK,EAAYb,EAAW,KAC3B,IAAIc,EAAQN,AAAe,cAAfA,EAAMG,IAAI,CAAmB,mBAAqB,CAAC,EAAE,EAAEH,EAAMG,IAAI,CAAC,MAAM,CAAC,AAEjFH,AAAe,CAAA,UAAfA,EAAMG,IAAI,CACZG,EAAQ,gBACCN,EAAMO,QAAQ,EACvBD,CAAAA,EAAQ,iBAAgB,EAE1B,IAAIE,EAAY,GAYhB,OAVIR,EAAMQ,SAAS,EACjBA,CAAAA,EAAYd,CAAG,CAAC;;;;;4BAKM,EAAE,AAA4B,UAA3B,OAAOM,EAAMQ,SAAS,EAAiBR,EAAMQ,SAAS,EAAK,EAAE;MACtF,CAAC,AAAD,EAGKd,CAAG,CAAC;;;;;;;;;;mBAUI,EAAEY,EAAM;gBACX,EAAEN,EAAMO,QAAQ,CAAG,cAAgB,OAAO;QAClD,EAAEC,EAAU;;IAEhB,CAAC,AACH,GAEA,0DAEwBP,8DACAI,aACnBf,qBAAWU,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,UAElCG,0BAAmBK,EAAEE,GAAG,qBAAST,EAAG,aAAcO,EAAEO,KAAK,sBAAUP,EAAEQ,KAAK,wBACxER,EAAES,QAAQ,IAInB,CAIAf,EACE,eACA,CACEa,MAAO,KAAK,EACZf,IAAK,KAAK,EACVS,KAAM,KAAK,EACXK,UAAW,KAAK,EAChBJ,IAAK,KAAK,EACVG,SAAU,KAAK,EACfG,MAAO,KAAK,CACd,EACA,CAACR,EAAGU,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBd,EAAQP,EACZ,CACEkB,SAAU,IAAIE,EAAGE,UAAU,CAACC,MAAM,GAAG,AACvC,EACAd,GAMF,OAHAX,EAAa,KACXsB,EAAGI,eAAe,EACpB,KACQlB,EAAeC,EACzB,EAEF,gBAAeD,CAAW"}
1
+ {"version":3,"sources":["../../components/typography/index.tsx"],"sourcesContent":["import { createEffect, createMemo, mergeProps, Show } from 'solid-js';\nimport { Dynamic } from 'solid-js/web';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport theme from '../theme';\n\nexport interface TypographyProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 文本格式\n * @default 'text'\n */\n type?: 'primary' | 'warning' | 'success' | 'error' | 'text' | 'secondary';\n /** 启用超出隐藏\n * @default false\n */\n truncated?: boolean | number;\n /** 自定义标签名\n * @default 'span'\n */\n tag?: string;\n /** 禁用 */\n disabled?: boolean;\n children?: JSX.Element;\n style?: Record<string, string | number>;\n}\n\nfunction Typography(props: TypographyProps) {\n const { baseStyle } = theme;\n const _ = mergeProps(\n {\n type: 'text',\n tag: 'span',\n },\n props,\n );\n const customCss = createMemo(() => {\n let color = props.type === 'secondary' ? '--text-secondary' : `--${props.type}-color`;\n\n if (props.type === 'error') {\n color = '--error-color';\n } else if (props.disabled) {\n color = '--disable-color';\n }\n let truncated = '';\n\n if (props.truncated) {\n truncated = css`\n overflow: hidden;\n /* stylelint-disable-next-line */\n display: -webkit-box;\n -webkit-box-orient: block-axis;\n -webkit-line-clamp: ${(typeof props.truncated === 'number' && props.truncated) || 1};\n `;\n }\n\n return css`\n :host {\n display: inline-block;\n max-inline-size: 100%;\n }\n\n .typography {\n font-size: var(--font-size);\n word-break: break-word;\n word-wrap: break-word;\n color: var(${color});\n cursor: ${props.disabled ? 'not-allowed' : 'auto'};\n ${truncated}\n }\n `;\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={customCss()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Dynamic component={_.tag} class={cx('typography', _.class)} style={_.style}>\n {_.children}\n </Dynamic>\n </>\n );\n}\n\nexport type TypographyElement = CustomElement<TypographyProps>;\n\ncustomElement<TypographyProps>(\n 'n-typography',\n {\n class: void 0,\n css: void 0,\n type: void 0,\n truncated: void 0,\n tag: void 0,\n disabled: void 0,\n style: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n children: [...el.childNodes.values()],\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n });\n return <Typography {...props} />;\n },\n);\nexport default Typography;\n"],"names":["createEffect","createMemo","mergeProps","Show","Dynamic","css","cx","customElement","theme","Typography","props","baseStyle","_","type","tag","customCss","color","disabled","truncated","class","style","children","opt","el","element","childNodes","values","replaceChildren"],"mappings":"gJAAA,QAASA,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,CAAEC,cAAAA,CAAU,CAAEC,QAAAA,CAAI,KAAQ,UAAW,AACtE,QAASC,WAAAA,CAAO,KAAQ,cAAe,AACvC,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAG9C,QAAOC,MAAW,UAAW,CAyB7B,SAASC,EAAWC,CAAsB,EACxC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGH,EAChBI,EAAIV,EACR,CACEW,KAAM,OACNC,IAAK,MACP,EACAJ,GAEIK,EAAYd,EAAW,KAC3B,IAAIe,EAAQN,AAAe,cAAfA,EAAMG,IAAI,CAAmB,mBAAqB,CAAC,EAAE,EAAEH,EAAMG,IAAI,CAAC,MAAM,CAAC,AAEjFH,AAAe,CAAA,UAAfA,EAAMG,IAAI,CACZG,EAAQ,gBACCN,EAAMO,QAAQ,EACvBD,CAAAA,EAAQ,iBAAgB,EAE1B,IAAIE,EAAY,GAYhB,OAVIR,EAAMQ,SAAS,EACjBA,CAAAA,EAAYb,CAAG,CAAC;;;;;4BAKM,EAAE,AAA4B,UAA3B,OAAOK,EAAMQ,SAAS,EAAiBR,EAAMQ,SAAS,EAAK,EAAE;MACtF,CAAC,AAAD,EAGKb,CAAG,CAAC;;;;;;;;;;mBAUI,EAAEW,EAAM;gBACX,EAAEN,EAAMO,QAAQ,CAAG,cAAgB,OAAO;QAClD,EAAEC,EAAU;;IAEhB,CAAC,AACH,GAEA,0DAEwBP,8DACAI,aACnBZ,qBAAWO,EAAML,GAAG,8DACCA,EAAIK,EAAML,GAAG,UAElCD,0BAAmBQ,EAAEE,GAAG,qBAASR,EAAG,aAAcM,EAAEO,KAAK,sBAAUP,EAAEQ,KAAK,wBACxER,EAAES,QAAQ,IAInB,CAIAd,EACE,eACA,CACEY,MAAO,KAAK,EACZd,IAAK,KAAK,EACVQ,KAAM,KAAK,EACXK,UAAW,KAAK,EAChBJ,IAAK,KAAK,EACVG,SAAU,KAAK,EACfG,MAAO,KAAK,CACd,EACA,CAACR,EAAGU,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBd,EAAQR,EACZ,CACEmB,SAAU,IAAIE,EAAGE,UAAU,CAACC,MAAM,GAAG,AACvC,EACAd,GAMF,OAHAZ,EAAa,KACXuB,EAAGI,eAAe,EACpB,KACQlB,EAAeC,EACzB,EAEF,gBAAeD,CAAW"}
@@ -0,0 +1,9 @@
1
+ import neko from 'eslint-config-neko';
2
+ import solid from 'eslint-plugin-solid/configs/typescript';
3
+
4
+ const conf = [
5
+ ...neko.configs.recommended,
6
+ { ignores: ['**/**/*.mdx?', 'lib', 'docs', 'coverage', 'prism.js'] },
7
+ ];
8
+
9
+ export default conf.concat(solid);
@@ -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 +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":["style","css","moreCss","defaultProps","data","size","class","maxCount","AvatarGroup","_props","props","mergeProps","local","other","splitProps","createMemo","showAvatar","slice","more","_data","len","length","Show","cx","For","a","customElement"],"mappings":"kGAuHA,+CAAA,+CAvH8D,sBACtC,yBACM,yBACvB,qBACA,mPAGDA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBlB,CAAC,CAEKC,EAAUD,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;AAgBpB,CAAC,CAkBKE,EAAiC,CACrCC,KAAM,EAAE,CACRC,KAAM,KAAK,EACXC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfN,IAAK,KAAK,CACZ,EAEA,SAASO,EAAYC,CAAwB,EAC3C,IAAMC,EAAQC,GAAAA,YAAU,EAACR,EAAcM,GACjC,CAACG,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACJ,EAAO,CAAC,OAAQ,WAAY,QAAS,OAAQ,MAAM,EAC/EN,EAAOW,GAAAA,YAAU,EAAC,IAAMH,EAAMR,IAAI,EAAI,EAAE,EACxCY,EAAaD,GAAAA,YAAU,EAAC,IAAMX,IAAOa,KAAK,CAAC,EAAGL,EAAML,QAAQ,GAC5DW,EAAOH,GAAAA,YAAU,EAAC,KACtB,IAAMI,EAAQf,IACRgB,EAAMD,EAAME,MAAM,CAAIT,CAAAA,EAAML,QAAQ,EAAIY,EAAME,MAAM,AAAD,SAEzD,AAAID,EAAM,EACDD,EAAMF,KAAK,CAAC,CAACG,GAEf,EAAE,AACX,GAEA,4CAEwBpB,8BACnBsB,MAAI,oBAAOV,EAAMX,GAAG,wEACCA,GAAAA,KAAG,EAACW,EAAMX,GAAG,8DAE1BY,qBAAcU,GAAAA,IAAE,EAAC,QAASX,EAAMN,KAAK,iDAC3CkB,KAAG,oBAAOR,cAAe,AAACS,yDAAoBA,qBAASb,EAAMP,IAAI,yFACjEiB,MAAI,oBAAOJ,IAAOG,MAAM,yDAEd,CAAA,aAEInB,uEAGNsB,KAAG,oBAAON,cAAS,AAACO,yDAAoBA,qBAASb,EAAMP,IAAI,kIAIhDO,EAAMP,IAAI,GAAY,CAAC,CAAC,EAAEa,IAAOG,MAAM,CAAC,CAAC,oHAMrE,CAEAK,GAAAA,eAAa,EAAmB,iBAAkBvB,EAAcK,SAEhE,EAAeA"}
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":["style","css","moreCss","defaultProps","data","size","class","maxCount","AvatarGroup","_props","props","mergeProps","local","other","splitProps","createMemo","showAvatar","slice","more","_data","len","length","Show","cx","For","a","customElement"],"mappings":"kGAyHA,+CAAA,+CAzH8D,sBACtC,yBACM,yBAIvB,qBACA,mPAEDA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AAwBlB,CAAC,CAEKC,EAAUD,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;AAgBpB,CAAC,CAkBKE,EAAiC,CACrCC,KAAM,EAAE,CACRC,KAAM,KAAK,EACXC,MAAO,KAAK,EACZC,SAAU,KAAK,EACfN,IAAK,KAAK,CACZ,EAEA,SAASO,EAAYC,CAAwB,EAC3C,IAAMC,EAAQC,GAAAA,YAAU,EAACR,EAAcM,GACjC,CAACG,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACJ,EAAO,CAAC,OAAQ,WAAY,QAAS,OAAQ,MAAM,EAC/EN,EAAOW,GAAAA,YAAU,EAAC,IAAMH,EAAMR,IAAI,EAAI,EAAE,EACxCY,EAAaD,GAAAA,YAAU,EAAC,IAAMX,IAAOa,KAAK,CAAC,EAAGL,EAAML,QAAQ,GAC5DW,EAAOH,GAAAA,YAAU,EAAC,KACtB,IAAMI,EAAQf,IACRgB,EAAMD,EAAME,MAAM,CAAIT,CAAAA,EAAML,QAAQ,EAAIY,EAAME,MAAM,AAAD,SAEzD,AAAID,EAAM,EACDD,EAAMF,KAAK,CAAC,CAACG,GAEf,EAAE,AACX,GAEA,4CAEwBpB,8BACnBsB,MAAI,oBAAOV,EAAMX,GAAG,wEACCA,GAAAA,KAAG,EAACW,EAAMX,GAAG,8DAE1BY,qBAAcU,GAAAA,IAAE,EAAC,QAASX,EAAMN,KAAK,iDAC3CkB,KAAG,oBAAOR,cAAe,AAACS,yDAAoBA,qBAASb,EAAMP,IAAI,yFACjEiB,MAAI,oBAAOJ,IAAOG,MAAM,yDAEd,CAAA,aAEInB,uEAGNsB,KAAG,oBAAON,cAAS,AAACO,yDAAoBA,qBAASb,EAAMP,IAAI,kIAIhDO,EAAMP,IAAI,GAAY,CAAC,CAAC,EAAEa,IAAOG,MAAM,CAAC,CAAC,oHAMrE,CAEAK,GAAAA,eAAa,EAAmB,iBAAkBvB,EAAcK,SAEhE,EAAeA"}
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return f}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),s=require("solid-element"),a=require("./style"),n=i(require("../img")),l=i(require("../theme"));function i(e){return e&&e.__esModule?e:{default:e}}const o=(0,e.template)("<style> "),c=(0,e.template)("<style>"),u=(0,e.template)("<span>"),d=(0,e.template)("<div>"),h=(0,e.template)('<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">');function p(s){let i,p;let{baseStyle:f}=l.default,m={small:"24px",normal:"32px",large:"40px"},L=(0,t.mergeProps)({size:32},s),[y,v]=(0,t.splitProps)(L,["class","css","src","alt","size","color","username"]),[g,A]=(0,t.createSignal)(1),C=(0,t.createMemo)(()=>{let e=m[y.size]||`${y.size}px`;return(0,r.css)`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return f}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),s=require("solid-element"),a=i(require("../img")),n=i(require("../theme")),l=require("./style");function i(e){return e&&e.__esModule?e:{default:e}}const o=(0,e.template)("<style> "),c=(0,e.template)("<style>"),u=(0,e.template)("<span>"),d=(0,e.template)("<div>"),h=(0,e.template)('<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">');function p(s){let i,p;let{baseStyle:f}=n.default,m={small:"24px",normal:"32px",large:"40px"},L=(0,t.mergeProps)({size:32},s),[y,v]=(0,t.splitProps)(L,["class","css","src","alt","size","color","username"]),[g,A]=(0,t.createSignal)(1),C=(0,t.createMemo)(()=>{let e=m[y.size]||`${y.size}px`;return(0,r.css)`
2
2
  .avatar {
3
3
  --avatar-color: ${y.color};
4
4
 
5
5
  inline-size: ${e};
6
6
  block-size: ${e};
7
7
  }
8
- `});return(0,t.createEffect)(()=>{p&&i&&p.clientWidth+6>i.clientWidth&&A((i.clientWidth-6)/p.clientWidth)}),[(()=>{let t=o(),r=t.firstChild;return(0,e.effect)(()=>r.data=f()),t})(),(()=>{let e=c();return e.textContent=a.style,e})(),(()=>{let t=o(),r=t.firstChild;return(0,e.effect)(()=>r.data=C()),t})(),(0,e.createComponent)(t.Show,{get when(){return y.css},get children(){let t=o(),s=t.firstChild;return(0,e.effect)(()=>s.data=(0,r.css)(y.css)),t}}),(()=>{let s=d(),a=i;return"function"==typeof a?(0,e.use)(a,s):i=s,(0,e.spread)(s,(0,e.mergeProps)({get class(){return(0,r.cx)("avatar",y.class)}},v),!1,!0),(0,e.insert)(s,(0,e.createComponent)(t.Switch,{get children(){return[(0,e.createComponent)(t.Match,{get when(){return"string"==typeof y.src},get children(){return(0,e.createComponent)(n.default,{get src(){return y.src},get alt(){return y.alt},style:{"z-index":9999}})}}),(0,e.createComponent)(t.Match,{get when(){return y.username},get children(){let t=u(),r=p;return"function"==typeof r?(0,e.use)(r,t):p=t,(0,e.insert)(t,()=>y.username),(0,e.effect)(()=>(g(),t.style.setProperty("transform",`scale(${g()})`))),t}})]}})),s})(),(()=>{let e=h();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})()]}(0,s.customElement)("n-avatar",{css:void 0,size:void 0,src:void 0,alt:void 0,username:void 0,color:void 0,class:void 0},p);const f=p;
8
+ `});return(0,t.createEffect)(()=>{p&&i&&p.clientWidth+6>i.clientWidth&&A((i.clientWidth-6)/p.clientWidth)}),[(()=>{let t=o(),r=t.firstChild;return(0,e.effect)(()=>r.data=f()),t})(),(()=>{let e=c();return e.textContent=l.style,e})(),(()=>{let t=o(),r=t.firstChild;return(0,e.effect)(()=>r.data=C()),t})(),(0,e.createComponent)(t.Show,{get when(){return y.css},get children(){let t=o(),s=t.firstChild;return(0,e.effect)(()=>s.data=(0,r.css)(y.css)),t}}),(()=>{let s=d(),n=i;return"function"==typeof n?(0,e.use)(n,s):i=s,(0,e.spread)(s,(0,e.mergeProps)({get class(){return(0,r.cx)("avatar",y.class)}},v),!1,!0),(0,e.insert)(s,(0,e.createComponent)(t.Switch,{get children(){return[(0,e.createComponent)(t.Match,{get when(){return"string"==typeof y.src},get children(){return(0,e.createComponent)(a.default,{get src(){return y.src},get alt(){return y.alt},style:{"z-index":9999}})}}),(0,e.createComponent)(t.Match,{get when(){return y.username},get children(){let t=u(),r=p;return"function"==typeof r?(0,e.use)(r,t):p=t,(0,e.insert)(t,()=>y.username),(0,e.effect)(()=>(g(),t.style.setProperty("transform",`scale(${g()})`))),t}})]}})),s})(),(()=>{let e=h();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})()]}(0,s.customElement)("n-avatar",{css:void 0,size:void 0,src:void 0,alt:void 0,username:void 0,color:void 0,class:void 0},p);const f=p;
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":["Avatar","_","box","label","baseStyle","theme","avatarSize","small","normal","large","props","mergeProps","size","local","other","splitProps","scale","setScale","createSignal","_style","createMemo","css","color","createEffect","clientWidth","style","Show","cx","class","Switch","Match","src","Img","alt","username","customElement"],"mappings":"kGA0IA,+CAAA,+CAjIO,sBACiB,yBACM,2BACR,uBACN,uBACE,6jEAuBlB,SAASA,EAAOC,CAAc,MAkBxBC,EACAC,EAlBJ,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,SAAK,CACrBC,EAAqC,CACzCC,MAAO,OACPC,OAAQ,OACRC,MAAO,MACT,EAEMC,EAAQC,GAAAA,YAAU,EAAC,CAAEC,KAAM,EAAG,EAAGX,GACjC,CAACY,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACL,EAAO,CACvC,QACA,MACA,MACA,MACA,OACA,QACA,WACD,EAGK,CAACM,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAC,GAEjCC,EAASC,GAAAA,YAAU,EAAC,KACxB,IAAMR,EAAON,CAAU,CAACO,EAAMD,IAAI,CAAC,EAAI,CAAC,EAAEC,EAAMD,IAAI,CAAC,EAAE,CAAC,CAExD,MAAOS,GAAAA,KAAG,CAAA,CAAC;;wBAES,EAAER,EAAMS,KAAK,CAAC;;qBAEjB,EAAEV,EAAK;oBACR,EAAEA,EAAK;;IAEvB,CAAC,AACH,GAUA,MARAW,GAAAA,cAAY,EAAC,KACPpB,GAASD,GACPC,EAAMqB,WAAW,CAAG,EAAItB,EAAIsB,WAAW,EACzCP,EAAS,AAACf,CAAAA,EAAIsB,WAAW,CAAG,CAAA,EAAKrB,EAAMqB,WAAW,CAGxD,iEAIwBpB,gDACAqB,OAAK,oEACLN,iCACnBO,MAAI,oBAAOb,EAAMQ,GAAG,wEACCA,GAAAA,KAAG,EAACR,EAAMQ,GAAG,0BAEzBnB,4CAAAA,uDAAYyB,GAAAA,IAAE,EAAC,SAAUd,EAAMe,KAAK,IAAOd,+CAClDe,QAAM,8CACJC,OAAK,mBAAO,AAAqB,UAArB,OAAOjB,EAAMkB,GAAG,6CAC1BC,SAAG,mBAAMnB,EAAMkB,GAAG,mBAAOlB,EAAMoB,GAAG,QAAS,CAAE,UAAW,IAAK,6BAE/DH,OAAK,oBAAOjB,EAAMqB,QAAQ,6BACd/B,4CAAAA,uBACRU,EAAMqB,QAAQ,oBAD8BlB,oCAAT,CAAC,MAAM,EAAEA,IAAQ,CAAC,CAAC,+OA6BrE,CAEAmB,GAAAA,eAAa,EACX,WACA,CACEd,IAAK,KAAK,EACVT,KAAM,KAAK,EACXmB,IAAK,KAAK,EACVE,IAAK,KAAK,EACVC,SAAU,KAAK,EACfZ,MAAO,KAAK,EACZM,MAAO,KAAK,CACd,EACA5B,SAEF,EAAeA"}
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":["Avatar","_","box","label","baseStyle","theme","avatarSize","small","normal","large","props","mergeProps","size","local","other","splitProps","scale","setScale","createSignal","_style","createMemo","css","color","createEffect","clientWidth","style","Show","cx","class","Switch","Match","src","Img","alt","username","customElement"],"mappings":"kGA4IA,+CAAA,+CAnIO,sBACiB,yBACM,6BAEd,uBAEE,uBAEI,2jEAsBtB,SAASA,EAAOC,CAAc,MAkBxBC,EACAC,EAlBJ,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGC,SAAK,CACrBC,EAAqC,CACzCC,MAAO,OACPC,OAAQ,OACRC,MAAO,MACT,EAEMC,EAAQC,GAAAA,YAAU,EAAC,CAAEC,KAAM,EAAG,EAAGX,GACjC,CAACY,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACL,EAAO,CACvC,QACA,MACA,MACA,MACA,OACA,QACA,WACD,EAGK,CAACM,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAC,GAEjCC,EAASC,GAAAA,YAAU,EAAC,KACxB,IAAMR,EAAON,CAAU,CAACO,EAAMD,IAAI,CAAC,EAAI,CAAC,EAAEC,EAAMD,IAAI,CAAC,EAAE,CAAC,CAExD,MAAOS,GAAAA,KAAG,CAAA,CAAC;;wBAES,EAAER,EAAMS,KAAK,CAAC;;qBAEjB,EAAEV,EAAK;oBACR,EAAEA,EAAK;;IAEvB,CAAC,AACH,GAUA,MARAW,GAAAA,cAAY,EAAC,KACPpB,GAASD,GACPC,EAAMqB,WAAW,CAAG,EAAItB,EAAIsB,WAAW,EACzCP,EAAS,AAACf,CAAAA,EAAIsB,WAAW,CAAG,CAAA,EAAKrB,EAAMqB,WAAW,CAGxD,iEAIwBpB,gDACAqB,OAAK,oEACLN,iCACnBO,MAAI,oBAAOb,EAAMQ,GAAG,wEACCA,GAAAA,KAAG,EAACR,EAAMQ,GAAG,0BAEzBnB,4CAAAA,uDAAYyB,GAAAA,IAAE,EAAC,SAAUd,EAAMe,KAAK,IAAOd,+CAClDe,QAAM,8CACJC,OAAK,mBAAO,AAAqB,UAArB,OAAOjB,EAAMkB,GAAG,6CAC1BC,SAAG,mBAAMnB,EAAMkB,GAAG,mBAAOlB,EAAMoB,GAAG,QAAS,CAAE,UAAW,IAAK,6BAE/DH,OAAK,oBAAOjB,EAAMqB,QAAQ,6BACd/B,4CAAAA,uBACRU,EAAMqB,QAAQ,oBAD8BlB,oCAAT,CAAC,MAAM,EAAEA,IAAQ,CAAC,CAAC,+OA6BrE,CAEAmB,GAAAA,eAAa,EACX,WACA,CACEd,IAAK,KAAK,EACVT,KAAM,KAAK,EACXmB,IAAK,KAAK,EACVE,IAAK,KAAK,EACVC,SAAU,KAAK,EACfZ,MAAO,KAAK,EACZM,MAAO,KAAK,CACd,EACA5B,SAEF,EAAeA"}
@@ -1,4 +1,4 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"style",{enumerable:!0,get:function(){return n}});const t=require("@moneko/css"),i=(e=require("./favicon.svg"))&&e.__esModule?e:{default:e},r=`data:image/svg+xml;base64,${window.btoa(decodeURIComponent(i.default.replace("data:image/svg+xml,","")))}`,n=(0,t.css)`
1
+ "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"style",{enumerable:!0,get:function(){return r}});const t=require("@moneko/css"),i=(e=require("./favicon.svg"))&&e.__esModule?e:{default:e},r=(0,t.css)`
2
2
  .avatar {
3
3
  position: relative;
4
4
  display: inline-flex;
@@ -33,7 +33,7 @@
33
33
  }
34
34
 
35
35
  &::after {
36
- background: url(${r}) no-repeat center/contain;
36
+ background: url(${i.default}) 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":["style","faviconBg","window","btoa","decodeURIComponent","favicon","replace","css"],"mappings":"wGAOaA,6CAAAA,qBAPO,4BACA,8CAEdC,EAAY,CAAC,0BAA0B,EAAEC,OAAOC,IAAI,CACxDC,mBAAmBC,SAAO,CAACC,OAAO,CAAC,sBAAuB,MAC1D,CAAC,CAEUN,EAAQO,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmCH,EAAEN,EAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BlC,CAAC"}
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":["style","css","favicon"],"mappings":"wGAIaA,6CAAAA,qBAJO,4BAEA,8CAEPA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmCH,EAAEC,SAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BhC,CAAC"}
@@ -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
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return p}});const e=require("solid-js/web"),t=require("solid-js"),r=c(require("@moneko/common/lib/getMaxZindex")),n=c(require("@moneko/common/lib/getScrollTop")),o=c(require("@moneko/common/lib/isFunction")),i=require("@moneko/css"),s=require("solid-element"),l=require("./style"),u=c(require("../theme"));function c(e){return e&&e.__esModule?e:{default:e}}const a=(0,e.template)("<style> "),d=(0,e.template)("<style>"),m=(0,e.template)("<div>");function g(s){let{baseStyle:c,isDark:g}=u.default,p=(0,t.mergeProps)({target:window,visibilityHeight:400},s),[f,b]=(0,t.splitProps)(p,["class","target","mount","css","visibilityHeight"]),[v,h]=(0,t.createSignal)(null),y=(0,t.createMemo)(()=>(0,o.default)(f.target)?f.target():f.target),k=(0,t.createMemo)(()=>{let e=g()?"rgb(255 255 255 / 45%)":"var(--primary-border)";return`:host {--back-top-bg: ${e};}`});function q(){y()?.scrollTo({top:0,behavior:"smooth"})}function x(){!1===v()&&h(null)}function C(e){e.preventDefault();let t=0,r=0,o=y();o&&(t=(0,n.default)(o),r=o.offsetHeight||0);let i=t>r/3||t>f.visibilityHeight;return!!v()!==i&&h(i),!1}return(0,t.onMount)(()=>{y().addEventListener("scroll",C,!1)}),(0,t.onCleanup)(()=>{y().removeEventListener("scroll",C,!1)}),(0,e.createComponent)(t.Show,{get when(){return null!==v()},get children(){return(0,e.createComponent)(e.Portal,{useShadow:!0,get mount(){return f.mount},get children(){return[(()=>{let t=a(),r=t.firstChild;return(0,e.effect)(()=>r.data=c()),t})(),(()=>{let t=a(),r=t.firstChild;return(0,e.effect)(()=>r.data=k()),t})(),(()=>{let e=d();return e.textContent=l.style,e})(),(0,e.createComponent)(t.Show,{get when(){return f.css},get children(){let t=a(),r=t.firstChild;return(0,e.effect)(()=>r.data=(0,i.css)(f.css)),t}}),(()=>{let t=m();return(0,e.addEventListener)(t,"click",q,!0),(0,e.addEventListener)(t,"animationend",x),(0,e.spread)(t,(0,e.mergeProps)({get class(){return(0,i.cx)("back-top",f.class)},get classList(){return{"back-top-out":!1===v()}},get style(){return{"z-index":(0,r.default)().toString()}}},b),!1,!1),t})()]}})}})}(0,s.customElement)("n-back-top",{class:void 0,css:void 0,visibilityHeight:void 0,mount:void 0,target:void 0},(r,n)=>{let o=n.element;o.mount||(o.style.position="sticky",o.style.bottom="24px",o.style.right="24px",o.style.display="block",o.style.pointerEvents="none");let i=(0,t.mergeProps)({css:o.css,visibilityHeight:o.visibilityHeight,mount:o.renderRoot,target:o.target},r);return(0,t.createEffect)(()=>{o.removeAttribute("css")}),(0,e.createComponent)(g,i)});const p=g;(0,e.delegateEvents)(["click"]);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return p}});const e=require("solid-js/web"),t=require("solid-js"),r=c(require("@moneko/common/lib/getMaxZindex")),n=c(require("@moneko/common/lib/getScrollTop")),o=c(require("@moneko/common/lib/isFunction")),i=require("@moneko/css"),s=require("solid-element"),l=c(require("../theme")),u=require("./style");function c(e){return e&&e.__esModule?e:{default:e}}const a=(0,e.template)("<style> "),d=(0,e.template)("<style>"),m=(0,e.template)("<div>");function g(s){let{baseStyle:c,isDark:g}=l.default,p=(0,t.mergeProps)({target:window,visibilityHeight:400},s),[f,b]=(0,t.splitProps)(p,["class","target","mount","css","visibilityHeight"]),[v,h]=(0,t.createSignal)(null),y=(0,t.createMemo)(()=>(0,o.default)(f.target)?f.target():f.target),k=(0,t.createMemo)(()=>{let e=g()?"rgb(255 255 255 / 45%)":"var(--primary-border)";return`:host {--back-top-bg: ${e};}`});function q(){y()?.scrollTo({top:0,behavior:"smooth"})}function x(){!1===v()&&h(null)}function C(e){e.preventDefault();let t=0,r=0,o=y();o&&(t=(0,n.default)(o),r=o.offsetHeight||0);let i=t>r/3||t>f.visibilityHeight;return!!v()!==i&&h(i),!1}return(0,t.onMount)(()=>{y()?.addEventListener("scroll",C,!1)}),(0,t.onCleanup)(()=>{y()?.removeEventListener("scroll",C,!1)}),(0,e.createComponent)(t.Show,{get when(){return null!==v()},get children(){return(0,e.createComponent)(e.Portal,{useShadow:!0,get mount(){return f.mount},get children(){return[(()=>{let t=a(),r=t.firstChild;return(0,e.effect)(()=>r.data=c()),t})(),(()=>{let t=a(),r=t.firstChild;return(0,e.effect)(()=>r.data=k()),t})(),(()=>{let e=d();return e.textContent=u.style,e})(),(0,e.createComponent)(t.Show,{get when(){return f.css},get children(){let t=a(),r=t.firstChild;return(0,e.effect)(()=>r.data=(0,i.css)(f.css)),t}}),(()=>{let t=m();return(0,e.addEventListener)(t,"click",q,!0),(0,e.addEventListener)(t,"animationend",x),(0,e.spread)(t,(0,e.mergeProps)({get class(){return(0,i.cx)("back-top",f.class)},get classList(){return{"back-top-out":!1===v()}},get style(){return{"z-index":(0,r.default)().toString()}}},b),!1,!1),t})()]}})}})}(0,s.customElement)("n-back-top",{class:void 0,css:void 0,visibilityHeight:void 0,mount:void 0,target:void 0},(r,n)=>{let o=n.element;o.mount||(o.style.position="sticky",o.style.bottom="24px",o.style.right="24px",o.style.display="block",o.style.pointerEvents="none");let i=(0,t.mergeProps)({css:o.css,visibilityHeight:o.visibilityHeight,mount:o.renderRoot,target:o.target},r);return(0,t.createEffect)(()=>{o.removeAttribute("css")}),(0,e.createComponent)(g,i)});const p=g;(0,e.delegateEvents)(["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":["BackTop","_","baseStyle","isDark","theme","props","mergeProps","target","window","visibilityHeight","local","other","splitProps","show","setShow","createSignal","createMemo","isFunction","themeStyle","bg","handleBackTop","scrollTo","top","behavior","exit","handleScrollY","e","preventDefault","scrollTop","offsetHeight","_target","getScrollTop","nextShow","Boolean","onMount","addEventListener","onCleanup","removeEventListener","Show","Portal","mount","style","css","cx","class","getMaxZindex","toString","customElement","opt","el","element","position","bottom","right","display","pointerEvents","renderRoot","createEffect","removeAttribute"],"mappings":"kGAgJA,+CAAA,qBAnIuB,0BAJhB,wBACgD,gDAAA,gDAAA,4CAC/B,yBACM,2BAER,uBACJ,yJAoBlB,SAASA,EAAQC,CAAe,EAC9B,GAAM,CAAEC,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,CAAGC,SAAK,CAC7BC,EAAQC,GAAAA,YAAU,EAAC,CAAEC,OAAQC,OAAkCC,iBAAkB,GAAI,EAAGR,GACxF,CAACS,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACP,EAAO,CAAC,QAAS,SAAU,QAAS,MAAO,mBAAmB,EAC1F,CAACQ,EAAMC,EAAQ,CAAGC,GAAAA,cAAY,EAAiB,MAC/CR,EAASS,GAAAA,YAAU,EAAC,IAAOC,GAAAA,SAAU,EAACP,EAAMH,MAAM,EAAIG,EAAMH,MAAM,GAAKG,EAAMH,MAAM,EAEnFW,EAAaF,GAAAA,YAAU,EAAC,KAC5B,IAAMG,EAAKhB,IAAW,yBAA2B,wBAEjD,MAAO,CAAC,sBAAsB,EAAEgB,EAAG,EAAE,CAAC,AACxC,GAEA,SAASC,IACPb,KAAUc,SAAS,CACjBC,IAAK,EACLC,SAAU,QACZ,EACF,CACA,SAASC,IACQ,CAAA,IAAXX,KACFC,EAAQ,KAEZ,CACA,SAASW,EAAcC,CAAQ,EAC7BA,EAAEC,cAAc,GAChB,IAAIC,EAAY,EACZC,EAAe,EACbC,EAAUvB,IAEZuB,IACFF,EAAYG,GAAAA,SAAY,EAACD,GACzBD,EAAeC,EAAQD,YAAY,EAAI,GAEzC,IAAMG,EAAWJ,EAAYC,EAAe,GAAKD,EAAYlB,EAAMD,gBAAgB,CAKnF,MAHIwB,CAAAA,CAAQpB,MAAYmB,GACtBlB,EAAQkB,GAEH,CAAA,CACT,CAQA,MANAE,GAAAA,SAAO,EAAC,KACN3B,IAAS4B,gBAAgB,CAAC,SAAUV,EAAe,CAAA,EACrD,GACAW,GAAAA,WAAS,EAAC,KACR7B,IAAS8B,mBAAmB,CAAC,SAAUZ,EAAe,CAAA,EACxD,yBAEGa,MAAI,oBAAOzB,AAAW,OAAXA,gDACT0B,QAAM,kCAAkB7B,EAAM8B,KAAK,qFACdtC,wEACAgB,gDACAuB,OAAK,6BACxBH,MAAI,oBAAO5B,EAAMgC,GAAG,wEACCA,GAAAA,KAAG,EAAChC,EAAMgC,GAAG,+DAQxBtB,8CALOI,sDACTmB,GAAAA,IAAE,EAAC,WAAYjC,EAAMkC,KAAK,yBACtB,CACT,eAAgB/B,AAAW,CAAA,IAAXA,GAClB,qBAEO,CAAE,UAAWgC,GAAAA,SAAY,IAAGC,QAAQ,EAAG,IAC1CnC,sBAKd,CAIAoC,GAAAA,eAAa,EACX,aACA,CACEH,MAAO,KAAK,EACZF,IAAK,KAAK,EACVjC,iBAAkB,KAAK,EACvB+B,MAAO,KAAK,EACZjC,OAAQ,KAAK,CACf,EACA,CAACN,EAAG+C,KACF,IAAMC,EAAKD,EAAIE,OAAO,AAEjBD,CAAAA,EAAGT,KAAK,GACXS,EAAGR,KAAK,CAACU,QAAQ,CAAG,SACpBF,EAAGR,KAAK,CAACW,MAAM,CAAG,OAClBH,EAAGR,KAAK,CAACY,KAAK,CAAG,OACjBJ,EAAGR,KAAK,CAACa,OAAO,CAAG,QACnBL,EAAGR,KAAK,CAACc,aAAa,CAAG,QAE3B,IAAMlD,EAAQC,GAAAA,YAAU,EACtB,CACEoC,IAAKO,EAAGP,GAAG,CACXjC,iBAAkBwC,EAAGxC,gBAAgB,CACrC+B,MAAOS,EAAGO,UAAU,CACpBjD,OAAQ0C,EAAG1C,MAAM,AACnB,EACAN,GAMF,MAHAwD,GAAAA,cAAY,EAAC,KACXR,EAAGS,eAAe,CAAC,MACrB,yBACQ1D,EAAYK,EACtB,SAEF,EAAeL"}
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":["BackTop","_","baseStyle","isDark","theme","props","mergeProps","target","window","visibilityHeight","local","other","splitProps","show","setShow","createSignal","createMemo","isFunction","themeStyle","bg","handleBackTop","scrollTo","top","behavior","exit","handleScrollY","e","preventDefault","scrollTop","offsetHeight","_target","getScrollTop","nextShow","Boolean","onMount","addEventListener","onCleanup","removeEventListener","Show","Portal","mount","style","css","cx","class","getMaxZindex","toString","customElement","opt","el","element","position","bottom","right","display","pointerEvents","renderRoot","createEffect","removeAttribute"],"mappings":"kGAkJA,+CAAA,qBAxIuB,0BADhB,wBAEgD,gDAAA,gDAAA,4CAC/B,yBACM,6BAGZ,uBAEI,uJAmBtB,SAASA,EAAQC,CAAe,EAC9B,GAAM,CAAEC,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,CAAGC,SAAK,CAC7BC,EAAQC,GAAAA,YAAU,EAAC,CAAEC,OAAQC,OAAkCC,iBAAkB,GAAI,EAAGR,GACxF,CAACS,EAAOC,EAAM,CAAGC,GAAAA,YAAU,EAACP,EAAO,CAAC,QAAS,SAAU,QAAS,MAAO,mBAAmB,EAC1F,CAACQ,EAAMC,EAAQ,CAAGC,GAAAA,cAAY,EAAiB,MAC/CR,EAASS,GAAAA,YAAU,EAAC,IAAOC,GAAAA,SAAU,EAACP,EAAMH,MAAM,EAAIG,EAAMH,MAAM,GAAKG,EAAMH,MAAM,EAEnFW,EAAaF,GAAAA,YAAU,EAAC,KAC5B,IAAMG,EAAKhB,IAAW,yBAA2B,wBAEjD,MAAO,CAAC,sBAAsB,EAAEgB,EAAG,EAAE,CAAC,AACxC,GAEA,SAASC,IACPb,KAAUc,SAAS,CACjBC,IAAK,EACLC,SAAU,QACZ,EACF,CACA,SAASC,IACQ,CAAA,IAAXX,KACFC,EAAQ,KAEZ,CACA,SAASW,EAAcC,CAAQ,EAC7BA,EAAEC,cAAc,GAChB,IAAIC,EAAY,EACZC,EAAe,EACbC,EAAUvB,IAEZuB,IACFF,EAAYG,GAAAA,SAAY,EAACD,GACzBD,EAAeC,EAAQD,YAAY,EAAI,GAEzC,IAAMG,EAAWJ,EAAYC,EAAe,GAAKD,EAAYlB,EAAMD,gBAAgB,CAKnF,MAHIwB,CAAAA,CAAQpB,MAAYmB,GACtBlB,EAAQkB,GAEH,CAAA,CACT,CAQA,MANAE,GAAAA,SAAO,EAAC,KACN3B,KAAU4B,iBAAiB,SAAUV,EAAe,CAAA,EACtD,GACAW,GAAAA,WAAS,EAAC,KACR7B,KAAU8B,oBAAoB,SAAUZ,EAAe,CAAA,EACzD,yBAEGa,MAAI,oBAAOzB,AAAW,OAAXA,gDACT0B,QAAM,kCAAkB7B,EAAM8B,KAAK,qFACdtC,wEACAgB,gDACAuB,OAAK,6BACxBH,MAAI,oBAAO5B,EAAMgC,GAAG,wEACCA,GAAAA,KAAG,EAAChC,EAAMgC,GAAG,+DAQxBtB,8CALOI,sDACTmB,GAAAA,IAAE,EAAC,WAAYjC,EAAMkC,KAAK,yBACtB,CACT,eAAgB/B,AAAW,CAAA,IAAXA,GAClB,qBAEO,CAAE,UAAWgC,GAAAA,SAAY,IAAGC,QAAQ,EAAG,IAC1CnC,sBAKd,CAIAoC,GAAAA,eAAa,EACX,aACA,CACEH,MAAO,KAAK,EACZF,IAAK,KAAK,EACVjC,iBAAkB,KAAK,EACvB+B,MAAO,KAAK,EACZjC,OAAQ,KAAK,CACf,EACA,CAACN,EAAG+C,KACF,IAAMC,EAAKD,EAAIE,OAAO,AAEjBD,CAAAA,EAAGT,KAAK,GACXS,EAAGR,KAAK,CAACU,QAAQ,CAAG,SACpBF,EAAGR,KAAK,CAACW,MAAM,CAAG,OAClBH,EAAGR,KAAK,CAACY,KAAK,CAAG,OACjBJ,EAAGR,KAAK,CAACa,OAAO,CAAG,QACnBL,EAAGR,KAAK,CAACc,aAAa,CAAG,QAE3B,IAAMlD,EAAQC,GAAAA,YAAU,EACtB,CACEoC,IAAKO,EAAGP,GAAG,CACXjC,iBAAkBwC,EAAGxC,gBAAgB,CACrC+B,MAAOS,EAAGO,UAAU,CACpBjD,OAAQ0C,EAAG1C,MAAM,AACnB,EACAN,GAMF,MAHAwD,GAAAA,cAAY,EAAC,KACXR,EAAGS,eAAe,CAAC,MACrB,yBACQ1D,EAAYK,EACtB,SAEF,EAAeL"}
@@ -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
+ ```