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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/modal/index.tsx"],"sourcesContent":["import {\n Show,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n untrack,\n} from 'solid-js';\nimport { customElement } from 'solid-element';\nimport { Portal } from 'solid-js/web';\nimport modalStore from './store';\nimport { style } from './style';\nimport '../button';\nimport type { CustomElement } from '..';\n\n/**\n * API\n * @since 2.6.0\n */\nexport interface ModalProps {\n /** 是否打开模态框 */\n open?: OpenStateKey;\n /** 开启关闭的回调函数 */\n onOpenChange?: (open: OpenStateKey) => void;\n /** 点击遮罩关闭\n * @default true\n */\n maskClosable?: boolean;\n /** 通过 `esc` 按键关闭\n * @default true\n */\n escClosable?: boolean;\n /**\n * 自定义关闭图标, 设置为 null 或 false 时隐藏关闭按钮\n */\n closeIcon?: JSX.Element | null;\n /** 内容 */\n content: JSX.Element;\n /** 标题 */\n title?: JSX.Element;\n /** 遮罩模糊\n * @default false\n */\n maskBlur?: boolean;\n}\n\n/**\n * OpenStateKey\n */\nexport enum OpenState {\n /** 完全关闭 */\n closed = 'closed',\n /** 正在关闭 */\n closeing = 'closeing',\n /** 打开 */\n open = 'open',\n}\nexport type OpenStateKey = keyof typeof OpenState;\nexport type ModalElement = CustomElement<ModalProps, 'onOpenChange'>;\n\nfunction Modal(props: ModalProps) {\n const doc = document.documentElement;\n const { setNum } = modalStore;\n const [open, setOpen] = createSignal<OpenStateKey>('closed');\n const [posi, setPosi] = createSignal({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n });\n let portal: HTMLDivElement | undefined;\n\n const getCss = createMemo(() => {\n const { x, y, width, height } = posi();\n\n return `.portal { --y: ${-(y - height / 2)}px;--x: ${-(x - width / 2)}px;}`;\n });\n\n function openChange(visi: OpenStateKey) {\n setOpen(visi);\n props.onOpenChange?.(visi);\n }\n function preventDefault(e: Event) {\n e.preventDefault();\n }\n function close(e: KeyboardEvent | Event) {\n preventDefault(e);\n if (e.type === 'keydown') {\n if (props.escClosable && (e as KeyboardEvent).key === 'Escape') {\n openChange(OpenState.closeing);\n }\n } else {\n openChange(OpenState.closeing);\n }\n }\n function handleDestroy() {\n if (open() === OpenState.closeing) {\n openChange(OpenState.closed);\n }\n }\n function portalClick(e: Event) {\n preventDefault(e);\n if (props.maskClosable && e.target === portal) {\n openChange(OpenState.closeing);\n }\n }\n\n createEffect(() => {\n if (props.open !== void 0 && props.open !== untrack(open)) {\n setOpen(props.open);\n }\n });\n\n function point(e: MouseEvent) {\n setPosi((prev) => ({\n ...prev,\n x: doc.clientWidth / 2 - e.clientX,\n y: doc.clientHeight / 2 - e.clientY,\n }));\n }\n createEffect(() => {\n if (open() === OpenState.open) {\n setNum((prev) => prev + 1);\n doc.addEventListener('mousewheel', preventDefault, {\n passive: false,\n });\n\n if (props.escClosable) {\n doc.addEventListener('keydown', close, false);\n }\n } else if (open() === OpenState.closeing) {\n setNum((prev) => prev - 1);\n } else {\n doc.addEventListener('click', point, true);\n }\n\n onCleanup(() => {\n doc.removeEventListener('mousewheel', preventDefault, false);\n doc.removeEventListener('keydown', close, false);\n doc.removeEventListener('click', point, true);\n });\n });\n const closeIcon = createMemo(() => {\n if (props.closeIcon === null || props.closeIcon === false) {\n return null;\n }\n if (['function', 'object'].includes(typeof props.closeIcon)) {\n return () => <span class=\"modal-close\">{props.closeIcon}</span>;\n }\n return () => (\n <n-button class=\"modal-close\" danger={true} circle={true} flat={true} onClick={close}>\n {props.closeIcon}\n </n-button>\n );\n });\n\n return (\n <Show when={open() !== OpenState.closed}>\n <Portal useShadow={true}>\n <style textContent={getCss()} />\n <style textContent={style} />\n <div\n ref={portal}\n class=\"portal\"\n classList={{\n open: open() === OpenState.open,\n closeing: open() !== OpenState.open,\n 'mask-blur': props.maskBlur,\n }}\n onAnimationEnd={handleDestroy}\n onClick={portalClick}\n >\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <strong class=\"modal-title\">{props.title}</strong>\n </div>\n <Show when={props.closeIcon === void 0} fallback={closeIcon() as JSXElement}>\n <n-button class=\"modal-close\" danger={true} circle={true} flat={true} onClick={close}>\n ⛌\n </n-button>\n </Show>\n <div class=\"modal-body\">{props.content}</div>\n {/* <div class=\"modal-footer\">{props.footer}</div> */}\n </div>\n </div>\n </Portal>\n </Show>\n );\n}\n\ncustomElement<ModalProps>(\n 'n-modal',\n {\n open: 'closed' as OpenStateKey,\n maskClosable: true,\n escClosable: true,\n onOpenChange: void 0,\n closeIcon: void 0,\n content: void 0,\n title: void 0,\n maskBlur: void 0,\n },\n (_, opt) => {\n const props = mergeProps(\n {\n onOpenChange(open: OpenStateKey) {\n opt.element.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n },\n _,\n );\n\n return <Modal {...props} />;\n },\n);\nexport default Modal;\n"],"names":["OpenState","Show","createEffect","createMemo","createSignal","mergeProps","onCleanup","untrack","customElement","Portal","modalStore","style","Modal","props","portal","doc","document","documentElement","setNum","open","setOpen","posi","setPosi","x","y","width","height","getCss","openChange","visi","onOpenChange","preventDefault","e","close","type","escClosable","key","handleDestroy","portalClick","maskClosable","target","point","prev","clientWidth","clientX","clientHeight","clientY","addEventListener","passive","removeEventListener","closeIcon","includes","title","content","maskBlur","_","opt","element","dispatchEvent","CustomEvent","detail"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/modal/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n Show,\n untrack,\n} from 'solid-js';\nimport { Portal } from 'solid-js/web';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\n\nimport modalStore from './store';\nimport { style } from './style';\n\nimport '../button';\n\n/**\n * API\n * @since 2.6.0\n */\nexport interface ModalProps {\n /** 是否打开模态框 */\n open?: OpenStateKey;\n /** 开启关闭的回调函数 */\n onOpenChange?: (open: OpenStateKey) => void;\n /** 点击遮罩关闭\n * @default true\n */\n maskClosable?: boolean;\n /** 通过 `esc` 按键关闭\n * @default true\n */\n escClosable?: boolean;\n /**\n * 自定义关闭图标, 设置为 null 或 false 时隐藏关闭按钮\n */\n closeIcon?: JSX.Element | null;\n /** 内容 */\n content: JSX.Element;\n /** 标题 */\n title?: JSX.Element;\n /** 遮罩模糊\n * @default false\n */\n maskBlur?: boolean;\n}\n\n/**\n * OpenStateKey\n */\nexport enum OpenState {\n /** 完全关闭 */\n closed = 'closed',\n /** 正在关闭 */\n closeing = 'closeing',\n /** 打开 */\n open = 'open',\n}\nexport type OpenStateKey = keyof typeof OpenState;\nexport type ModalElement = CustomElement<ModalProps, 'onOpenChange'>;\n\nfunction Modal(props: ModalProps) {\n const doc = document.documentElement;\n const { setNum } = modalStore;\n const [open, setOpen] = createSignal<OpenStateKey>('closed');\n const [posi, setPosi] = createSignal({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n });\n let portal: HTMLDivElement | undefined;\n\n const getCss = createMemo(() => {\n const { x, y, width, height } = posi();\n\n return `.portal { --y: ${-(y - height / 2)}px;--x: ${-(x - width / 2)}px;}`;\n });\n\n function openChange(visi: OpenStateKey) {\n setOpen(visi);\n props.onOpenChange?.(visi);\n }\n function preventDefault(e: Event) {\n e.preventDefault();\n }\n function close(e: KeyboardEvent | Event) {\n preventDefault(e);\n if (e.type === 'keydown') {\n if (props.escClosable && (e as KeyboardEvent).key === 'Escape') {\n openChange(OpenState.closeing);\n }\n } else {\n openChange(OpenState.closeing);\n }\n }\n function handleDestroy() {\n if (open() === OpenState.closeing) {\n openChange(OpenState.closed);\n }\n }\n function portalClick(e: Event) {\n preventDefault(e);\n if (props.maskClosable && e.target === portal) {\n openChange(OpenState.closeing);\n }\n }\n\n createEffect(() => {\n if (props.open !== void 0 && props.open !== untrack(open)) {\n setOpen(props.open);\n }\n });\n\n function point(e: MouseEvent) {\n setPosi((prev) => ({\n ...prev,\n x: doc.clientWidth / 2 - e.clientX,\n y: doc.clientHeight / 2 - e.clientY,\n }));\n }\n createEffect(() => {\n if (open() === OpenState.open) {\n setNum((prev) => prev + 1);\n doc.addEventListener('mousewheel', preventDefault, {\n passive: false,\n });\n\n if (props.escClosable) {\n doc.addEventListener('keydown', close, false);\n }\n } else if (open() === OpenState.closeing) {\n setNum((prev) => prev - 1);\n } else {\n doc.addEventListener('click', point, true);\n }\n\n onCleanup(() => {\n doc.removeEventListener('mousewheel', preventDefault, false);\n doc.removeEventListener('keydown', close, false);\n doc.removeEventListener('click', point, true);\n });\n });\n const closeIcon = createMemo(() => {\n if (props.closeIcon === null || props.closeIcon === false) {\n return null;\n }\n if (['function', 'object'].includes(typeof props.closeIcon)) {\n return () => <span class=\"modal-close\">{props.closeIcon}</span>;\n }\n return () => (\n <n-button class=\"modal-close\" danger={true} circle={true} flat={true} onClick={close}>\n {props.closeIcon}\n </n-button>\n );\n });\n\n return (\n <Show when={open() !== OpenState.closed}>\n <Portal useShadow={true}>\n <style textContent={getCss()} />\n <style textContent={style} />\n <div\n ref={portal}\n class=\"portal\"\n classList={{\n open: open() === OpenState.open,\n closeing: open() !== OpenState.open,\n 'mask-blur': props.maskBlur,\n }}\n onAnimationEnd={handleDestroy}\n onClick={portalClick}\n >\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <strong class=\"modal-title\">{props.title}</strong>\n </div>\n <Show when={props.closeIcon === void 0} fallback={closeIcon() as JSXElement}>\n <n-button class=\"modal-close\" danger={true} circle={true} flat={true} onClick={close}>\n ⛌\n </n-button>\n </Show>\n <div class=\"modal-body\">{props.content}</div>\n {/* <div class=\"modal-footer\">{props.footer}</div> */}\n </div>\n </div>\n </Portal>\n </Show>\n );\n}\n\ncustomElement<ModalProps>(\n 'n-modal',\n {\n open: 'closed' as OpenStateKey,\n maskClosable: true,\n escClosable: true,\n onOpenChange: void 0,\n closeIcon: void 0,\n content: void 0,\n title: void 0,\n maskBlur: void 0,\n },\n (_, opt) => {\n const props = mergeProps(\n {\n onOpenChange(open: OpenStateKey) {\n opt.element.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n },\n _,\n );\n\n return <Modal {...props} />;\n },\n);\nexport default Modal;\n"],"names":["OpenState","createEffect","createMemo","createSignal","mergeProps","onCleanup","Show","untrack","Portal","customElement","modalStore","style","Modal","props","portal","doc","document","documentElement","setNum","open","setOpen","posi","setPosi","x","y","width","height","getCss","openChange","visi","onOpenChange","preventDefault","e","close","type","escClosable","key","handleDestroy","portalClick","maskClosable","target","point","prev","clientWidth","clientX","clientHeight","clientY","addEventListener","passive","removeEventListener","closeIcon","includes","title","content","maskBlur","_","opt","element","dispatchEvent","CustomEvent","detail"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ ---
2
+ type: 反馈
3
+ title: 通知提醒框
4
+ subtitle: notification
5
+ icon: ☗
6
+ ---
7
+
8
+ # Notification 通知提醒框
9
+
10
+ > 全局展示通知提醒信息
11
+
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: 最简单的用法
3
+ description: 最简单的用法
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-button>消息通知</n-button>
9
+ <script>
10
+ const { notification } = NekoUI;
11
+ const btn = container.querySelector('n-button');
12
+
13
+ btn.addEventListener('click', function () {
14
+ notification.info('操作成功!!!');
15
+ });
16
+ </script>
17
+ ```
18
+
19
+ ```jsx
20
+ const { notification } = NekoUI;
21
+
22
+ const Demo = () => {
23
+ const handleOpen = () => {
24
+ notification.info('操作成功!!!');
25
+ };
26
+
27
+ return (
28
+ <n-button type="primary" onClick={handleOpen}>
29
+ 显示通知
30
+ </n-button>
31
+ );
32
+ };
33
+
34
+ render(<Demo />);
35
+ ```
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: 手动关闭
3
+ description: 带关闭按钮
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-button>消息通知(手动关闭)</n-button>
9
+ <script>
10
+ const { notification } = NekoUI;
11
+ const btn = container.querySelector('n-button');
12
+
13
+ btn.addEventListener('click', function () {
14
+ notification.info('操作成功!!!', 0, true);
15
+ });
16
+ </script>
17
+ ```
18
+
19
+ ```jsx
20
+ const { notification } = NekoUI;
21
+
22
+ const Demo = () => {
23
+ const handleOpen = () => {
24
+ notification.info('操作成功!!!', 0, true);
25
+ };
26
+
27
+ return (
28
+ <n-button type="primary" onClick={handleOpen}>
29
+ 显示通知
30
+ </n-button>
31
+ );
32
+ };
33
+
34
+ render(<Demo />);
35
+ ```
@@ -0,0 +1,84 @@
1
+ ---
2
+ title: 不同的通知类型
3
+ description: 不同的通知类型
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-button>消息</n-button>
9
+ <n-button type="primary">主要</n-button>
10
+ <n-button type="error">错误</n-button>
11
+ <n-button type="warning">警告</n-button>
12
+ <n-button type="success">成功</n-button>
13
+ <script>
14
+ const { notification } = NekoUI;
15
+ const btns = container.querySelectorAll('n-button');
16
+
17
+ btns.forEach((btn) => {
18
+ btn.addEventListener('click', function () {
19
+ switch (btn.type) {
20
+ case 'primary':
21
+ notification.primary(`${btn.type} message`, 5000);
22
+ break;
23
+ case 'warning':
24
+ notification.warning(`${btn.type} message`, 2000);
25
+ break;
26
+ case 'error':
27
+ notification.error(`${btn.type} message`, 0, true);
28
+ break;
29
+ case 'success':
30
+ notification.success(`${btn.type} message`, 4000);
31
+ break;
32
+ default:
33
+ notification.info('info message', 1000);
34
+ break;
35
+ }
36
+ });
37
+ });
38
+ </script>
39
+ ```
40
+
41
+ ```jsx
42
+ const Demo = () => {
43
+ const { notification } = NekoUI;
44
+ const handleOpen = (type: string) => {
45
+ switch (type) {
46
+ case 'primary':
47
+ notification.primary(`${type} message`, 5000);
48
+ break;
49
+ case 'warning':
50
+ notification.warning(`${type} message`, 2000);
51
+ break;
52
+ case 'error':
53
+ notification.error(`${type} message`, 0, true);
54
+ break;
55
+ case 'success':
56
+ notification.success(`${type} message`, 4000);
57
+ break;
58
+ default:
59
+ notification.info('info message', 1000);
60
+ break;
61
+ }
62
+ };
63
+
64
+ return (
65
+ <>
66
+ <n-button onClick={handleOpen.bind(null, 'info')}>消息</n-button>
67
+ <n-button type="primary" onClick={handleOpen.bind(null, 'primary')}>
68
+ 主要
69
+ </n-button>
70
+ <n-button type="error" onClick={handleOpen.bind(null, 'error')}>
71
+ 错误
72
+ </n-button>
73
+ <n-button type="warning" onClick={handleOpen.bind(null, 'warning')}>
74
+ 警告
75
+ </n-button>
76
+ <n-button type="success" onClick={handleOpen.bind(null, 'success')}>
77
+ 成功
78
+ </n-button>
79
+ </>
80
+ );
81
+ };
82
+
83
+ render(<Demo />);
84
+ ```
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: 更新内容
3
+ description: 可以通过唯一的 key 来更新内容
4
+ order: 4
5
+ ---
6
+
7
+ ```html
8
+ <n-button>更新消息 (手动关闭)</n-button>
9
+ <script>
10
+ const { notification } = NekoUI;
11
+ const btn = container.querySelector('n-button');
12
+
13
+ btn.addEventListener('click', function () {
14
+ const id = notification.info('操作成功!!!', 5000);
15
+
16
+ const timer = setTimeout(() => {
17
+ const icon = document.createElement('i');
18
+
19
+ icon.textContent = '🎉';
20
+ notification.update(id, {
21
+ type: 'success',
22
+ children: '更新成功!!!',
23
+ icon: icon,
24
+ });
25
+ clearTimeout(timer);
26
+ }, 2000);
27
+ });
28
+ </script>
29
+ ```
30
+
31
+ ```jsx
32
+ const { notification } = NekoUI;
33
+
34
+ const Demo = () => {
35
+ const handleOpen = () => {
36
+ const id = notification.info('操作成功!!!', 5000);
37
+
38
+ const timer = setTimeout(() => {
39
+ notification.update(id, {
40
+ type: 'success',
41
+ children: '更新成功!!!',
42
+ icon: <i>🎉</i>,
43
+ });
44
+ clearTimeout(timer);
45
+ }, 2000);
46
+ };
47
+
48
+ return <n-button onClick={handleOpen}>更新消息 (手动关闭)</n-button>;
49
+ };
50
+
51
+ render(<Demo />);
52
+ ```
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/notification/index.tsx"],"sourcesContent":["import notification from './notification';\nimport queque, { type NotificationProps } from './queque';\n\nexport type { NotificationType, NotificationProps } from './queque';\n\n/** Api */\ninterface Notification {\n /**\n * 信息\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n info(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 成功\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n success(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 错误\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n error(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 警告\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n warning(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 主要\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n primary(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 更新通知内容\n * @param {String} id 通知id\n * @param {NotificationProps} item 更新内容\n * @constructor\n */\n update(uniqueId: string, item: NotificationProps): void;\n /**\n * 销毁全部通知\n * @constructor\n */\n destory: VoidFunction;\n}\n\nexport default {\n info: notification.bind(null, 'info'),\n success: notification.bind(null, 'success'),\n error: notification.bind(null, 'error'),\n warning: notification.bind(null, 'warning'),\n primary: notification.bind(null, 'primary'),\n update: queque.update,\n destory: queque.clean,\n} as Notification;\n"],"names":["notification","queque","info","bind","success","error","warning","primary","update","destory","clean"],"mappings":"AAAA,OAAOA,MAAkB,gBAAiB,AAC1C,QAAOC,MAAwC,UAAW,AA4D1D,eAAe,CACbC,KAAMF,EAAaG,IAAI,CAAC,KAAM,QAC9BC,QAASJ,EAAaG,IAAI,CAAC,KAAM,WACjCE,MAAOL,EAAaG,IAAI,CAAC,KAAM,SAC/BG,QAASN,EAAaG,IAAI,CAAC,KAAM,WACjCI,QAASP,EAAaG,IAAI,CAAC,KAAM,WACjCK,OAAQP,EAAOO,MAAM,CACrBC,QAASR,EAAOS,KAAK,AACvB,CAAkB"}
1
+ {"version":3,"sources":["../../components/notification/index.tsx"],"sourcesContent":["import notification from './notification';\nimport queque, { type NotificationProps } from './queque';\n\nexport type { NotificationProps, NotificationType } from './queque';\n\n/** Api */\ninterface Notification {\n /**\n * 信息\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n info(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 成功\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n success(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 错误\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n error(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 警告\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n warning(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 主要\n * @param {String} content - 内容.\n * @param {Number} duration - 显示时间.\n * @param {Boolean} close - 显示关闭按钮.\n * @return {String} id\n */\n primary(content: JSX.Element, duration?: number, close?: boolean, icon?: JSX.Element): string;\n /**\n * 更新通知内容\n * @param {String} id 通知id\n * @param {NotificationProps} item 更新内容\n * @constructor\n */\n update(uniqueId: string, item: NotificationProps): void;\n /**\n * 销毁全部通知\n * @constructor\n */\n destory: VoidFunction;\n}\n\nexport default {\n info: notification.bind(null, 'info'),\n success: notification.bind(null, 'success'),\n error: notification.bind(null, 'error'),\n warning: notification.bind(null, 'warning'),\n primary: notification.bind(null, 'primary'),\n update: queque.update,\n destory: queque.clean,\n} as Notification;\n"],"names":["notification","queque","info","bind","success","error","warning","primary","update","destory","clean"],"mappings":"AAAA,OAAOA,MAAkB,gBAAiB,AAC1C,QAAOC,MAAwC,UAAW,AA4D1D,eAAe,CACbC,KAAMF,EAAaG,IAAI,CAAC,KAAM,QAC9BC,QAASJ,EAAaG,IAAI,CAAC,KAAM,WACjCE,MAAOL,EAAaG,IAAI,CAAC,KAAM,SAC/BG,QAASN,EAAaG,IAAI,CAAC,KAAM,WACjCI,QAASP,EAAaG,IAAI,CAAC,KAAM,WACjCK,OAAQP,EAAOO,MAAM,CACrBC,QAASR,EAAOS,KAAK,AACvB,CAAkB"}
@@ -1,2 +1,2 @@
1
- import{template as e}from"solid-js/web";import{insert as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{delegateEvents as r}from"solid-js/web";import{createComponent as i}from"solid-js/web";import{className as l}from"solid-js/web";let n=e("<style> "),s=e("<style>"),m=e('<span class="close">'),d=e('<div><div class="content">');import{For as a,Show as c,createEffect as u,createUniqueId as f}from"solid-js";import{cx as p}from"@moneko/css";import{render as h}from"solid-js/web";import g from"./queque";import{styles as v}from"./styles";import w from"../theme";let y="n-notification-box";export default((e,r,b=3e3,j,$)=>{let _=f(),{list:x,add:C,remove:k}=g,{baseStyle:q}=w,E=document.getElementById(y);if(C({type:e,icon:$,children:r,close:j,uniqueId:_}),b&&b>0){let e=setTimeout(()=>{k(_),clearTimeout(e)},b)}if(!E){(E=document.createElement("div")).id=y,E.style.position="fixed",E.style.insetBlockStart="16px",E.style.insetInlineStart="50%",E.style.transform="translateX(-50%)",E.attachShadow({mode:"open"});let e=h(()=>(u(()=>{0===x().length&&(e(),null==E||E.remove())}),i(c,{get when(){return x().length},get children(){return[(()=>{let e=n(),t=e.firstChild;return o(()=>t.data=q()),e})(),(()=>{let e=s();return e.textContent=v,e})(),i(a,{get each(){return x()},children:e=>(()=>{let r=d(),n=r.firstChild;return t(r,i(c,{get when(){return e.icon},get children(){return e.icon}}),n),t(n,()=>e.children),t(r,i(c,{get when(){return e.close},get children(){let t=m();return t.$$click=()=>k(e.uniqueId),t}}),null),o(t=>{let o=p("notification",e.type),i=!!e.closeing;return o!==t._v$&&l(r,t._v$=o),i!==t._v$2&&r.classList.toggle("closeing",t._v$2=i),t},{_v$:void 0,_v$2:void 0}),r})()})]}})),E.shadowRoot);document.body.appendChild(E)}return _});r(["click"]);
1
+ import{template as e}from"solid-js/web";import{insert as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{delegateEvents as r}from"solid-js/web";import{createComponent as i}from"solid-js/web";import{className as l}from"solid-js/web";let n=e("<style> "),s=e("<style>"),m=e('<span class="close">'),d=e('<div><div class="content">');import{createEffect as a,createUniqueId as c,For as u,Show as f}from"solid-js";import{render as p}from"solid-js/web";import{cx as h}from"@moneko/css";import g from"../theme";import v from"./queque";import{styles as w}from"./styles";let y="n-notification-box";export default((e,r,b=3e3,j,$)=>{let _=c(),{list:x,add:C,remove:k}=v,{baseStyle:q}=g,E=document.getElementById(y);if(C({type:e,icon:$,children:r,close:j,uniqueId:_}),b&&b>0){let e=setTimeout(()=>{k(_),clearTimeout(e)},b)}if(!E){(E=document.createElement("div")).id=y,E.style.position="fixed",E.style.insetBlockStart="16px",E.style.insetInlineStart="50%",E.style.transform="translateX(-50%)",E.attachShadow({mode:"open"});let e=p(()=>(a(()=>{0===x().length&&(e(),null==E||E.remove())}),i(f,{get when(){return x().length},get children(){return[(()=>{let e=n(),t=e.firstChild;return o(()=>t.data=q()),e})(),(()=>{let e=s();return e.textContent=w,e})(),i(u,{get each(){return x()},children:e=>(()=>{let r=d(),n=r.firstChild;return t(r,i(f,{get when(){return e.icon},get children(){return e.icon}}),n),t(n,()=>e.children),t(r,i(f,{get when(){return e.close},get children(){let t=m();return t.$$click=()=>{k(e.uniqueId)},t}}),null),o(t=>{let o=h("notification",e.type),i=!!e.closeing;return o!==t._v$&&l(r,t._v$=o),i!==t._v$2&&r.classList.toggle("closeing",t._v$2=i),t},{_v$:void 0,_v$2:void 0}),r})()})]}})),E.shadowRoot);document.body.appendChild(E)}return _});r(["click"]);
2
2
  //# sourceMappingURL=notification.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/notification/notification.tsx"],"sourcesContent":["import { For, Show, createEffect, createUniqueId } from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { render } from 'solid-js/web';\nimport queque, { type NotificationType } from './queque';\nimport { styles } from './styles';\nimport theme from '../theme';\n\nconst mountId = 'n-notification-box';\n\nconst notification = (\n type: keyof typeof NotificationType,\n children: JSX.Element,\n duration = 3000,\n close?: boolean,\n icon?: JSX.Element,\n) => {\n const uniqueId = createUniqueId();\n const { list, add, remove } = queque;\n const { baseStyle } = theme;\n let mount = document.getElementById(mountId);\n\n add({\n type,\n icon,\n children,\n close,\n uniqueId,\n });\n if (duration && duration > 0) {\n const timer = setTimeout(() => {\n remove(uniqueId);\n clearTimeout(timer);\n }, duration);\n }\n if (!mount) {\n mount = document.createElement('div');\n mount.id = mountId;\n mount.style.position = 'fixed';\n mount.style.insetBlockStart = '16px';\n mount.style.insetInlineStart = '50%';\n mount.style.transform = 'translateX(-50%)';\n mount.attachShadow({ mode: 'open' });\n\n const unmount = render(() => {\n createEffect(() => {\n if (list().length === 0) {\n unmount();\n mount?.remove();\n }\n });\n return (\n <Show when={list().length}>\n <style textContent={baseStyle()} />\n <style textContent={styles} />\n <For each={list()}>\n {(item) => {\n return (\n <div\n class={cx('notification', item.type)}\n classList={{\n closeing: item.closeing,\n }}\n >\n <Show when={item.icon}>{item.icon}</Show>\n <div class=\"content\">{item.children}</div>\n <Show when={item.close}>\n <span class=\"close\" onClick={() => remove(item.uniqueId)} />\n </Show>\n </div>\n );\n }}\n </For>\n </Show>\n );\n }, mount!.shadowRoot!);\n\n document.body.appendChild(mount);\n }\n return uniqueId;\n};\n\nexport default notification;\n"],"names":["For","Show","createEffect","createUniqueId","cx","render","queque","styles","theme","mountId","type","children","duration","close","icon","uniqueId","list","add","remove","baseStyle","mount","document","getElementById","timer","setTimeout","clearTimeout","createElement","id","style","position","insetBlockStart","insetInlineStart","transform","attachShadow","mode","unmount","length","item","closeing","shadowRoot","body","appendChild"],"mappings":"0VAAA,QAASA,OAAAA,CAAG,CAAEC,QAAAA,CAAI,CAAEC,gBAAAA,CAAY,CAAEC,kBAAAA,CAAc,KAAQ,UAAW,AACnE,QAASC,MAAAA,CAAE,KAAQ,aAAc,AACjC,QAASC,UAAAA,CAAM,KAAQ,cAAe,AACtC,QAAOC,MAAuC,UAAW,AACzD,QAASC,UAAAA,CAAM,KAAQ,UAAW,AAClC,QAAOC,MAAW,UAAW,CAE7B,IAAMC,EAAU,oBA0EhB,eAxEqB,CAAA,CACnBC,EACAC,EACAC,EAAW,GAAI,CACfC,EACAC,KAEA,IAAMC,EAAWZ,IACX,CAAEa,KAAAA,CAAI,CAAEC,IAAAA,CAAG,CAAEC,OAAAA,CAAM,CAAE,CAAGZ,EACxB,CAAEa,UAAAA,CAAS,CAAE,CAAGX,EAClBY,EAAQC,SAASC,cAAc,CAACb,GASpC,GAPAQ,EAAI,CACFP,KAAAA,EACAI,KAAAA,EACAH,SAAAA,EACAE,MAAAA,EACAE,SAAAA,CACF,GACIH,GAAYA,EAAW,EAAG,CAC5B,IAAMW,EAAQC,WAAW,KACvBN,EAAOH,GACPU,aAAaF,EACf,EAAGX,EACL,CACA,GAAI,CAACQ,EAAO,CAEVA,AADAA,CAAAA,EAAQC,SAASK,aAAa,CAAC,MAAK,EAC9BC,EAAE,CAAGlB,EACXW,EAAMQ,KAAK,CAACC,QAAQ,CAAG,QACvBT,EAAMQ,KAAK,CAACE,eAAe,CAAG,OAC9BV,EAAMQ,KAAK,CAACG,gBAAgB,CAAG,MAC/BX,EAAMQ,KAAK,CAACI,SAAS,CAAG,mBACxBZ,EAAMa,YAAY,CAAC,CAAEC,KAAM,MAAO,GAElC,IAAMC,EAAU9B,EAAO,KACrBH,EAAa,KACW,IAAlBc,IAAOoB,MAAM,GACfD,UACAf,GAAAA,EAAOF,MAAM,GAEjB,KAEGjB,qBAAWe,IAAOoB,MAAM,2EACHjB,gDACAZ,UACnBP,qBAAUgB,cACR,AAACqB,+CAQKpC,qBAAWoC,EAAKvB,IAAI,wBAAGuB,EAAKvB,IAAI,eACXuB,EAAK1B,QAAQ,QAClCV,qBAAWoC,EAAKxB,KAAK,4CACS,IAAMK,EAAOmB,EAAKtB,QAAQ,yBARlDX,EAAG,eAAgBiC,EAAK3B,IAAI,MAEvB2B,EAAKC,QAAQ,8HAcpClB,EAAOmB,UAAU,EAEpBlB,SAASmB,IAAI,CAACC,WAAW,CAACrB,EAC5B,CACA,OAAOL,CACT,CAAA,CAE4B"}
1
+ {"version":3,"sources":["../../components/notification/notification.tsx"],"sourcesContent":["import { createEffect, createUniqueId, For, Show } from 'solid-js';\nimport { render } from 'solid-js/web';\nimport { cx } from '@moneko/css';\n\nimport theme from '../theme';\n\nimport queque, { type NotificationType } from './queque';\nimport { styles } from './styles';\n\nconst mountId = 'n-notification-box';\n\nconst notification = (\n type: keyof typeof NotificationType,\n children: JSX.Element,\n duration = 3000,\n close?: boolean,\n icon?: JSX.Element,\n) => {\n const uniqueId = createUniqueId();\n const { list, add, remove } = queque;\n const { baseStyle } = theme;\n let mount = document.getElementById(mountId);\n\n add({\n type,\n icon,\n children,\n close,\n uniqueId,\n });\n if (duration && duration > 0) {\n const timer = setTimeout(() => {\n remove(uniqueId);\n clearTimeout(timer);\n }, duration);\n }\n if (!mount) {\n mount = document.createElement('div');\n mount.id = mountId;\n mount.style.position = 'fixed';\n mount.style.insetBlockStart = '16px';\n mount.style.insetInlineStart = '50%';\n mount.style.transform = 'translateX(-50%)';\n mount.attachShadow({ mode: 'open' });\n\n const unmount = render(() => {\n createEffect(() => {\n if (list().length === 0) {\n unmount();\n mount?.remove();\n }\n });\n return (\n <Show when={list().length}>\n <style textContent={baseStyle()} />\n <style textContent={styles} />\n <For each={list()}>\n {(item) => {\n return (\n <div\n class={cx('notification', item.type)}\n classList={{\n closeing: item.closeing,\n }}\n >\n <Show when={item.icon}>{item.icon}</Show>\n <div class=\"content\">{item.children}</div>\n <Show when={item.close}>\n <span\n class=\"close\"\n onClick={() => {\n remove(item.uniqueId);\n }}\n />\n </Show>\n </div>\n );\n }}\n </For>\n </Show>\n );\n }, mount.shadowRoot!);\n\n document.body.appendChild(mount);\n }\n return uniqueId;\n};\n\nexport default notification;\n"],"names":["createEffect","createUniqueId","For","Show","render","cx","theme","queque","styles","mountId","type","children","duration","close","icon","uniqueId","list","add","remove","baseStyle","mount","document","getElementById","timer","setTimeout","clearTimeout","createElement","id","style","position","insetBlockStart","insetInlineStart","transform","attachShadow","mode","unmount","length","item","closeing","shadowRoot","body","appendChild"],"mappings":"0VAAA,QAASA,gBAAAA,CAAY,CAAEC,kBAAAA,CAAc,CAAEC,OAAAA,CAAG,CAAEC,QAAAA,CAAI,KAAQ,UAAW,AACnE,QAASC,UAAAA,CAAM,KAAQ,cAAe,AACtC,QAASC,MAAAA,CAAE,KAAQ,aAAc,AAEjC,QAAOC,MAAW,UAAW,AAE7B,QAAOC,MAAuC,UAAW,AACzD,QAASC,UAAAA,CAAM,KAAQ,UAAW,CAElC,IAAMC,EAAU,oBA+EhB,eA7EqB,CAAA,CACnBC,EACAC,EACAC,EAAW,GAAI,CACfC,EACAC,KAEA,IAAMC,EAAWd,IACX,CAAEe,KAAAA,CAAI,CAAEC,IAAAA,CAAG,CAAEC,OAAAA,CAAM,CAAE,CAAGX,EACxB,CAAEY,UAAAA,CAAS,CAAE,CAAGb,EAClBc,EAAQC,SAASC,cAAc,CAACb,GASpC,GAPAQ,EAAI,CACFP,KAAAA,EACAI,KAAAA,EACAH,SAAAA,EACAE,MAAAA,EACAE,SAAAA,CACF,GACIH,GAAYA,EAAW,EAAG,CAC5B,IAAMW,EAAQC,WAAW,KACvBN,EAAOH,GACPU,aAAaF,EACf,EAAGX,EACL,CACA,GAAI,CAACQ,EAAO,CAEVA,AADAA,CAAAA,EAAQC,SAASK,aAAa,CAAC,MAAK,EAC9BC,EAAE,CAAGlB,EACXW,EAAMQ,KAAK,CAACC,QAAQ,CAAG,QACvBT,EAAMQ,KAAK,CAACE,eAAe,CAAG,OAC9BV,EAAMQ,KAAK,CAACG,gBAAgB,CAAG,MAC/BX,EAAMQ,KAAK,CAACI,SAAS,CAAG,mBACxBZ,EAAMa,YAAY,CAAC,CAAEC,KAAM,MAAO,GAElC,IAAMC,EAAU/B,EAAO,KACrBJ,EAAa,KACW,IAAlBgB,IAAOoB,MAAM,GACfD,UACAf,GAAAA,EAAOF,MAAM,GAEjB,KAEGf,qBAAWa,IAAOoB,MAAM,2EACHjB,gDACAX,UACnBN,qBAAUc,cACR,AAACqB,+CAQKlC,qBAAWkC,EAAKvB,IAAI,wBAAGuB,EAAKvB,IAAI,eACXuB,EAAK1B,QAAQ,QAClCR,qBAAWkC,EAAKxB,KAAK,4CAGT,KACPK,EAAOmB,EAAKtB,QAAQ,CACtB,yBAZGV,EAAG,eAAgBgC,EAAK3B,IAAI,MAEvB2B,EAAKC,QAAQ,8HAmBpClB,EAAMmB,UAAU,EAEnBlB,SAASmB,IAAI,CAACC,WAAW,CAACrB,EAC5B,CACA,OAAOL,CACT,CAAA,CAE4B"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 数据展示
3
+ title: 分页器
4
+ subtitle: n-pagination
5
+ icon: 🍁
6
+ ---
7
+
8
+ # Pagination 分页器
9
+
10
+ > 当加载/渲染所有数据将花费很多时间时, 采用分页的形式分隔长列表,每次只加载一个页面。
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: 基本使用
3
+ description: 最简单的使用方式
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-pagination page-size="10" total="85"></n-pagination>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-pagination page-size={10} total={85} />
13
+ ```
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: 受控
3
+ description: 当手动传入 `page` 时, 为受控模式
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-pagination page="1" page-size="10" total="85"></n-pagination>
9
+ <script>
10
+ const el = container.querySelector('n-pagination');
11
+
12
+ el.onchange = function (e) {
13
+ const [page, size] = e.detail;
14
+ e.target.page = page;
15
+ };
16
+ </script>
17
+ ```
18
+
19
+ ```jsx
20
+ <n-pagination
21
+ page={1}
22
+ page-size={10}
23
+ total={85}
24
+ onChange={function (e) {
25
+ const [page, size] = e.detail;
26
+ e.target.page = page;
27
+ }}
28
+ />
29
+ ```
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: 不同的尺寸
3
+ description: Pagination 内置有大、中、小三种尺寸。通过 `size` 进行设置; 默认为 'normal'。
4
+ order: 4
5
+ ---
6
+
7
+ ```html
8
+ <h4>小:</h4>
9
+ <n-pagination page-size="15" total="85" size="small"></n-pagination>
10
+ <h4>默认: 中</h4>
11
+ <n-pagination page-size="15" total="85" size="normal"></n-pagination>
12
+ <h4>大:</h4>
13
+ <n-pagination page-size="15" total="85" size="large"></n-pagination>
14
+ ```
15
+
16
+ ```jsx
17
+ <h4>小:</h4>
18
+ <n-pagination page-size={15} total={85} size="small" />
19
+ <h4>默认: 中</h4>
20
+ <n-pagination page-size={15} total={85} size="normal" />
21
+ <h4>大:</h4>
22
+ <n-pagination page-size={15} total={85} size="large" />
23
+ ```
@@ -0,0 +1,42 @@
1
+ ---
2
+ title: 显示数据总量
3
+ description: 通过设置 `totalText` 展示总共有多少数据。
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <h4>不显示:</h4>
9
+ <n-pagination total-text="false" page-size="10" total="85"></n-pagination>
10
+ <h4>使用插槽: slot</h4>
11
+ <n-pagination page-size="10" total="85">
12
+ <span slot="total-text">总共 85 条数据</span>
13
+ </n-pagination>
14
+ <h4>使用函数:</h4>
15
+ <n-pagination class="func" page-size="10" total="85"></n-pagination>
16
+ <script>
17
+ const el = container.querySelector('n-pagination.func');
18
+
19
+ el.totalText = function (total, rangs) {
20
+ return `${rangs.join('~')} 共 ${total} 项`;
21
+ };
22
+ </script>
23
+ ```
24
+
25
+ ```jsx
26
+ <h4>不显示:</h4>
27
+ <n-pagination total-text={false} page-size={10} total={85} />
28
+ <h4>使用插槽: slot</h4>
29
+ <n-pagination page-size={10} total={85}>
30
+ <span slot="total-text">总共 85 条数据</span>
31
+ </n-pagination>
32
+ <h4>使用函数:</h4>
33
+ <n-pagination
34
+ page-size={10}
35
+ total={85}
36
+ total-text={function () {
37
+ return function (total, rangs) {
38
+ return `${rangs.join('~')} 共 ${total} 项`;
39
+ };
40
+ }}
41
+ />
42
+ ```
@@ -1,2 +1,2 @@
1
- import{template as t}from"solid-js/web";import{memo as e}from"solid-js/web";import{insert as i}from"solid-js/web";import{getOwner as o}from"solid-js/web";import{effect as l}from"solid-js/web";import{delegateEvents as n}from"solid-js/web";import{createComponent as r}from"solid-js/web";import{classList as s}from"solid-js/web";let a=t("<li>"),p=t(`<li><slot name="total-text"><n-typography>共 <!> 项`,!0,!1),m=t("<style> "),v=t("<style>"),d=t(`<nav aria-label="pagination" class="pagination"><ul><li><n-button class="pagination-item pagination-prev">〈</n-button></li><li><n-button class="pagination-item pagination-next">〉`,!0,!1),u=t('<li><n-button class="pagination-item">',!0,!1);import{For as c,Show as f,batch as g,createEffect as h,createMemo as $,createSignal as _,mergeProps as b,splitProps as w,untrack as C}from"solid-js";import x from"@moneko/common/lib/isFunction";import{css as y}from"@moneko/css";import{customElement as z}from"solid-element";import{styles as j}from"./styles";import"../button";import S from"../theme";import"../typography";function T(t){let{baseStyle:n}=S,[b,z]=w(t,["page","pageSize","total","css","totalText"]),[T,k]=_(1),[M,E]=_(20),[q,A]=_(0);h(()=>{g(()=>{"number"==typeof b.page&&b.page!==C(T)&&k(b.page),"number"==typeof b.pageSize&&b.pageSize!==C(M)&&E(b.pageSize),"number"==typeof b.total&&b.total!==C(q)&&A(b.total)})});let F=$(()=>Math.ceil(q()/M())),L=$(()=>{let t=F(),e=[];if(t<=5)for(let i=1;i<=t;i++)e.push(i);else{let i=Math.min(t,Math.max(1,T()-Math.floor(2.5))+5-1);for(let t=i-5+1;t<=i;t++)e.push(t)}if(e.length){let i=e[e.length-1],o=e[0];o>=2&&(2===o?e.splice(0,1,"p"):e.unshift("p"),e.unshift(1),i<t&&(i+=1,e.push(i))),i===t-1?(e.splice(e.length-1,1,"n"),e.push(t)):i<t-1&&(e.push("n"),e.push(t))}return e});function O(t){let e=C(T),i="n"===t?e+5:"p"===t?e-5:t;i<1?i=1:i>C(F)&&(i=C(F)),e!==i&&(void 0===b.page&&k(i),null==z.onChange||z.onChange.call(z,i,C(M)))}let B=()=>{let t=$(()=>[(T()-1)*M()+1,T()*M()]);return r(f,{get when(){return!1!==b.totalText},get children(){let l=a();return i(l,(()=>{let l=e(()=>!!x(b.totalText));return()=>l()?b.totalText(q(),t()):(()=>{let t=p(),e=t.firstChild,l=e.firstChild,n=l.firstChild.nextSibling;return n.nextSibling,e._$owner=o(),l._$owner=o(),i(l,q,n),t})()})()),l}})};return r(f,{get when(){return L().length},get children(){return[(()=>{let t=m(),e=t.firstChild;return l(()=>e.data=n()),t})(),(()=>{let t=v();return t.textContent=j,t})(),r(f,{get when(){return b.css},get children(){let t=m(),e=t.firstChild;return l(()=>e.data=y(b.css)),t}}),(()=>{let t=d(),e=t.firstChild,n=e.firstChild,a=n.firstChild,p=n.nextSibling,m=p.firstChild;return i(e,r(B,{}),n),a.$$click=()=>O(C(T)-1),a.flat=!0,a.circle=!0,a._$owner=o(),i(e,r(c,{get each(){return L()},children:t=>{let e=$(()=>t===T());return(()=>{let n=u(),r=n.firstChild;return r.$$click=()=>O(t),r.circle="number"!=typeof t,r._$owner=o(),i(r,t),l(i=>{let o={[`pagination-${t}`]:"number"!=typeof t},l=z.size,n=!e(),a=e()?"primary":"default",p=e(),m=e()&&"page";return i._v$5=s(r,o,i._v$5),l!==i._v$6&&(r.size=i._v$6=l),n!==i._v$7&&(r.flat=i._v$7=n),a!==i._v$8&&(r.type=i._v$8=a),p!==i._v$9&&(r.fill=i._v$9=p),m!==i._v$10&&(r.ariaCurrent=i._v$10=m),i},{_v$5:void 0,_v$6:void 0,_v$7:void 0,_v$8:void 0,_v$9:void 0,_v$10:void 0}),n})()}}),p),m.$$click=()=>O(C(T)+1),m.flat=!0,m.circle=!0,m._$owner=o(),l(t=>{let e=z.size,i=1===T(),o=z.size,l=T()===F();return e!==t._v$&&(a.size=t._v$=e),i!==t._v$2&&(a.disabled=t._v$2=i),o!==t._v$3&&(m.size=t._v$3=o),l!==t._v$4&&(m.disabled=t._v$4=l),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),t})()]}})}z("n-pagination",{class:void 0,css:void 0,page:void 0,pageSize:void 0,total:0,size:void 0,onChange:void 0,totalText:void 0},(t,e)=>{let i=e.element,o=b({css:i.css,onChange(t,e){i.dispatchEvent(new CustomEvent("change",{detail:[t,e]}))}},t,{totalText:!!i.querySelector("[slot='total-text']")||t.totalText});return h(()=>{i.removeAttribute("css")}),r(T,o)});export default T;n(["click"]);
1
+ import{template as t}from"solid-js/web";import{memo as e}from"solid-js/web";import{insert as i}from"solid-js/web";import{getOwner as o}from"solid-js/web";import{effect as l}from"solid-js/web";import{delegateEvents as n}from"solid-js/web";import{createComponent as r}from"solid-js/web";import{classList as s}from"solid-js/web";let a=t("<li>"),p=t(`<li><slot name="total-text"><n-typography>共 <!> 项`,!0,!1),m=t("<style> "),v=t("<style>"),d=t(`<nav aria-label="pagination" class="pagination"><ul><li><n-button class="pagination-item pagination-prev">〈</n-button></li><li><n-button class="pagination-item pagination-next">〉`,!0,!1),u=t('<li><n-button class="pagination-item">',!0,!1);import{batch as c,createEffect as f,createMemo as g,createSignal as h,For as $,mergeProps as _,Show as b,splitProps as w,untrack as C}from"solid-js";import x from"@moneko/common/lib/isFunction";import{css as y}from"@moneko/css";import{customElement as z}from"solid-element";import j from"../theme";import{styles as S}from"./styles";import"../button";import"../typography";function T(t){let{baseStyle:n}=j,[_,z]=w(t,["page","pageSize","total","css","totalText"]),[T,k]=h(1),[M,E]=h(20),[q,A]=h(0);f(()=>{c(()=>{"number"==typeof _.page&&_.page!==C(T)&&k(_.page),"number"==typeof _.pageSize&&_.pageSize!==C(M)&&E(_.pageSize),"number"==typeof _.total&&_.total!==C(q)&&A(_.total)})});let F=g(()=>Math.ceil(q()/M())),L=g(()=>{let t=F(),e=[];if(t<=5)for(let i=1;i<=t;i++)e.push(i);else{let i=Math.min(t,Math.max(1,T()-Math.floor(2.5))+5-1);for(let t=i-5+1;t<=i;t++)e.push(t)}if(e.length){let i=e[e.length-1],o=e[0];o>=2&&(2===o?e.splice(0,1,"p"):e.unshift("p"),e.unshift(1),i<t&&(i+=1,e.push(i))),i===t-1?(e.splice(e.length-1,1,"n"),e.push(t)):i<t-1&&(e.push("n"),e.push(t))}return e});function O(t){let e=C(T),i="n"===t?e+5:"p"===t?e-5:t;i<1?i=1:i>C(F)&&(i=C(F)),e!==i&&(void 0===_.page&&k(i),null==z.onChange||z.onChange.call(z,i,C(M)))}let B=()=>{let t=g(()=>[(T()-1)*M()+1,T()*M()]);return r(b,{get when(){return!1!==_.totalText},get children(){let l=a();return i(l,(()=>{let l=e(()=>!!x(_.totalText));return()=>l()?_.totalText(q(),t()):(()=>{let t=p(),e=t.firstChild,l=e.firstChild,n=l.firstChild.nextSibling;return n.nextSibling,e._$owner=o(),l._$owner=o(),i(l,q,n),t})()})()),l}})};return r(b,{get when(){return L().length},get children(){return[(()=>{let t=m(),e=t.firstChild;return l(()=>e.data=n()),t})(),(()=>{let t=v();return t.textContent=S,t})(),r(b,{get when(){return _.css},get children(){let t=m(),e=t.firstChild;return l(()=>e.data=y(_.css)),t}}),(()=>{let t=d(),e=t.firstChild,n=e.firstChild,a=n.firstChild,p=n.nextSibling,m=p.firstChild;return i(e,r(B,{}),n),a.$$click=()=>{O(C(T)-1)},a.flat=!0,a.circle=!0,a._$owner=o(),i(e,r($,{get each(){return L()},children:t=>{let e=g(()=>t===T());return(()=>{let n=u(),r=n.firstChild;return r.$$click=()=>{O(t)},r.circle="number"!=typeof t,r._$owner=o(),i(r,t),l(i=>{let o={[`pagination-${t}`]:"number"!=typeof t},l=z.size,n=!e(),a=e()?"primary":"default",p=e(),m=e()&&"page";return i._v$5=s(r,o,i._v$5),l!==i._v$6&&(r.size=i._v$6=l),n!==i._v$7&&(r.flat=i._v$7=n),a!==i._v$8&&(r.type=i._v$8=a),p!==i._v$9&&(r.fill=i._v$9=p),m!==i._v$10&&(r.ariaCurrent=i._v$10=m),i},{_v$5:void 0,_v$6:void 0,_v$7:void 0,_v$8:void 0,_v$9:void 0,_v$10:void 0}),n})()}}),p),m.$$click=()=>{O(C(T)+1)},m.flat=!0,m.circle=!0,m._$owner=o(),l(t=>{let e=z.size,i=1===T(),o=z.size,l=T()===F();return e!==t._v$&&(a.size=t._v$=e),i!==t._v$2&&(a.disabled=t._v$2=i),o!==t._v$3&&(m.size=t._v$3=o),l!==t._v$4&&(m.disabled=t._v$4=l),t},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),t})()]}})}z("n-pagination",{class:void 0,css:void 0,page:void 0,pageSize:void 0,total:0,size:void 0,onChange:void 0,totalText:void 0},(t,e)=>{let i=e.element,o=_({css:i.css,onChange(t,e){i.dispatchEvent(new CustomEvent("change",{detail:[t,e]}))}},t,{totalText:!!i.querySelector("[slot='total-text']")||t.totalText});return f(()=>{i.removeAttribute("css")}),r(T,o)});export default T;n(["click"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/pagination/index.tsx"],"sourcesContent":["import {\n For,\n Show,\n batch,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { styles } from './styles';\nimport '../button';\nimport theme from '../theme';\nimport '../typography';\nimport type { BasicConfig, CustomElement } from '..';\n\nfunction Pagination(_: PaginationProps) {\n const { baseStyle } = theme;\n const maxCount = 5;\n const [local, other] = splitProps(_, ['page', 'pageSize', 'total', 'css', 'totalText']);\n const [page, setPage] = createSignal(1);\n const [pageSize, setPageSize] = createSignal(20);\n const [total, setTotal] = createSignal(0);\n\n createEffect(() => {\n batch(() => {\n if (typeof local.page === 'number' && local.page !== untrack(page)) {\n setPage(local.page);\n }\n if (typeof local.pageSize === 'number' && local.pageSize !== untrack(pageSize)) {\n setPageSize(local.pageSize);\n }\n if (typeof local.total === 'number' && local.total !== untrack(total)) {\n setTotal(local.total);\n }\n });\n });\n const totalPages = createMemo(() => Math.ceil(total() / pageSize()));\n const pages = createMemo(() => {\n const totals = totalPages();\n const arr: (number | 'p' | 'n')[] = [];\n\n if (totals <= maxCount) {\n for (let i = 1; i <= totals; i++) {\n arr.push(i);\n }\n } else {\n const right = Math.min(totals, Math.max(1, page() - Math.floor(maxCount / 2)) + maxCount - 1);\n\n for (let i = right - maxCount + 1; i <= right; i++) {\n arr.push(i);\n }\n }\n\n if (arr.length) {\n let last = arr[arr.length - 1] as number;\n const fast = arr[0] as number;\n\n if (fast >= 2) {\n if (fast === 2) {\n arr.splice(0, 1, 'p');\n } else {\n arr.unshift('p');\n }\n arr.unshift(1);\n if (last < totals) {\n last += 1;\n arr.push(last);\n }\n }\n if (last === totals - 1) {\n arr.splice(arr.length - 1, 1, 'n');\n arr.push(totals);\n } else if (last < totals - 1) {\n arr.push('n');\n arr.push(totals);\n }\n }\n return arr;\n });\n\n function changePage(curr: number | 'p' | 'n') {\n const p = untrack(page);\n let next = curr === 'n' ? p + maxCount : curr === 'p' ? p - maxCount : curr;\n\n if (next < 1) {\n next = 1;\n } else if (next > untrack(totalPages)) {\n next = untrack(totalPages);\n }\n if (p !== next) {\n if (local.page === void 0) {\n setPage(next);\n }\n other.onChange?.(next, untrack(pageSize));\n }\n }\n const TotalText = () => {\n const ranges = createMemo(() => [(page() - 1) * pageSize() + 1, page() * pageSize()]);\n\n return (\n <Show when={local.totalText !== false}>\n <li>\n {isFunction(local.totalText) ? (\n local.totalText(total(), ranges())\n ) : (\n <li>\n <slot name=\"total-text\">\n <n-typography>共 {total()} 项</n-typography>\n </slot>\n </li>\n )}\n </li>\n </Show>\n );\n };\n\n return (\n <Show when={pages().length}>\n <style textContent={baseStyle()} />\n <style textContent={styles} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <nav aria-label=\"pagination\" class=\"pagination\">\n <ul>\n <TotalText />\n <li>\n <n-button\n class=\"pagination-item pagination-prev\"\n size={other.size}\n flat={true}\n circle={true}\n disabled={page() === 1}\n onClick={() => changePage(untrack(page) - 1)}\n >\n 〈\n </n-button>\n </li>\n <For each={pages()}>\n {(curr) => {\n const isCurrent = createMemo(() => curr === page());\n\n return (\n <li>\n <n-button\n class=\"pagination-item\"\n classList={{\n [`pagination-${curr}`]: typeof curr !== 'number',\n }}\n size={other.size}\n flat={!isCurrent()}\n circle={typeof curr !== 'number'}\n type={isCurrent() ? 'primary' : 'default'}\n fill={isCurrent()}\n aria-current={isCurrent() && 'page'}\n onClick={() => changePage(curr)}\n >\n {curr}\n </n-button>\n </li>\n );\n }}\n </For>\n <li>\n <n-button\n class=\"pagination-item pagination-next\"\n size={other.size}\n flat={true}\n circle={true}\n disabled={page() === totalPages()}\n onClick={() => changePage(untrack(page) + 1)}\n >\n 〉\n </n-button>\n </li>\n </ul>\n </nav>\n </Show>\n );\n}\n\n/** API */\nexport interface PaginationProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义类名 */\n css?: string;\n /** 当前页数\n * @default 1\n */\n page?: number;\n /** 每页显示的数据条目数量\n * @default 20\n */\n pageSize?: number;\n /** 总数\n * @default 0\n */\n total?: number;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 用于显示数据总量和当前数据顺序;\n * 支持直接赋值给 'totalText' 属性\n * 或者通过[slot=\"total-text\"]插槽\n * @default true\n */\n totalText?: ((total: number, range: [start: number, end: number]) => JSX.Element) | false;\n /** 值修改时的回调方法 */\n onChange?(page: number, pageSize: number): void;\n children?: JSX.Element;\n}\nexport type PaginationElement = CustomElement<PaginationProps>;\n\ncustomElement<PaginationProps>(\n 'n-pagination',\n {\n class: void 0,\n css: void 0,\n page: void 0,\n pageSize: void 0,\n total: 0,\n size: void 0,\n onChange: void 0,\n totalText: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n onChange(page: number, pageSize: number) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [page, pageSize],\n }),\n );\n },\n },\n _,\n {\n totalText: (!!el.querySelector(\"[slot='total-text']\") as false) || _.totalText,\n },\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return <Pagination {...props} />;\n },\n);\nexport default Pagination;\n"],"names":["For","Show","batch","createEffect","createMemo","createSignal","mergeProps","splitProps","untrack","isFunction","css","customElement","styles","theme","Pagination","_","baseStyle","local","other","page","setPage","pageSize","setPageSize","total","setTotal","totalPages","Math","ceil","pages","totals","arr","i","push","right","min","max","floor","maxCount","length","last","fast","splice","unshift","changePage","curr","p","next","onChange","TotalText","ranges","totalText","isCurrent","size","class","opt","el","element","props","dispatchEvent","CustomEvent","detail","querySelector","removeAttribute"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/pagination/index.tsx"],"sourcesContent":["import {\n batch,\n createEffect,\n createMemo,\n createSignal,\n For,\n mergeProps,\n Show,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { css } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BasicConfig, CustomElement } from '..';\nimport theme from '../theme';\n\nimport { styles } from './styles';\n\nimport '../button';\nimport '../typography';\n\nfunction Pagination(_: PaginationProps) {\n const { baseStyle } = theme;\n const maxCount = 5;\n const [local, other] = splitProps(_, ['page', 'pageSize', 'total', 'css', 'totalText']);\n const [page, setPage] = createSignal(1);\n const [pageSize, setPageSize] = createSignal(20);\n const [total, setTotal] = createSignal(0);\n\n createEffect(() => {\n batch(() => {\n if (typeof local.page === 'number' && local.page !== untrack(page)) {\n setPage(local.page);\n }\n if (typeof local.pageSize === 'number' && local.pageSize !== untrack(pageSize)) {\n setPageSize(local.pageSize);\n }\n if (typeof local.total === 'number' && local.total !== untrack(total)) {\n setTotal(local.total);\n }\n });\n });\n const totalPages = createMemo(() => Math.ceil(total() / pageSize()));\n const pages = createMemo(() => {\n const totals = totalPages();\n const arr: (number | 'p' | 'n')[] = [];\n\n if (totals <= maxCount) {\n for (let i = 1; i <= totals; i++) {\n arr.push(i);\n }\n } else {\n const right = Math.min(totals, Math.max(1, page() - Math.floor(maxCount / 2)) + maxCount - 1);\n\n for (let i = right - maxCount + 1; i <= right; i++) {\n arr.push(i);\n }\n }\n\n if (arr.length) {\n let last = arr[arr.length - 1] as number;\n const fast = arr[0] as number;\n\n if (fast >= 2) {\n if (fast === 2) {\n arr.splice(0, 1, 'p');\n } else {\n arr.unshift('p');\n }\n arr.unshift(1);\n if (last < totals) {\n last += 1;\n arr.push(last);\n }\n }\n if (last === totals - 1) {\n arr.splice(arr.length - 1, 1, 'n');\n arr.push(totals);\n } else if (last < totals - 1) {\n arr.push('n');\n arr.push(totals);\n }\n }\n return arr;\n });\n\n function changePage(curr: number | 'p' | 'n') {\n const p = untrack(page);\n let next = curr === 'n' ? p + maxCount : curr === 'p' ? p - maxCount : curr;\n\n if (next < 1) {\n next = 1;\n } else if (next > untrack(totalPages)) {\n next = untrack(totalPages);\n }\n if (p !== next) {\n if (local.page === void 0) {\n setPage(next);\n }\n other.onChange?.(next, untrack(pageSize));\n }\n }\n const TotalText = () => {\n const ranges = createMemo(() => [(page() - 1) * pageSize() + 1, page() * pageSize()]);\n\n return (\n <Show when={local.totalText !== false}>\n <li>\n {isFunction(local.totalText) ? (\n local.totalText(total(), ranges())\n ) : (\n <li>\n <slot name=\"total-text\">\n <n-typography>共 {total()} 项</n-typography>\n </slot>\n </li>\n )}\n </li>\n </Show>\n );\n };\n\n return (\n <Show when={pages().length}>\n <style textContent={baseStyle()} />\n <style textContent={styles} />\n <Show when={local.css}>\n <style textContent={css(local.css)} />\n </Show>\n <nav aria-label=\"pagination\" class=\"pagination\">\n <ul>\n <TotalText />\n <li>\n <n-button\n class=\"pagination-item pagination-prev\"\n size={other.size}\n flat={true}\n circle={true}\n disabled={page() === 1}\n onClick={() => {\n changePage(untrack(page) - 1);\n }}\n >\n 〈\n </n-button>\n </li>\n <For each={pages()}>\n {(curr) => {\n const isCurrent = createMemo(() => curr === page());\n\n return (\n <li>\n <n-button\n class=\"pagination-item\"\n classList={{\n [`pagination-${curr}`]: typeof curr !== 'number',\n }}\n size={other.size}\n flat={!isCurrent()}\n circle={typeof curr !== 'number'}\n type={isCurrent() ? 'primary' : 'default'}\n fill={isCurrent()}\n aria-current={isCurrent() && 'page'}\n onClick={() => {\n changePage(curr);\n }}\n >\n {curr}\n </n-button>\n </li>\n );\n }}\n </For>\n <li>\n <n-button\n class=\"pagination-item pagination-next\"\n size={other.size}\n flat={true}\n circle={true}\n disabled={page() === totalPages()}\n onClick={() => {\n changePage(untrack(page) + 1);\n }}\n >\n 〉\n </n-button>\n </li>\n </ul>\n </nav>\n </Show>\n );\n}\n\n/** API */\nexport interface PaginationProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义类名 */\n css?: string;\n /** 当前页数\n * @default 1\n */\n page?: number;\n /** 每页显示的数据条目数量\n * @default 20\n */\n pageSize?: number;\n /** 总数\n * @default 0\n */\n total?: number;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 用于显示数据总量和当前数据顺序;\n * 支持直接赋值给 'totalText' 属性\n * 或者通过[slot=\"total-text\"]插槽\n * @default true\n */\n totalText?: ((total: number, range: [start: number, end: number]) => JSX.Element) | false;\n /** 值修改时的回调方法 */\n onChange?(page: number, pageSize: number): void;\n children?: JSX.Element;\n}\nexport type PaginationElement = CustomElement<PaginationProps>;\n\ncustomElement<PaginationProps>(\n 'n-pagination',\n {\n class: void 0,\n css: void 0,\n page: void 0,\n pageSize: void 0,\n total: 0,\n size: void 0,\n onChange: void 0,\n totalText: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n onChange(page: number, pageSize: number) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [page, pageSize],\n }),\n );\n },\n },\n _,\n {\n totalText: (!!el.querySelector(\"[slot='total-text']\") as false) || _.totalText,\n },\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return <Pagination {...props} />;\n },\n);\nexport default Pagination;\n"],"names":["batch","createEffect","createMemo","createSignal","For","mergeProps","Show","splitProps","untrack","isFunction","css","customElement","theme","styles","Pagination","_","baseStyle","local","other","page","setPage","pageSize","setPageSize","total","setTotal","totalPages","Math","ceil","pages","totals","arr","i","push","right","min","max","floor","maxCount","length","last","fast","splice","unshift","changePage","curr","p","next","onChange","TotalText","ranges","totalText","isCurrent","size","class","opt","el","element","props","dispatchEvent","CustomEvent","detail","querySelector","removeAttribute"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 反馈
3
+ title: 气泡卡片
4
+ subtitle: n-popover
5
+ icon: ⌑
6
+ ---
7
+
8
+ # Popover 气泡卡片
9
+
10
+ > 气泡卡片
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: 基本使用
3
+ order: 1
4
+ ---
5
+
6
+ ```html
7
+ <n-popover arrow="true" placement="bottomLeft">
8
+ <span>hover</span>
9
+ </n-popover>
10
+ <script>
11
+ const el = container.querySelector('n-popover');
12
+
13
+ el.content = function () {
14
+ const c = document.createElement('div');
15
+
16
+ c.innerHTML = `<n-typography type="success">success</n-typography><n-typography type="error">danger</n-typography>`;
17
+ return c;
18
+ };
19
+ </script>
20
+ ```
21
+
22
+ ```jsx
23
+ <n-popover
24
+ arrow
25
+ placement="bottomLeft"
26
+ content={() => (
27
+ <div>
28
+ <n-typography type="success">success</n-typography>
29
+ <n-typography type="error">danger</n-typography>
30
+ </div>
31
+ )}
32
+ >
33
+ <span>hover</span>
34
+ </n-popover>
35
+ ```
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: 点击触发
3
+ description: 将 `trigger` 为 `click`,将可以通过鼠标点击触发提示框显示
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-popover arrow="true" trigger="click" content="点击我">点击我</n-popover>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-popover arrow content="点击我" trigger="click">
13
+ 点击我
14
+ </n-popover>
15
+ ```