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/select/index.tsx"],"sourcesContent":["import {\n For,\n Show,\n batch,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onMount,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport { FieldName } from '../basic-config';\nimport Dropdown, { defaultProps } from '../dropdown';\nimport getOptions from '../get-options';\nimport '../tag';\nimport type { CustomElement, DropdownMultipleProps, DropdownProps, MenuOption } from '..';\n\nfunction Select(props: SelectProps) {\n const [local, other] = splitProps(props, [\n 'css',\n 'value',\n 'onChange',\n 'open',\n 'onOpenChange',\n 'label',\n 'prefixIcon',\n 'suffixIcon',\n 'placeholder',\n 'trigger',\n 'options',\n ]);\n let ref: HTMLInputElement | undefined;\n let tagsRef: HTMLDivElement | undefined;\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [value, setValue] = createSignal<(string | number)[]>([]);\n const [x, setX] = createSignal<string>('');\n const [options, setOptions] = createSignal<MenuOption[]>([]);\n const [kv, setKv] = createSignal<Record<string, MenuOption>>({});\n\n const fieldNames = createMemo(() => Object.assign({}, FieldName, other.fieldNames));\n\n function getKv(arr: MenuOption[], fieldDic: typeof FieldName) {\n const optKv: Record<string, MenuOption> = {};\n\n for (let i = 0, len = arr.length; i < len; i++) {\n const item = arr[i];\n const _options = item[fieldDic.options];\n\n optKv[item[fieldDic.value]!] = item;\n if (Array.isArray(_options)) {\n Object.assign(optKv, getKv(_options as MenuOption[], fieldDic));\n }\n const _children = item[fieldDic.children];\n\n optKv[item[fieldDic.value]!] = item;\n if (Array.isArray(_children)) {\n Object.assign(optKv, getKv(_children as MenuOption[], fieldDic));\n }\n }\n return optKv;\n }\n\n createEffect(() => {\n batch(() => {\n const fieldDic = fieldNames();\n const opts = getOptions(local.options, fieldDic);\n\n setOptions(opts);\n setKv(getKv(opts, fieldDic));\n });\n });\n\n function openChange(next: boolean | null) {\n if (!other.disabled) {\n if (isFunction(local.onOpenChange)) {\n local.onOpenChange(next);\n }\n if (local.open === void 0) {\n setOpen(next);\n }\n }\n }\n function click(e: MouseEvent) {\n if (\n (e.target as Element)?.parentElement ===\n (ref?.parentNode?.parentNode as Document)?.activeElement\n ) {\n openChange(!untrack(open));\n }\n }\n function onChange(val: (string | number)[] | string | number | undefined, item: MenuOption) {\n if (local.value === void 0) {\n setValue(val ? (Array.isArray(val) ? val : [val]) : []);\n }\n if (isFunction(local.onChange)) {\n local.onChange(val, item);\n }\n }\n function keyDown({ key }: { key: string }) {\n switch (key) {\n case 'ArrowDown':\n // console.log(key);\n // Object.keys(state.current.kv).indexOf(state.current.value)\n break;\n case 'ArrowUp':\n break;\n case 'Backspace':\n if (other.multiple) {\n const old = [...untrack(value)];\n\n old.splice(-1, 1);\n onChange(old, untrack(kv)[untrack(value).length - 1]);\n } else {\n onChange(void 0, untrack(kv)[untrack(value)[0]]);\n }\n break;\n case 'Enter':\n openChange(!untrack(open));\n break;\n case 'Escape':\n openChange(false);\n break;\n default:\n break;\n }\n }\n function preventDefault(e: Event) {\n e.stopPropagation();\n e.preventDefault();\n }\n function deleteValue(v: string | number, e: CustomEvent) {\n preventDefault(e);\n onChange(untrack(value).filter((old) => old !== v) as never, untrack(kv)[v]);\n }\n function focus(e: FocusEvent | MouseEvent) {\n preventDefault(e);\n openChange(true);\n }\n function blur(e: FocusEvent) {\n preventDefault(e);\n if (untrack(open)) {\n openChange(false);\n }\n }\n\n createEffect(() => {\n batch(() => {\n if (local.open !== untrack(open) && local.open !== void 0) {\n setOpen(local.open);\n }\n if (local.value !== void 0 && local.value !== null) {\n setValue(Array.isArray(local.value) ? local.value : [local.value]);\n } else {\n setValue([]);\n }\n });\n });\n onMount(() => {\n if (local.value === void 0) {\n const val = other.defaultValue;\n\n setValue(val ? (Array.isArray(val) ? val : [val]) : []);\n }\n });\n createEffect(() => {\n if (local.label) {\n setX(`.label {--x: ${tagsRef?.offsetLeft || 0}px; }`);\n }\n });\n const prefix = createMemo(() =>\n isFunction(local.prefixIcon) ? (local.prefixIcon() as JSX.Element) : local.prefixIcon,\n );\n const label = createMemo(() =>\n isFunction(local.label) ? (local.label() as JSX.Element) : local.label,\n );\n const suffix = createMemo(() =>\n isFunction(local.suffixIcon) ? (local.suffixIcon() as JSX.Element) : local.suffixIcon,\n );\n\n return (\n <Dropdown\n placement=\"left\"\n css={style + x() + (local.css || '')}\n trigger=\"none\"\n items={options()}\n value={value() as unknown as string}\n onChange={onChange}\n open={open()}\n onOpenChange={openChange}\n {...other}\n >\n <div\n ref={ref}\n class=\"select\"\n tabindex={other.disabled ? -1 : 0}\n onKeyDown={keyDown}\n onFocus={focus}\n onBlur={blur}\n aria-disabled={other.disabled}\n >\n <Show when={prefix()}>\n <span class=\"prefix\">{prefix()}</span>\n </Show>\n <Show when={label()}>\n <label class=\"label\">{label()}</label>\n </Show>\n <div class=\"tags\" ref={tagsRef} onMouseDown={click}>\n <Show\n when={other.multiple}\n fallback={\n <Show\n when={value().length}\n fallback={\n <Show when={local.placeholder}>\n <span class=\"placeholder\">{local.placeholder}</span>\n </Show>\n }\n >\n <span\n class=\"value\"\n classList={{\n opacity: !!open(),\n }}\n >\n {kv()[value()[0]]?.[fieldNames().label] || value()[0]}\n </span>\n </Show>\n }\n >\n <For\n each={value()}\n fallback={\n <Show when={local.placeholder}>\n <span class=\"placeholder\">{local.placeholder}</span>\n </Show>\n }\n >\n {(v) => (\n <n-tag\n class=\"tag\"\n classList={{\n opacity: !!open(),\n }}\n type={kv()[v]?.type || 'primary'}\n color={kv()[v]?.color}\n icon={kv()[v]?.icon}\n close-icon={!other.disabled && !kv()[v]?.disabled}\n onClose={deleteValue.bind(null, v)}\n disabled={other.disabled || kv()[v]?.disabled}\n >\n {kv()[v]?.[fieldNames().label] || v}\n </n-tag>\n )}\n </For>\n </Show>\n </div>\n <Show when={suffix()}>\n <span class=\"suffix\">{suffix()}</span>\n </Show>\n </div>\n </Dropdown>\n );\n}\n\n/** 通用API */\ninterface SelectBaseProps {\n /** 占位符 */\n placeholder?: string;\n /** 选项 */\n options?: (MenuOption | string | number)[];\n /** 标题 */\n label?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n /** 前缀图标 */\n prefixIcon?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n /** 后缀图标 */\n suffixIcon?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n style?: Record<string, string | number>;\n}\n\n/** 单选 */\nexport interface SelectProps extends Omit<DropdownProps, 'items' | 'children'>, SelectBaseProps {\n /** 值 */\n value?: string | number;\n}\n\n/** 多选 */\nexport interface SelectMultipleProps\n extends Omit<DropdownMultipleProps, 'items' | 'children'>,\n SelectBaseProps {\n /** 值\n * @default []\n */\n value?: (string | number)[];\n}\nexport type SelectElement = CustomElement<SelectProps, 'onChange' | 'onOpenChange'>;\nexport type SelectMultipleElement = CustomElement<SelectMultipleProps, 'onChange' | 'onOpenChange'>;\n\ncustomElement<SelectProps>(\n 'n-select',\n {\n ...defaultProps,\n options: [],\n label: void 0,\n placeholder: '请选择',\n dropdownMatchSelectWidth: true,\n prefixIcon: void 0,\n suffixIcon: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onChange(key: string | number, item: MenuOption) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onOpenChange(open: boolean | null) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('options');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return <Select {...props} />;\n },\n);\nexport default Select;\n"],"names":["For","Show","batch","createEffect","createMemo","createSignal","mergeProps","onMount","splitProps","untrack","isFunction","customElement","style","FieldName","Dropdown","defaultProps","getOptions","Select","props","ref","tagsRef","local","other","open","setOpen","value","setValue","x","setX","options","setOptions","kv","setKv","fieldNames","Object","assign","openChange","next","disabled","onOpenChange","click","e","target","parentElement","parentNode","activeElement","onChange","val","item","Array","isArray","keyDown","key","multiple","old","splice","length","preventDefault","stopPropagation","deleteValue","v","filter","focus","blur","fieldDic","opts","getKv","arr","optKv","i","len","_options","_children","children","defaultValue","label","offsetLeft","prefix","prefixIcon","suffix","suffixIcon","css","placeholder","bind","type","color","icon","dropdownMatchSelectWidth","_","opt","el","element","dispatchEvent","CustomEvent","detail","removeAttribute"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/select/index.tsx"],"sourcesContent":["import {\n batch,\n createEffect,\n createMemo,\n createSignal,\n For,\n mergeProps,\n onMount,\n Show,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement, DropdownMultipleProps, DropdownProps, MenuOption } from '..';\nimport { FieldName } from '../basic-config';\nimport Dropdown, { defaultProps } from '../dropdown';\nimport getOptions from '../get-options';\n\nimport { style } from './style';\n\nimport '../tag';\n\nfunction Select(props: SelectProps) {\n const [local, other] = splitProps(props, [\n 'css',\n 'value',\n 'onChange',\n 'open',\n 'onOpenChange',\n 'label',\n 'prefixIcon',\n 'suffixIcon',\n 'placeholder',\n 'trigger',\n 'options',\n ]);\n let ref: HTMLInputElement | undefined;\n let tagsRef: HTMLDivElement | undefined;\n const [open, setOpen] = createSignal<boolean | null>(null);\n const [value, setValue] = createSignal<(string | number)[]>([]);\n const [x, setX] = createSignal<string>('');\n const [options, setOptions] = createSignal<MenuOption[]>([]);\n const [kv, setKv] = createSignal<Record<string, MenuOption | undefined>>({});\n\n const fieldNames = createMemo(() => Object.assign({}, FieldName, other.fieldNames));\n\n function getKv(arr: MenuOption[], fieldDic: typeof FieldName) {\n const optKv: Record<string, MenuOption> = {};\n\n for (let i = 0, len = arr.length; i < len; i++) {\n const item = arr[i];\n const _options = item[fieldDic.options];\n\n optKv[item[fieldDic.value]!] = item;\n if (Array.isArray(_options)) {\n Object.assign(optKv, getKv(_options as MenuOption[], fieldDic));\n }\n const _children = item[fieldDic.children];\n\n optKv[item[fieldDic.value]!] = item;\n if (Array.isArray(_children)) {\n Object.assign(optKv, getKv(_children as MenuOption[], fieldDic));\n }\n }\n return optKv;\n }\n\n createEffect(() => {\n batch(() => {\n const fieldDic = fieldNames();\n const opts = getOptions(local.options, fieldDic);\n\n setOptions(opts);\n setKv(getKv(opts, fieldDic));\n });\n });\n\n function openChange(next: boolean | null) {\n if (!other.disabled) {\n if (isFunction(local.onOpenChange)) {\n local.onOpenChange(next);\n }\n if (local.open === void 0) {\n setOpen(next);\n }\n }\n }\n function click(e: MouseEvent) {\n if (\n (e.target as Element | null)?.parentElement ===\n (ref?.parentNode?.parentNode as Document | null)?.activeElement\n ) {\n openChange(!untrack(open));\n }\n }\n function onChange(val: (string | number)[] | string | number | undefined, item?: MenuOption) {\n if (local.value === void 0) {\n setValue(val ? (Array.isArray(val) ? val : [val]) : []);\n }\n if (isFunction(local.onChange)) {\n local.onChange(val, item);\n }\n }\n function keyDown({ key }: { key: string }) {\n switch (key) {\n case 'ArrowDown':\n // console.log(key);\n // Object.keys(state.current.kv).indexOf(state.current.value)\n break;\n case 'ArrowUp':\n break;\n case 'Backspace':\n if (other.multiple) {\n const old = [...untrack(value)];\n\n old.splice(-1, 1);\n onChange(old, untrack(kv)[untrack(value).length - 1]);\n } else {\n onChange(void 0, untrack(kv)[untrack(value)[0]]);\n }\n break;\n case 'Enter':\n openChange(!untrack(open));\n break;\n case 'Escape':\n openChange(false);\n break;\n default:\n break;\n }\n }\n function preventDefault(e: Event) {\n e.stopPropagation();\n e.preventDefault();\n }\n function deleteValue(v: string | number, e: CustomEvent) {\n preventDefault(e);\n onChange(untrack(value).filter((old) => old !== v) as never, untrack(kv)[v]);\n }\n function focus(e: FocusEvent | MouseEvent) {\n preventDefault(e);\n openChange(true);\n }\n function blur(e: FocusEvent) {\n preventDefault(e);\n if (untrack(open)) {\n openChange(false);\n }\n }\n\n createEffect(() => {\n batch(() => {\n if (local.open !== untrack(open) && local.open !== void 0) {\n setOpen(local.open);\n }\n if (local.value !== void 0 && local.value !== null) {\n setValue(Array.isArray(local.value) ? local.value : [local.value]);\n } else {\n setValue([]);\n }\n });\n });\n onMount(() => {\n if (local.value === void 0) {\n const val = other.defaultValue;\n\n setValue(val ? (Array.isArray(val) ? val : [val]) : []);\n }\n });\n createEffect(() => {\n if (local.label) {\n setX(`.label {--x: ${tagsRef?.offsetLeft || 0}px; }`);\n }\n });\n const prefix = createMemo(() =>\n isFunction(local.prefixIcon) ? (local.prefixIcon() as JSX.Element) : local.prefixIcon,\n );\n const label = createMemo(() =>\n isFunction(local.label) ? (local.label() as JSX.Element) : local.label,\n );\n const suffix = createMemo(() =>\n isFunction(local.suffixIcon) ? (local.suffixIcon() as JSX.Element) : local.suffixIcon,\n );\n\n return (\n <Dropdown\n placement=\"left\"\n css={style + x() + (local.css || '')}\n trigger=\"none\"\n items={options()}\n value={value() as unknown as string}\n onChange={onChange}\n open={open()}\n onOpenChange={openChange}\n {...other}\n >\n <div\n ref={ref}\n class=\"select\"\n tabindex={other.disabled ? -1 : 0}\n onKeyDown={keyDown}\n onFocus={focus}\n onBlur={blur}\n aria-disabled={other.disabled}\n >\n <Show when={prefix()}>\n <span class=\"prefix\">{prefix()}</span>\n </Show>\n <Show when={label()}>\n <label class=\"label\">{label()}</label>\n </Show>\n <div class=\"tags\" ref={tagsRef} onMouseDown={click}>\n <Show\n when={other.multiple}\n fallback={\n <Show\n when={value().length}\n fallback={\n <Show when={local.placeholder}>\n <span class=\"placeholder\">{local.placeholder}</span>\n </Show>\n }\n >\n <span\n class=\"value\"\n classList={{\n opacity: !!open(),\n }}\n >\n {kv()[value()[0]]?.[fieldNames().label] || value()[0]}\n </span>\n </Show>\n }\n >\n <For\n each={value()}\n fallback={\n <Show when={local.placeholder}>\n <span class=\"placeholder\">{local.placeholder}</span>\n </Show>\n }\n >\n {(v) => (\n <n-tag\n class=\"tag\"\n classList={{\n opacity: !!open(),\n }}\n type={kv()[v]?.type || 'primary'}\n color={kv()[v]?.color}\n icon={kv()[v]?.icon}\n close-icon={!other.disabled && !kv()[v]?.disabled}\n onClose={deleteValue.bind(null, v)}\n disabled={other.disabled || kv()[v]?.disabled}\n >\n {kv()[v]?.[fieldNames().label] || v}\n </n-tag>\n )}\n </For>\n </Show>\n </div>\n <Show when={suffix()}>\n <span class=\"suffix\">{suffix()}</span>\n </Show>\n </div>\n </Dropdown>\n );\n}\n\n/** 通用API */\ninterface SelectBaseProps {\n /** 占位符 */\n placeholder?: string;\n /** 选项 */\n options?: (MenuOption | string | number)[];\n /** 标题 */\n label?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n /** 前缀图标 */\n prefixIcon?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n /** 后缀图标 */\n suffixIcon?: JSX.Element | (() => JSX.Element | (() => JSX.Element));\n style?: Record<string, string | number>;\n}\n\n/** 单选 */\nexport interface SelectProps extends Omit<DropdownProps, 'items' | 'children'>, SelectBaseProps {\n /** 值 */\n value?: string | number;\n}\n\n/** 多选 */\nexport interface SelectMultipleProps\n extends Omit<DropdownMultipleProps, 'items' | 'children'>,\n SelectBaseProps {\n /** 值\n * @default []\n */\n value?: (string | number)[];\n}\nexport type SelectElement = CustomElement<SelectProps, 'onChange' | 'onOpenChange'>;\nexport type SelectMultipleElement = CustomElement<SelectMultipleProps, 'onChange' | 'onOpenChange'>;\n\ncustomElement<SelectProps>(\n 'n-select',\n {\n ...defaultProps,\n options: [],\n label: void 0,\n placeholder: '请选择',\n dropdownMatchSelectWidth: true,\n prefixIcon: void 0,\n suffixIcon: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onChange(key: string | number, item: MenuOption) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: [key, item],\n }),\n );\n },\n onOpenChange(open: boolean | null) {\n el.dispatchEvent(\n new CustomEvent('openchange', {\n detail: open,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('options');\n el.removeAttribute('field-names');\n el.removeAttribute('css');\n });\n return <Select {...props} />;\n },\n);\nexport default Select;\n"],"names":["batch","createEffect","createMemo","createSignal","For","mergeProps","onMount","Show","splitProps","untrack","isFunction","customElement","FieldName","Dropdown","defaultProps","getOptions","style","Select","props","ref","tagsRef","local","other","open","setOpen","value","setValue","x","setX","options","setOptions","kv","setKv","fieldNames","Object","assign","openChange","next","disabled","onOpenChange","click","e","target","parentElement","parentNode","activeElement","onChange","val","item","Array","isArray","keyDown","key","multiple","old","splice","length","preventDefault","stopPropagation","deleteValue","v","filter","focus","blur","fieldDic","opts","getKv","arr","optKv","i","len","_options","_children","children","defaultValue","label","offsetLeft","prefix","prefixIcon","suffix","suffixIcon","css","placeholder","bind","type","color","icon","dropdownMatchSelectWidth","_","opt","el","element","dispatchEvent","CustomEvent","detail","removeAttribute"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 反馈
3
+ title: 骨架屏
4
+ subtitle: n-skeleton
5
+ icon: 👀
6
+ ---
7
+
8
+ # 骨架屏
9
+
10
+ > 网络较慢,需要长时间等待加载处理的情况下、图文信息内容较多的列表/卡片中、第一次加载数据的时候使用
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: 显示动画
3
+ description: 显示动画
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-skeleton active="true"></n-skeleton>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-skeleton active />
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: 显示头像
3
+ description: 显示头像
4
+ order: 4
5
+ ---
6
+
7
+ ```html
8
+ <n-skeleton avatar="true"></n-skeleton>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-skeleton avatar />
13
+ ```
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 最简单的使用
3
+ order: 1
4
+ ---
5
+
6
+ ```html
7
+ <n-skeleton></n-skeleton>
8
+ ```
9
+
10
+ ```jsx
11
+ <n-skeleton />
12
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: 自定义行数
3
+ description: 自定义行数
4
+ order: 5
5
+ ---
6
+
7
+ ```html
8
+ <n-skeleton rows="8" title="true" avatar="true"></n-skeleton>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-skeleton rows={8} title avatar />
13
+ ```
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 显示标题行
3
+ order: 2
4
+ ---
5
+
6
+ ```html
7
+ <n-skeleton title="true"></n-skeleton>
8
+ ```
9
+
10
+ ```jsx
11
+ <n-skeleton title />
12
+ ```
@@ -1,4 +1,4 @@
1
- import{template as t}from"solid-js/web";import{insert as e}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as r}from"solid-js/web";import{className as a}from"solid-js/web";let s=t("<style> "),n=t("<style>"),o=t('<div class="avatar">'),l=t('<div class="title">'),d=t('<div><div class="body"><div class="paragraph">'),c=t("<div>");import{For as g,Show as v,createMemo as b,mergeProps as p}from"solid-js";import{css as f,cx as m}from"@moneko/css";import{customElement as u}from"solid-element";import k from"../theme";let h=f`
1
+ import{template as t}from"solid-js/web";import{insert as e}from"solid-js/web";import{effect as i}from"solid-js/web";import{createComponent as r}from"solid-js/web";import{className as a}from"solid-js/web";let s=t("<style> "),n=t("<style>"),o=t('<div class="avatar">'),l=t('<div class="title">'),d=t('<div><div class="body"><div class="paragraph">'),c=t("<div>");import{createMemo as g,For as v,mergeProps as b,Show as p}from"solid-js";import{css as f,cx as m}from"@moneko/css";import{customElement as u}from"solid-element";import k from"../theme";let h=f`
2
2
  :host {
3
3
  display: block;
4
4
  inline-size: 100%;
@@ -68,7 +68,7 @@ import{template as t}from"solid-js/web";import{insert as e}from"solid-js/web";im
68
68
  background-position-x: -20%;
69
69
  }
70
70
  }
71
- `;function x(t){let{baseStyle:p,isDark:u}=k,x=b(()=>Array(t.rows).fill(0)),w=b(()=>u()?f`
71
+ `;function x(t){let{baseStyle:b,isDark:u}=k,x=g(()=>Array(t.rows).fill(0)),w=g(()=>u()?f`
72
72
  :host {
73
73
  --skeleton-bg: rgb(255 255 255 / 6%);
74
74
  --skeleton-bg-active: linear-gradient(
@@ -90,5 +90,5 @@ import{template as t}from"solid-js/web";import{insert as e}from"solid-js/web";im
90
90
  )
91
91
  transparent 180%/200% 100%;
92
92
  }
93
- `);return[(()=>{let t=s(),e=t.firstChild;return i(()=>e.data=p()),t})(),(()=>{let t=s(),e=t.firstChild;return i(()=>e.data=w()),t})(),(()=>{let t=n();return t.textContent=h,t})(),r(v,{get when(){return t.css},get children(){let e=s(),r=e.firstChild;return i(()=>r.data=f(t.css)),e}}),(()=>{let s=d(),n=s.firstChild,b=n.firstChild;return e(s,r(v,{get when(){return t.avatar},get children(){let e=o();return i(()=>e.classList.toggle("active",!!t.active)),e}}),n),e(n,r(v,{get when(){return t.title},get children(){let e=l();return i(()=>e.classList.toggle("active",!!t.active)),e}}),b),e(b,r(g,{get each(){return x()},children:()=>(()=>{let e=c();return i(()=>e.classList.toggle("active",!!t.active)),e})()})),i(()=>a(s,m("skeleton",t.class))),s})()]}u("n-skeleton",{rows:3,active:void 0,avatar:void 0,title:void 0,css:void 0,class:void 0},(t,e)=>{let i=e.element;return r(x,p({rows:i.rows,active:i.active,avatar:i.avatar,title:i.title,css:i.css},t))});export default x;
93
+ `);return[(()=>{let t=s(),e=t.firstChild;return i(()=>e.data=b()),t})(),(()=>{let t=s(),e=t.firstChild;return i(()=>e.data=w()),t})(),(()=>{let t=n();return t.textContent=h,t})(),r(p,{get when(){return t.css},get children(){let e=s(),r=e.firstChild;return i(()=>r.data=f(t.css)),e}}),(()=>{let s=d(),n=s.firstChild,g=n.firstChild;return e(s,r(p,{get when(){return t.avatar},get children(){let e=o();return i(()=>e.classList.toggle("active",!!t.active)),e}}),n),e(n,r(p,{get when(){return t.title},get children(){let e=l();return i(()=>e.classList.toggle("active",!!t.active)),e}}),g),e(g,r(v,{get each(){return x()},children:()=>(()=>{let e=c();return i(()=>e.classList.toggle("active",!!t.active)),e})()})),i(()=>a(s,m("skeleton",t.class))),s})()]}u("n-skeleton",{rows:3,active:void 0,avatar:void 0,title:void 0,css:void 0,class:void 0},(t,e)=>{let i=e.element;return r(x,b({rows:i.rows,active:i.active,avatar:i.avatar,title:i.title,css:i.css},t))});export default x;
94
94
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/skeleton/index.tsx"],"sourcesContent":["import { For, Show, createMemo, mergeProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nconst style = css`\n :host {\n display: block;\n inline-size: 100%;\n }\n\n .skeleton {\n display: flex;\n inline-size: 100%;\n gap: 16px;\n }\n\n .avatar,\n .title,\n .paragraph > div {\n overflow: hidden;\n border-radius: var(--border-radius);\n background: var(--skeleton-bg);\n transition: background-color var(--transition-duration) var(--transition-timing-function);\n }\n\n .avatar {\n border-radius: 50%;\n inline-size: 32px;\n block-size: 32px;\n }\n\n .body {\n flex: 1;\n }\n\n .title {\n margin-block-end: 16px;\n inline-size: 32%;\n block-size: 32px;\n }\n\n .paragraph {\n display: flex;\n padding: 0;\n flex-direction: column;\n gap: 12px;\n\n & > div {\n inline-size: 100%;\n block-size: 16px;\n list-style: none;\n\n &:last-of-type {\n inline-size: 65%;\n }\n }\n }\n\n .active {\n &::after {\n display: block;\n block-size: 100%;\n animation: skeleton-effect 1.4s var(--transition-timing-function) infinite;\n background: var(--skeleton-bg-active);\n content: '';\n transition: background-color var(--transition-duration) var(--transition-timing-function);\n }\n }\n\n @keyframes skeleton-effect {\n to {\n background-position-x: -20%;\n }\n }\n`;\n\nexport interface SkeletonProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 行\n * @default 3\n */\n rows?: number;\n /** 显示动画\n * @default false\n */\n active?: boolean;\n /** 显示头像\n * @default false\n */\n avatar?: boolean;\n /** 显示标题\n * @default false\n */\n title?: boolean;\n}\n\nfunction Skeleton(props: SkeletonProps) {\n const { baseStyle, isDark } = theme;\n const rows = createMemo(() => Array(props.rows).fill(0));\n const cssVar = createMemo(() => {\n if (isDark()) {\n return css`\n :host {\n --skeleton-bg: rgb(255 255 255 / 6%);\n --skeleton-bg-active: linear-gradient(\n 100deg,\n rgb(255 255 255 / 5%) 40%,\n rgb(255 255 255 / 15%) 50%,\n rgb(255 255 255 / 5%) 60%\n )\n transparent 180%/200% 100%;\n }\n `;\n }\n\n return css`\n :host {\n --skeleton-bg: rgb(0 0 0 / 6%);\n --skeleton-bg-active: linear-gradient(\n 100deg,\n rgb(0 0 0 / 5%) 40%,\n rgb(0 0 0 / 15%) 50%,\n rgb(0 0 0 / 5%) 60%\n )\n transparent 180%/200% 100%;\n }\n `;\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={cssVar()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div class={cx('skeleton', props.class)}>\n <Show when={props.avatar}>\n <div\n class=\"avatar\"\n classList={{\n active: props.active,\n }}\n />\n </Show>\n <div class=\"body\">\n <Show when={props.title}>\n <div\n class=\"title\"\n classList={{\n active: props.active,\n }}\n />\n </Show>\n <div class=\"paragraph\">\n <For each={rows()}>\n {() => (\n <div\n classList={{\n active: props.active,\n }}\n />\n )}\n </For>\n </div>\n </div>\n </div>\n </>\n );\n}\n\nexport type SkeletonElement = CustomElement<SkeletonProps>;\ncustomElement<SkeletonProps>(\n 'n-skeleton',\n {\n rows: 3,\n active: void 0,\n avatar: void 0,\n title: void 0,\n css: void 0,\n class: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n rows: el.rows,\n active: el.active,\n avatar: el.avatar,\n title: el.title,\n css: el.css,\n },\n _,\n );\n\n return <Skeleton {...props} />;\n },\n);\nexport default Skeleton;\n"],"names":["For","Show","createMemo","mergeProps","css","cx","customElement","theme","style","Skeleton","props","baseStyle","isDark","rows","Array","fill","cssVar","avatar","active","title","class","_","opt","el","element"],"mappings":"wWAAA,QAASA,OAAAA,CAAG,CAAEC,QAAAA,CAAI,CAAEC,cAAAA,CAAU,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AAC7D,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAAOC,MAAW,UAAW,CAG7B,IAAMC,EAAQJ,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsElB,CAAC,CAyBD,SAASK,EAASC,CAAoB,EACpC,GAAM,CAAEC,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,CAAGL,EACxBM,EAAOX,EAAW,IAAMY,MAAMJ,EAAMG,IAAI,EAAEE,IAAI,CAAC,IAC/CC,EAASd,EAAW,IACxB,AAAIU,IACKR,CAAG,CAAC;;;;;;;;;;;MAWX,CAAC,CAGIA,CAAG,CAAC;;;;;;;;;;;IAWX,CAAC,EAGH,0DAEwBO,8DACAK,gDACAR,UACnBP,qBAAWS,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,mEAGhCH,qBAAWS,EAAMO,MAAM,sEAIVP,EAAMQ,MAAM,iBAKvBjB,qBAAWS,EAAMS,KAAK,sEAITT,EAAMQ,MAAM,iBAKvBlB,qBAAUa,cACR,+DAGaH,EAAMQ,MAAM,sBAvBtBb,EAAG,WAAYK,EAAMU,KAAK,UAiC5C,CAGAd,EACE,aACA,CACEO,KAAM,EACNK,OAAQ,KAAK,EACbD,OAAQ,KAAK,EACbE,MAAO,KAAK,EACZf,IAAK,KAAK,EACVgB,MAAO,KAAK,CACd,EACA,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAYtB,SAAQf,EAXMN,EACZ,CACEU,KAAMU,EAAGV,IAAI,CACbK,OAAQK,EAAGL,MAAM,CACjBD,OAAQM,EAAGN,MAAM,CACjBE,MAAOI,EAAGJ,KAAK,CACff,IAAKmB,EAAGnB,GAAG,AACb,EACAiB,GAIJ,EAEF,gBAAeZ,CAAS"}
1
+ {"version":3,"sources":["../../components/skeleton/index.tsx"],"sourcesContent":["import { createMemo, For, mergeProps, Show } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport theme from '../theme';\n\nconst style = css`\n :host {\n display: block;\n inline-size: 100%;\n }\n\n .skeleton {\n display: flex;\n inline-size: 100%;\n gap: 16px;\n }\n\n .avatar,\n .title,\n .paragraph > div {\n overflow: hidden;\n border-radius: var(--border-radius);\n background: var(--skeleton-bg);\n transition: background-color var(--transition-duration) var(--transition-timing-function);\n }\n\n .avatar {\n border-radius: 50%;\n inline-size: 32px;\n block-size: 32px;\n }\n\n .body {\n flex: 1;\n }\n\n .title {\n margin-block-end: 16px;\n inline-size: 32%;\n block-size: 32px;\n }\n\n .paragraph {\n display: flex;\n padding: 0;\n flex-direction: column;\n gap: 12px;\n\n & > div {\n inline-size: 100%;\n block-size: 16px;\n list-style: none;\n\n &:last-of-type {\n inline-size: 65%;\n }\n }\n }\n\n .active {\n &::after {\n display: block;\n block-size: 100%;\n animation: skeleton-effect 1.4s var(--transition-timing-function) infinite;\n background: var(--skeleton-bg-active);\n content: '';\n transition: background-color var(--transition-duration) var(--transition-timing-function);\n }\n }\n\n @keyframes skeleton-effect {\n to {\n background-position-x: -20%;\n }\n }\n`;\n\nexport interface SkeletonProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 行\n * @default 3\n */\n rows?: number;\n /** 显示动画\n * @default false\n */\n active?: boolean;\n /** 显示头像\n * @default false\n */\n avatar?: boolean;\n /** 显示标题\n * @default false\n */\n title?: boolean;\n}\n\nfunction Skeleton(props: SkeletonProps) {\n const { baseStyle, isDark } = theme;\n const rows = createMemo(() => Array(props.rows).fill(0));\n const cssVar = createMemo(() => {\n if (isDark()) {\n return css`\n :host {\n --skeleton-bg: rgb(255 255 255 / 6%);\n --skeleton-bg-active: linear-gradient(\n 100deg,\n rgb(255 255 255 / 5%) 40%,\n rgb(255 255 255 / 15%) 50%,\n rgb(255 255 255 / 5%) 60%\n )\n transparent 180%/200% 100%;\n }\n `;\n }\n\n return css`\n :host {\n --skeleton-bg: rgb(0 0 0 / 6%);\n --skeleton-bg-active: linear-gradient(\n 100deg,\n rgb(0 0 0 / 5%) 40%,\n rgb(0 0 0 / 15%) 50%,\n rgb(0 0 0 / 5%) 60%\n )\n transparent 180%/200% 100%;\n }\n `;\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={cssVar()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div class={cx('skeleton', props.class)}>\n <Show when={props.avatar}>\n <div\n class=\"avatar\"\n classList={{\n active: props.active,\n }}\n />\n </Show>\n <div class=\"body\">\n <Show when={props.title}>\n <div\n class=\"title\"\n classList={{\n active: props.active,\n }}\n />\n </Show>\n <div class=\"paragraph\">\n <For each={rows()}>\n {() => (\n <div\n classList={{\n active: props.active,\n }}\n />\n )}\n </For>\n </div>\n </div>\n </div>\n </>\n );\n}\n\nexport type SkeletonElement = CustomElement<SkeletonProps>;\ncustomElement<SkeletonProps>(\n 'n-skeleton',\n {\n rows: 3,\n active: void 0,\n avatar: void 0,\n title: void 0,\n css: void 0,\n class: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n rows: el.rows,\n active: el.active,\n avatar: el.avatar,\n title: el.title,\n css: el.css,\n },\n _,\n );\n\n return <Skeleton {...props} />;\n },\n);\nexport default Skeleton;\n"],"names":["createMemo","For","mergeProps","Show","css","cx","customElement","theme","style","Skeleton","props","baseStyle","isDark","rows","Array","fill","cssVar","avatar","active","title","class","_","opt","el","element"],"mappings":"wWAAA,QAASA,cAAAA,CAAU,CAAEC,OAAAA,CAAG,CAAEC,cAAAA,CAAU,CAAEC,QAAAA,CAAI,KAAQ,UAAW,AAC7D,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAG9C,QAAOC,MAAW,UAAW,CAE7B,IAAMC,EAAQJ,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsElB,CAAC,CAyBD,SAASK,EAASC,CAAoB,EACpC,GAAM,CAAEC,UAAAA,CAAS,CAAEC,OAAAA,CAAM,CAAE,CAAGL,EACxBM,EAAOb,EAAW,IAAMc,MAAMJ,EAAMG,IAAI,EAAEE,IAAI,CAAC,IAC/CC,EAAShB,EAAW,IACxB,AAAIY,IACKR,CAAG,CAAC;;;;;;;;;;;MAWX,CAAC,CAGIA,CAAG,CAAC;;;;;;;;;;;IAWX,CAAC,EAGH,0DAEwBO,8DACAK,gDACAR,UACnBL,qBAAWO,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,mEAGhCD,qBAAWO,EAAMO,MAAM,sEAIVP,EAAMQ,MAAM,iBAKvBf,qBAAWO,EAAMS,KAAK,sEAITT,EAAMQ,MAAM,iBAKvBjB,qBAAUY,cACR,+DAGaH,EAAMQ,MAAM,sBAvBtBb,EAAG,WAAYK,EAAMU,KAAK,UAiC5C,CAGAd,EACE,aACA,CACEO,KAAM,EACNK,OAAQ,KAAK,EACbD,OAAQ,KAAK,EACbE,MAAO,KAAK,EACZf,IAAK,KAAK,EACVgB,MAAO,KAAK,CACd,EACA,CAACC,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAYtB,SAAQf,EAXMP,EACZ,CACEW,KAAMU,EAAGV,IAAI,CACbK,OAAQK,EAAGL,MAAM,CACjBD,OAAQM,EAAGN,MAAM,CACjBE,MAAOI,EAAGJ,KAAK,CACff,IAAKmB,EAAGnB,GAAG,AACb,EACAiB,GAIJ,EAEF,gBAAeZ,CAAS"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 反馈
3
+ title: 加载中
4
+ subtitle: n-spin
5
+ icon: ✲
6
+ ---
7
+
8
+ # Loading 加载中
9
+
10
+ > 加载中
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: 基本使用
3
+ order: 1
4
+ ---
5
+
6
+ ```html
7
+ 加载:<n-switch checked="true"></n-switch> 边框:<n-switch checked="true"></n-switch>
8
+ <br />
9
+ <n-spin spin="true" style="border: 1px solid #ccc;">
10
+ <n-highlight-text
11
+ text="朱敦儒的词作语言流畅,清新自然。他的词风可分为三个阶段:早年词风浓艳丽巧;
12
+ 中年的词风激昂慷慨;闲居后词风婉明清畅。朱敦儒对南宋词坛也产生了 一些积极的影响。
13
+ 他将一生的际遇和心态变化都赋于词中,给后人以直接的启迪和影响。
14
+ 辛弃疾《念奴娇》词就明确说是“效朱希真体”,陆游年青时曾受知于朱敦儒,为人与作词都受朱敦儒的熏陶,
15
+ 他的名作《卜算子·咏梅》即与朱敦儒的《卜算子·古涧一枝梅》风格相似。"
16
+ highlight="语言流畅"
17
+ ></n-highlight-text>
18
+ </n-spin>
19
+ <script>
20
+ const el = container.querySelectorAll('n-switch');
21
+ const spinEl = container.querySelector('n-spin');
22
+
23
+ el[0].onchange = function (e) {
24
+ spinEl.spin = e.detail;
25
+ };
26
+ el[1].onchange = function (e) {
27
+ spinEl.style.border = e.detail ? '1px solid #ccc' : 'none';
28
+ };
29
+ </script>
30
+ ```
31
+
32
+ ```jsx
33
+ let el;
34
+ const text = `朱敦儒的词作语言流畅,清新自然。他的词风可分为三个阶段:早年词风浓艳丽巧;
35
+ 中年的词风激昂慷慨;闲居后词风婉明清畅。朱敦儒对南宋词坛也产生了 一些积极的影响。
36
+ 他将一生的际遇和心态变化都赋于词中,给后人以直接的启迪和影响。
37
+ 辛弃疾《念奴娇》词就明确说是“效朱希真体”,陆游年青时曾受知于朱敦儒,为人与作词都受朱敦儒的熏陶,
38
+ 他的名作《卜算子·咏梅》即与朱敦儒的《卜算子·古涧一枝梅》风格相似。`;
39
+ render(
40
+ <>
41
+ 加载:
42
+ <n-switch
43
+ checked
44
+ onChange={(e) => {
45
+ el.spin = e.detail;
46
+ }}
47
+ />
48
+ 边框:
49
+ <n-switch
50
+ checked
51
+ onChange={(e) => {
52
+ el.style.border = e.detail ? '1px solid #ccc' : 'none';
53
+ }}
54
+ />
55
+ <br />
56
+ <n-spin
57
+ ref={(e) => (el = e)}
58
+ spin
59
+ style={{
60
+ border: '1px solid #ccc',
61
+ }}
62
+ >
63
+ <n-highlight-text text={text} highlight="《卜算子·咏梅》" />
64
+ </n-spin>
65
+ </>
66
+ );
67
+ ```
package/es/spin/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{template as e}from"solid-js/web";import{mergeProps as i}from"solid-js/web";import{insert as t}from"solid-js/web";import{effect as n}from"solid-js/web";import{createComponent as o}from"solid-js/web";import{className as r}from"solid-js/web";let s=e("<style> "),l=e("<style>"),a=e('<div><div class="content">');import{Show as d,createEffect as c,splitProps as p}from"solid-js";import{css as m,cx as f}from"@moneko/css";import{customElement as b}from"solid-element";import v from"../theme";let u=m`
1
+ import{template as e}from"solid-js/web";import{mergeProps as i}from"solid-js/web";import{insert as t}from"solid-js/web";import{effect as n}from"solid-js/web";import{createComponent as o}from"solid-js/web";import{className as r}from"solid-js/web";let s=e("<style> "),l=e("<style>"),a=e('<div><div class="content">');import{createEffect as d,Show as c,splitProps as p}from"solid-js";import{css as m,cx as f}from"@moneko/css";import{customElement as b}from"solid-element";import u from"../theme";let v=m`
2
2
  :host {
3
3
  display: inline-block;
4
4
  box-sizing: border-box;
@@ -43,8 +43,8 @@ import{template as e}from"solid-js/web";import{mergeProps as i}from"solid-js/web
43
43
  text-align: center;
44
44
  inline-size: 16px;
45
45
  block-size: 16px;
46
- inset-block: 0 0;
47
- inset-inline: 0 0;
46
+ inset-block: 0;
47
+ inset-inline: 0;
48
48
  box-sizing: border-box;
49
49
  line-height: 1;
50
50
  content: '';
@@ -61,5 +61,5 @@ import{template as e}from"solid-js/web";import{mergeProps as i}from"solid-js/web
61
61
  transform: rotate(360deg);
62
62
  }
63
63
  }
64
- `;function x(e){let{baseStyle:i}=v;return[(()=>{let e=s(),t=e.firstChild;return n(()=>t.data=i()),e})(),(()=>{let e=l();return e.textContent=u,e})(),o(d,{get when(){return e.css},get children(){let i=s(),t=i.firstChild;return n(()=>t.data=m(e.css)),i}}),(()=>{let i=a();return t(i.firstChild,()=>e.children),n(t=>{let n=f("spin",e.class),o=!!e.spin;return n!==t._v$&&r(i,t._v$=n),o!==t._v$2&&i.classList.toggle("spining",t._v$2=o),t},{_v$:void 0,_v$2:void 0}),i})()]}b("n-spin",{class:void 0,css:void 0,spin:void 0,children:void 0},(e,t)=>{var n;let r=[...((null==(n=t.element)?void 0:n.childNodes)||[]).values()],[,s]=p(e,["children"]);return c(()=>{var e;null==(e=t.element)||e.replaceChildren()}),o(x,i(s,{children:r}))});export default x;
64
+ `;function x(e){let{baseStyle:i}=u;return[(()=>{let e=s(),t=e.firstChild;return n(()=>t.data=i()),e})(),(()=>{let e=l();return e.textContent=v,e})(),o(c,{get when(){return e.css},get children(){let i=s(),t=i.firstChild;return n(()=>t.data=m(e.css)),i}}),(()=>{let i=a();return t(i.firstChild,()=>e.children),n(t=>{let n=f("spin",e.class),o=!!e.spin;return n!==t._v$&&r(i,t._v$=n),o!==t._v$2&&i.classList.toggle("spining",t._v$2=o),t},{_v$:void 0,_v$2:void 0}),i})()]}b("n-spin",{class:void 0,css:void 0,spin:void 0,children:void 0},(e,t)=>{let n=[...(t.element.childNodes||[]).values()],[,r]=p(e,["children"]);return d(()=>{t.element.replaceChildren()}),o(x,i(r,{children:n}))});export default x;
65
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/spin/index.tsx"],"sourcesContent":["import { Show, createEffect, splitProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nconst style = css`\n :host {\n display: inline-block;\n box-sizing: border-box;\n }\n\n .spin {\n inline-size: fit-content;\n inline-size: 100%;\n block-size: 100%;\n min-inline-size: 16px;\n min-block-size: 16px;\n position: relative;\n box-sizing: border-box;\n }\n\n .content {\n display: flex;\n opacity: 1;\n transition: opacity var(--transition-duration);\n }\n\n .spining {\n cursor: not-allowed;\n\n .content {\n opacity: 0.3;\n pointer-events: none;\n user-select: none;\n filter: blur(4px);\n }\n\n &::before {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: auto;\n border: 1px solid;\n border-color: var(--text-secondary) transparent;\n border-radius: 50%;\n font-size: large;\n text-align: center;\n inline-size: 16px;\n block-size: 16px;\n inset-block: 0 0;\n inset-inline: 0 0;\n box-sizing: border-box;\n line-height: 1;\n content: '';\n animation: spin-rotate-effect 1s infinite;\n }\n }\n\n @keyframes spin-rotate-effect {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport interface SpinProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 加载状态 */\n spin?: boolean;\n /** 内容 */\n children?: JSX.Element | JSX.Element[];\n}\n\nfunction Spin(props: SpinProps) {\n const { baseStyle } = theme;\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div\n class={cx('spin', props.class)}\n classList={{\n spining: props.spin,\n }}\n >\n <div class=\"content\">{props.children}</div>\n </div>\n </>\n );\n}\n\nexport type SpinElement = CustomElement<SpinProps>;\n\ncustomElement<SpinProps>(\n 'n-spin',\n { class: void 0, css: void 0, spin: void 0, children: void 0 },\n (_, opt) => {\n const childNodes = (opt.element?.childNodes as NodeList) || [];\n const nodes = [...childNodes.values()];\n const [, props] = splitProps(_, ['children']);\n\n createEffect(() => {\n opt.element?.replaceChildren();\n });\n return <Spin {...props}>{nodes}</Spin>;\n },\n);\n\nexport default Spin;\n"],"names":["Show","createEffect","splitProps","css","cx","customElement","theme","style","Spin","props","baseStyle","children","class","spin","_","opt","nodes","childNodes","element","values","replaceChildren"],"mappings":"0TAAA,QAASA,QAAAA,CAAI,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AAC1D,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAAOC,MAAW,UAAW,CAG7B,IAAMC,EAAQJ,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DlB,CAAC,CAaD,SAASK,EAAKC,CAAgB,EAC5B,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGJ,EAEtB,0DAEwBI,gDACAH,UACnBP,qBAAWS,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,kDAQXM,EAAME,QAAQ,cAL7BP,EAAG,OAAQK,EAAMG,KAAK,MAElBH,EAAMI,IAAI,sHAO7B,CAIAR,EACE,SACA,CAAEO,MAAO,KAAK,EAAGT,IAAK,KAAK,EAAGU,KAAM,KAAK,EAAGF,SAAU,KAAK,CAAE,EAC7D,CAACG,EAAGC,SACkBA,EACpB,IAAMC,EAAQ,IAAIC,AADC,CAAA,QAACF,EAAAA,EAAIG,OAAO,SAAXH,EAAaE,UAAU,GAAiB,EAAE,AAAD,EAChCE,MAAM,GAAG,CAChC,EAAGV,EAAM,CAAGP,EAAWY,EAAG,CAAC,WAAW,EAK5C,OAHAb,EAAa,SACXc,SAAAA,EAAAA,EAAIG,OAAO,GAAXH,EAAaK,eAAe,EAC9B,KACQZ,IAASC,YAAQO,IAC3B,EAGF,gBAAeR,CAAK"}
1
+ {"version":3,"sources":["../../components/spin/index.tsx"],"sourcesContent":["import { createEffect, Show, splitProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport theme from '../theme';\n\nconst style = css`\n :host {\n display: inline-block;\n box-sizing: border-box;\n }\n\n .spin {\n inline-size: fit-content;\n inline-size: 100%;\n block-size: 100%;\n min-inline-size: 16px;\n min-block-size: 16px;\n position: relative;\n box-sizing: border-box;\n }\n\n .content {\n display: flex;\n opacity: 1;\n transition: opacity var(--transition-duration);\n }\n\n .spining {\n cursor: not-allowed;\n\n .content {\n opacity: 0.3;\n pointer-events: none;\n user-select: none;\n filter: blur(4px);\n }\n\n &::before {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: auto;\n border: 1px solid;\n border-color: var(--text-secondary) transparent;\n border-radius: 50%;\n font-size: large;\n text-align: center;\n inline-size: 16px;\n block-size: 16px;\n inset-block: 0;\n inset-inline: 0;\n box-sizing: border-box;\n line-height: 1;\n content: '';\n animation: spin-rotate-effect 1s infinite;\n }\n }\n\n @keyframes spin-rotate-effect {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport interface SpinProps {\n /** 自定义样式表 */\n css?: string;\n /** 自定义类名 */\n class?: string;\n /** 加载状态 */\n spin?: boolean;\n /** 内容 */\n children?: JSX.Element | JSX.Element[];\n}\n\nfunction Spin(props: SpinProps) {\n const { baseStyle } = theme;\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div\n class={cx('spin', props.class)}\n classList={{\n spining: props.spin,\n }}\n >\n <div class=\"content\">{props.children}</div>\n </div>\n </>\n );\n}\n\nexport type SpinElement = CustomElement<SpinProps>;\n\ncustomElement<SpinProps>(\n 'n-spin',\n { class: void 0, css: void 0, spin: void 0, children: void 0 },\n (_, opt) => {\n const childNodes = (opt.element.childNodes as NodeList) || [];\n const nodes = [...childNodes.values()];\n const [, props] = splitProps(_, ['children']);\n\n createEffect(() => {\n opt.element.replaceChildren();\n });\n return <Spin {...props}>{nodes}</Spin>;\n },\n);\n\nexport default Spin;\n"],"names":["createEffect","Show","splitProps","css","cx","customElement","theme","style","Spin","props","baseStyle","children","class","spin","_","opt","nodes","childNodes","element","values","replaceChildren"],"mappings":"0TAAA,QAASA,gBAAAA,CAAY,CAAEC,QAAAA,CAAI,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AAC1D,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAG9C,QAAOC,MAAW,UAAW,CAE7B,IAAMC,EAAQJ,CAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DlB,CAAC,CAaD,SAASK,EAAKC,CAAgB,EAC5B,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGJ,EAEtB,0DAEwBI,gDACAH,UACnBN,qBAAWQ,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,kDAQXM,EAAME,QAAQ,cAL7BP,EAAG,OAAQK,EAAMG,KAAK,MAElBH,EAAMI,IAAI,sHAO7B,CAIAR,EACE,SACA,CAAEO,MAAO,KAAK,EAAGT,IAAK,KAAK,EAAGU,KAAM,KAAK,EAAGF,SAAU,KAAK,CAAE,EAC7D,CAACG,EAAGC,KAEF,IAAMC,EAAQ,IAAIC,AADC,CAAA,AAACF,EAAIG,OAAO,CAACD,UAAU,EAAiB,EAAE,AAAD,EAC/BE,MAAM,GAAG,CAChC,EAAGV,EAAM,CAAGP,EAAWY,EAAG,CAAC,WAAW,EAK5C,OAHAd,EAAa,KACXe,EAAIG,OAAO,CAACE,eAAe,EAC7B,KACQZ,IAASC,YAAQO,IAC3B,EAGF,gBAAeR,CAAK"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 数据录入
3
+ title: 开关
4
+ subtitle: n-switch
5
+ icon: 🗝️
6
+ ---
7
+
8
+ # Switch 开关
9
+
10
+ > 在两种状态之间的切换的选择器
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: 基本使用
3
+ description: 最简单的使用方式
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-switch></n-switch>
9
+ <script>
10
+ const el = container.querySelector('n-switch');
11
+
12
+ el.onchange = function (e) {
13
+ console.log('html', e.detail);
14
+ };
15
+ </script>
16
+ ```
17
+
18
+ ```jsx
19
+ <n-switch
20
+ onChange={(e) => {
21
+ console.log('jsx', e.detail);
22
+ }}
23
+ />
24
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: 文字描述
3
+ description: 给按钮添加文字描述
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-switch checked-text="ON" un-checked-text="OFF"></n-switch>
9
+ <n-switch checked="true" checked-text="开" un-checked-text="关"></n-switch>
10
+ <n-switch checked-text="启动" un-checked-text="停止"></n-switch>
11
+ ```
12
+
13
+ ```jsx
14
+ <n-switch checked-text="ON" un-checked-text="OFF" />
15
+ <n-switch checked checked-text="开" un-checked-text="关" />
16
+ <n-switch checked-text="启动" un-checked-text="停止" />
17
+ ```
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: 不可用状态
3
+ description: 禁止交互
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-switch checked="true" disabled="true"></n-switch>
9
+ <n-switch checked-text="开" un-checked-text="关" disabled="true"></n-switch>
10
+ ```
11
+
12
+ ```jsx
13
+ <n-switch checked disabled />
14
+ <n-switch checked-text="开" un-checked-text="关" disabled />
15
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: 加载状态
3
+ description: 操作仍在执行中,禁止交互
4
+ order: 4
5
+ ---
6
+
7
+ ```html
8
+ <n-switch checked-text="开启" un-checked-text="关闭" checked="true" loading="true"></n-switch>
9
+ <n-switch loading="true"></n-switch>
10
+ <n-switch checked-text="开" un-checked-text="关" loading="true"></n-switch>
11
+ ```
12
+
13
+ ```jsx
14
+ <n-switch checked-text="开启" un-checked-text="关闭" checked loading />
15
+ <n-switch loading />
16
+ <n-switch checked-text="开" un-checked-text="关" loading />
17
+ ```
@@ -1,2 +1,2 @@
1
- import{template as e}from"solid-js/web";import{setAttribute as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{delegateEvents as i}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as d}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let n=e("<style> "),r=e("<style>"),c=e("<span>");import{Show as a,createEffect as v,createSignal as m,mergeProps as h}from"solid-js";import{css as f,cx as u}from"@moneko/css";import{customElement as $}from"solid-element";import{style as _}from"./style";import g from"../theme";function p(e){let{baseStyle:i}=g,[h,$]=m(!1);function p(){e.disabled||e.loading||($(e=>!e),null==e.onChange||e.onChange.call(e,h()))}function k({key:e}){"Enter"===e&&p()}return v(()=>{$(!!e.checked)}),[(()=>{let e=n(),t=e.firstChild;return o(()=>t.data=i()),e})(),(()=>{let e=r();return e.textContent=_,e})(),s(a,{get when(){return e.css},get children(){let t=n(),i=t.firstChild;return o(()=>i.data=f(e.css)),t}}),(()=>{let i=c();return l(i,"keyup",k,!0),l(i,"click",p,!0),o(o=>{let s=u("switch",e.class),l=!!h(),n=!!e.loading,r=e.checkedText,c=e.unCheckedText,a=e.disabled,v=e.disabled||e.loading?-1:0;return s!==o._v$&&d(i,o._v$=s),l!==o._v$2&&i.classList.toggle("checked",o._v$2=l),n!==o._v$3&&i.classList.toggle("loading",o._v$3=n),r!==o._v$4&&t(i,"text-on",o._v$4=r),c!==o._v$5&&t(i,"text-off",o._v$5=c),a!==o._v$6&&t(i,"aria-disabled",o._v$6=a),v!==o._v$7&&t(i,"tabindex",o._v$7=v),o},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),i})()]}$("n-switch",{class:void 0,css:void 0,checked:void 0,disabled:void 0,checkedText:void 0,unCheckedText:void 0,loading:!1,onChange:void 0},(e,t)=>{let o=t.element,i=h({css:o.css,checked:o.checked,disabled:o.disabled,checkedText:o.checkedText,unCheckedText:o.unCheckedText,loading:o.loading,onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return v(()=>{o.removeAttribute("css")}),s(p,i)});export default p;i(["click","keyup"]);
1
+ import{template as e}from"solid-js/web";import{setAttribute as t}from"solid-js/web";import{effect as o}from"solid-js/web";import{delegateEvents as i}from"solid-js/web";import{createComponent as s}from"solid-js/web";import{className as d}from"solid-js/web";import{addEventListener as l}from"solid-js/web";let n=e("<style> "),r=e("<style>"),c=e("<span>");import{createEffect as a,createSignal as v,mergeProps as m,Show as h}from"solid-js";import{css as f,cx as u}from"@moneko/css";import{customElement as $}from"solid-element";import _ from"../theme";import{style as g}from"./style";function p(e){let{baseStyle:i}=_,[m,$]=v(!1);function p(){e.disabled||e.loading||($(e=>!e),null==e.onChange||e.onChange.call(e,m()))}function k({key:e}){"Enter"===e&&p()}return a(()=>{$(!!e.checked)}),[(()=>{let e=n(),t=e.firstChild;return o(()=>t.data=i()),e})(),(()=>{let e=r();return e.textContent=g,e})(),s(h,{get when(){return e.css},get children(){let t=n(),i=t.firstChild;return o(()=>i.data=f(e.css)),t}}),(()=>{let i=c();return l(i,"keyup",k,!0),l(i,"click",p,!0),o(o=>{let s=u("switch",e.class),l=!!m(),n=!!e.loading,r=e.checkedText,c=e.unCheckedText,a=e.disabled,v=e.disabled||e.loading?-1:0;return s!==o._v$&&d(i,o._v$=s),l!==o._v$2&&i.classList.toggle("checked",o._v$2=l),n!==o._v$3&&i.classList.toggle("loading",o._v$3=n),r!==o._v$4&&t(i,"text-on",o._v$4=r),c!==o._v$5&&t(i,"text-off",o._v$5=c),a!==o._v$6&&t(i,"aria-disabled",o._v$6=a),v!==o._v$7&&t(i,"tabindex",o._v$7=v),o},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),i})()]}$("n-switch",{class:void 0,css:void 0,checked:void 0,disabled:void 0,checkedText:void 0,unCheckedText:void 0,loading:!1,onChange:void 0},(e,t)=>{let o=t.element,i=m({css:o.css,checked:o.checked,disabled:o.disabled,checkedText:o.checkedText,unCheckedText:o.unCheckedText,loading:o.loading,onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return a(()=>{o.removeAttribute("css")}),s(p,i)});export default p;i(["click","keyup"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/switch/index.tsx"],"sourcesContent":["import { Show, createEffect, createSignal, mergeProps } from 'solid-js';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface SwitchProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 值 */\n checked?: boolean;\n /** 只读 */\n disabled?: boolean;\n /** 设置 为 true 时的文案 */\n checkedText?: string;\n /** 设置 为 false 时的文案 */\n unCheckedText?: string;\n /** 加载状态 */\n loading?: boolean;\n /** 值修改时的回调方法 */\n onChange?: (val: boolean) => void;\n}\n\nexport type SwitchElement = CustomElement<SwitchProps>;\n\nfunction Switch(props: SwitchProps) {\n const { baseStyle } = theme;\n const [value, setValue] = createSignal(false);\n\n function change() {\n if (!props.disabled && !props.loading) {\n setValue((prev) => !prev);\n props.onChange?.(value());\n }\n }\n\n function onKeyUp({ key }: { key: string }) {\n if (key === 'Enter') {\n change();\n }\n }\n\n createEffect(() => {\n setValue(!!props.checked);\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <span\n class={cx('switch', props.class)}\n classList={{\n checked: value(),\n loading: props.loading,\n }}\n text-on={props.checkedText}\n text-off={props.unCheckedText}\n aria-disabled={props.disabled}\n onClick={change}\n onKeyUp={onKeyUp}\n tabindex={props.disabled || props.loading ? -1 : 0}\n />\n </>\n );\n}\n\ncustomElement<SwitchProps>(\n 'n-switch',\n {\n class: void 0,\n css: void 0,\n checked: void 0,\n disabled: void 0,\n checkedText: void 0,\n unCheckedText: void 0,\n loading: false,\n onChange: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n checked: el.checked,\n disabled: el.disabled,\n checkedText: el.checkedText,\n unCheckedText: el.unCheckedText,\n loading: el.loading,\n onChange(val: boolean) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return <Switch {...props} />;\n },\n);\nexport default Switch;\n"],"names":["Show","createEffect","createSignal","mergeProps","css","cx","customElement","style","theme","Switch","props","baseStyle","value","setValue","change","disabled","loading","prev","onChange","onKeyUp","key","checked","class","checkedText","unCheckedText","_","opt","el","element","val","dispatchEvent","CustomEvent","detail","removeAttribute"],"mappings":"gWAAA,QAASA,QAAAA,CAAI,CAAEC,gBAAAA,CAAY,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,KAAQ,UAAW,AACxE,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAC9C,QAASC,SAAAA,CAAK,KAAQ,SAAU,AAChC,QAAOC,MAAW,UAAW,CAwB7B,SAASC,EAAOC,CAAkB,EAChC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGH,EAChB,CAACI,EAAOC,EAAS,CAAGX,EAAa,CAAA,GAEvC,SAASY,IACFJ,EAAMK,QAAQ,EAAKL,EAAMM,OAAO,GACnCH,EAAS,AAACI,GAAS,CAACA,SACpBP,EAAMQ,QAAQ,EAAdR,EAAMQ,QAAQ,MAAdR,EAAiBE,KAErB,CAEA,SAASO,EAAQ,CAAEC,IAAAA,CAAG,CAAmB,EAC3B,UAARA,GACFN,GAEJ,CAMA,OAJAb,EAAa,KACXY,EAAS,CAAC,CAACH,EAAMW,OAAO,CAC1B,uDAIwBV,gDACAJ,UACnBP,qBAAWU,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,2CAYxBe,kBADAL,kBARFT,EAAG,SAAUK,EAAMY,KAAK,MAEpBV,QACAF,EAAMM,OAAO,GAEfN,EAAMa,WAAW,GAChBb,EAAMc,aAAa,GACdd,EAAMK,QAAQ,GAGnBL,EAAMK,QAAQ,EAAIL,EAAMM,OAAO,CAAG,GAAK,8XAIzD,CAEAV,EACE,WACA,CACEgB,MAAO,KAAK,EACZlB,IAAK,KAAK,EACViB,QAAS,KAAK,EACdN,SAAU,KAAK,EACfQ,YAAa,KAAK,EAClBC,cAAe,KAAK,EACpBR,QAAS,CAAA,EACTE,SAAU,KAAK,CACjB,EACA,CAACO,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBlB,EAAQP,EACZ,CACEC,IAAKuB,EAAGvB,GAAG,CACXiB,QAASM,EAAGN,OAAO,CACnBN,SAAUY,EAAGZ,QAAQ,CACrBQ,YAAaI,EAAGJ,WAAW,CAC3BC,cAAeG,EAAGH,aAAa,CAC/BR,QAASW,EAAGX,OAAO,CACnBE,SAASW,CAAY,EACnBF,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQH,CACV,GAEJ,CACF,EACAJ,GAMF,OAHAxB,EAAa,KACX0B,EAAGM,eAAe,CAAC,MACrB,KACQxB,EAAWC,EACrB,EAEF,gBAAeD,CAAO"}
1
+ {"version":3,"sources":["../../components/switch/index.tsx"],"sourcesContent":["import { createEffect, createSignal, mergeProps, Show } from 'solid-js';\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 SwitchProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 值 */\n checked?: boolean;\n /** 只读 */\n disabled?: boolean;\n /** 设置 为 true 时的文案 */\n checkedText?: string;\n /** 设置 为 false 时的文案 */\n unCheckedText?: string;\n /** 加载状态 */\n loading?: boolean;\n /** 值修改时的回调方法 */\n onChange?: (val: boolean) => void;\n}\n\nexport type SwitchElement = CustomElement<SwitchProps>;\n\nfunction Switch(props: SwitchProps) {\n const { baseStyle } = theme;\n const [value, setValue] = createSignal(false);\n\n function change() {\n if (!props.disabled && !props.loading) {\n setValue((prev) => !prev);\n props.onChange?.(value());\n }\n }\n\n function onKeyUp({ key }: { key: string }) {\n if (key === 'Enter') {\n change();\n }\n }\n\n createEffect(() => {\n setValue(!!props.checked);\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <span\n class={cx('switch', props.class)}\n classList={{\n checked: value(),\n loading: props.loading,\n }}\n text-on={props.checkedText}\n text-off={props.unCheckedText}\n aria-disabled={props.disabled}\n onClick={change}\n onKeyUp={onKeyUp}\n tabindex={props.disabled || props.loading ? -1 : 0}\n />\n </>\n );\n}\n\ncustomElement<SwitchProps>(\n 'n-switch',\n {\n class: void 0,\n css: void 0,\n checked: void 0,\n disabled: void 0,\n checkedText: void 0,\n unCheckedText: void 0,\n loading: false,\n onChange: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n checked: el.checked,\n disabled: el.disabled,\n checkedText: el.checkedText,\n unCheckedText: el.unCheckedText,\n loading: el.loading,\n onChange(val: boolean) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.removeAttribute('css');\n });\n return <Switch {...props} />;\n },\n);\nexport default Switch;\n"],"names":["createEffect","createSignal","mergeProps","Show","css","cx","customElement","theme","style","Switch","props","baseStyle","value","setValue","change","disabled","loading","prev","onChange","onKeyUp","key","checked","class","checkedText","unCheckedText","_","opt","el","element","val","dispatchEvent","CustomEvent","detail","removeAttribute"],"mappings":"gWAAA,QAASA,gBAAAA,CAAY,CAAEC,gBAAAA,CAAY,CAAEC,cAAAA,CAAU,CAAEC,QAAAA,CAAI,KAAQ,UAAW,AACxE,QAASC,OAAAA,CAAG,CAAEC,MAAAA,CAAE,KAAQ,aAAc,AACtC,QAASC,iBAAAA,CAAa,KAAQ,eAAgB,AAG9C,QAAOC,MAAW,UAAW,AAE7B,QAASC,SAAAA,CAAK,KAAQ,SAAU,CAuBhC,SAASC,EAAOC,CAAkB,EAChC,GAAM,CAAEC,UAAAA,CAAS,CAAE,CAAGJ,EAChB,CAACK,EAAOC,EAAS,CAAGZ,EAAa,CAAA,GAEvC,SAASa,IACFJ,EAAMK,QAAQ,EAAKL,EAAMM,OAAO,GACnCH,EAAS,AAACI,GAAS,CAACA,SACpBP,EAAMQ,QAAQ,EAAdR,EAAMQ,QAAQ,MAAdR,EAAiBE,KAErB,CAEA,SAASO,EAAQ,CAAEC,IAAAA,CAAG,CAAmB,EAC3B,UAARA,GACFN,GAEJ,CAMA,OAJAd,EAAa,KACXa,EAAS,CAAC,CAACH,EAAMW,OAAO,CAC1B,uDAIwBV,gDACAH,UACnBL,qBAAWO,EAAMN,GAAG,8DACCA,EAAIM,EAAMN,GAAG,2CAYxBe,kBADAL,kBARFT,EAAG,SAAUK,EAAMY,KAAK,MAEpBV,QACAF,EAAMM,OAAO,GAEfN,EAAMa,WAAW,GAChBb,EAAMc,aAAa,GACdd,EAAMK,QAAQ,GAGnBL,EAAMK,QAAQ,EAAIL,EAAMM,OAAO,CAAG,GAAK,8XAIzD,CAEAV,EACE,WACA,CACEgB,MAAO,KAAK,EACZlB,IAAK,KAAK,EACViB,QAAS,KAAK,EACdN,SAAU,KAAK,EACfQ,YAAa,KAAK,EAClBC,cAAe,KAAK,EACpBR,QAAS,CAAA,EACTE,SAAU,KAAK,CACjB,EACA,CAACO,EAAGC,KACF,IAAMC,EAAKD,EAAIE,OAAO,CAChBlB,EAAQR,EACZ,CACEE,IAAKuB,EAAGvB,GAAG,CACXiB,QAASM,EAAGN,OAAO,CACnBN,SAAUY,EAAGZ,QAAQ,CACrBQ,YAAaI,EAAGJ,WAAW,CAC3BC,cAAeG,EAAGH,aAAa,CAC/BR,QAASW,EAAGX,OAAO,CACnBE,SAASW,CAAY,EACnBF,EAAGG,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBC,OAAQH,CACV,GAEJ,CACF,EACAJ,GAMF,OAHAzB,EAAa,KACX2B,EAAGM,eAAe,CAAC,MACrB,KACQxB,EAAWC,EACrB,EAEF,gBAAeD,CAAO"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 数据展示
3
+ title: 数据表格
4
+ subtitle: n-table
5
+ icon: 📈
6
+ ---
7
+
8
+ # Table 数据表格
9
+
10
+ > 当有大量结构化的数据需要展现时, 使用表格可以对数据进行更好的梳理以进行排序、搜索、分页、自定义操作等复杂行为
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: 基本使用
3
+ description: 最简单的使用方式
4
+ ---
5
+
6
+ ```html
7
+ <n-table></n-table>
8
+ <script>
9
+ const el = container.querySelector('n-table');
10
+
11
+ el.columns = { name: '用户名', age: '年龄' };
12
+ el.data = [
13
+ { name: 'user 1', age: 18 },
14
+ { name: 'user 2', age: 19 },
15
+ { name: 'user 3', age: 3 },
16
+ ];
17
+ </script>
18
+ ```
19
+
20
+ ```jsx
21
+ <n-table
22
+ columns={{ name: '用户名', age: '年龄' }}
23
+ data={[
24
+ { name: 'user 1', age: 18 },
25
+ { name: 'user 2', age: 19 },
26
+ { name: 'user 3', age: 3 },
27
+ ]}
28
+ />
29
+ ```
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: 自定义取值
3
+ description: 通过 `key` 指定取值
4
+ ---
5
+
6
+ ```html
7
+ <n-table></n-table>
8
+ <script>
9
+ const el = container.querySelector('n-table');
10
+
11
+ el.columns = { name: '用户名', age: '年龄', 自定义: { key: 'age' } };
12
+ el.data = [
13
+ { name: 'user 1', age: 18 },
14
+ { name: 'user 2', age: 19 },
15
+ { name: 'user 3', age: 3 },
16
+ ];
17
+ </script>
18
+ ```
19
+
20
+ ```jsx
21
+ <n-table
22
+ columns={{ name: '用户名', age: '年龄', 自定义: { key: 'age' } }}
23
+ data={[
24
+ { name: 'user 1', age: 18 },
25
+ { name: 'user 2', age: 19 },
26
+ { name: 'user 3', age: 3 },
27
+ ]}
28
+ />
29
+ ```
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: 序号
3
+ description: 添加序号到第一列
4
+ ---
5
+
6
+ ```html
7
+ <n-table></n-table>
8
+ <script>
9
+ const el = container.querySelector('n-table');
10
+
11
+ el.columns = { order: { type: 'order' }, name: '用户名', age: '年龄' };
12
+ el.data = [
13
+ { name: 'user 1', age: 18 },
14
+ { name: 'user 2', age: 19 },
15
+ { name: 'user 3', age: 3 },
16
+ ];
17
+ </script>
18
+ ```
19
+
20
+ ```jsx
21
+ <n-table
22
+ columns={{ order: { type: 'order' }, name: '用户名', age: '年龄' }}
23
+ data={[
24
+ { name: 'user 1', age: 18 },
25
+ { name: 'user 2', age: 19 },
26
+ { name: 'user 3', age: 3 },
27
+ ]}
28
+ />
29
+ ```