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
package/lib/code/index.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return h}});const e=require("solid-js/web"),t=require("solid-js"),n=c(require("@moneko/common/lib/isFunction")),r=c(require("@moneko/common/lib/setClipboard")),o=require("@moneko/css"),a=require("solid-element"),l=require("./style"),i=c(require("../prism")),s=c(require("../prism/css")),u=c(require("../theme"));function c(e){return e&&e.__esModule?e:{default:e}}const d=(0,e.template)('<div class="toolbar"><button class="toolbar-copy" aria-label="copy">'),g=(0,e.template)("<pre><code> "),f=(0,e.template)("<style> "),v=(0,e.template)("<style>"),m=(0,e.template)("<div><textarea>");function p(a){let c;let{baseStyle:p}=u.default,h=/^diff-([\w-]+)/i,[b,$]=(0,t.createSignal)(""),[C,_]=(0,t.createSignal)(20),[k,w]=(0,t.createSignal)(!1);function y(){return new IntersectionObserver(e=>{w(e[0].isIntersecting)})}function E(){return new Worker("https://cdn.jsdelivr.net/npm/neko-ui@latest/es/code/worker.js")}let q=a.webWorker?void 0:y(),L=a.webWorker?E():void 0;function x(){(0,r.default)((0,t.untrack)(b),c)}function S(){return(()=>{let n=g(),r=n.firstChild,o=c,l=r.firstChild;return(0,e.insert)(n,(0,e.createComponent)(t.Show,{get when(){return a.toolbar},get children(){let t=d(),n=t.firstChild;return(0,e.addEventListener)(n,"click",x,!0),(0,e.effect)(()=>(0,e.setAttribute)(t,"data-language",a.language?.split(" ")[0])),t}}),r),"function"==typeof o?(0,e.use)(o,r):c=r,(0,e.effect)(t=>{let o={[`language-${a.language}`]:!!a.language,"line-numbers":a.lineNumber,"not-toolbar":!a.toolbar,[a.class]:!a.edit},i=`language-${a.language}`,s=b();return t._v$=(0,e.classList)(n,o,t._v$),i!==t._v$2&&(0,e.className)(r,t._v$2=i),s!==t._v$3&&(l.data=t._v$3=s),t},{_v$:void 0,_v$2:void 0,_v$3:void 0}),n})()}function j({target:e}){let t=`${e.value}${/\n$/.test(e.value)?"​":""}`;$(t),(0,n.default)(a.onChange)&&a.onChange(t)}function N(e){c.innerHTML=e.data,_(c.getBoundingClientRect().height-(a.toolbar?40:16))}function M(){q&&(q.unobserve(c),q.disconnect())}return(0,t.createEffect)(()=>{if(a.code)try{$(decodeURIComponent(a.code))}catch(e){$(a.code)}else $("")}),(0,t.createEffect)(()=>{a.webWorker?(L||(L=E()),L.addEventListener("message",N)):q||(q=y())}),(0,t.createEffect)(()=>{if(L)L.postMessage(JSON.stringify({language:a.language,code:b()}));else{var e,t;e=a.language||"markup",(t=b())&&k()&&(M(),h.test(e)&&!i.default.languages[e]&&(i.default.languages[e]=i.default.languages.diff),N({data:i.default.highlight(`${t}
2
- `,i.default.languages[e]||i.default.languages.markup,e)}))}}),(0,t.onMount)(()=>{c&&q?.observe(c)}),(0,t.onCleanup)(()=>{L&&(L.removeEventListener("message",N),L.terminate()),M()}),[(()=>{let t=f(),n=t.firstChild;return(0,e.effect)(()=>n.data=p()),t})(),(()=>{let t=f(),n=t.firstChild;return(0,e.effect)(()=>n.data=(0,s.default)()),t})(),(()=>{let e=v();return e.textContent=l.style,e})(),(0,e.createComponent)(t.Show,{get when(){return a.css},get children(){let t=f(),n=t.firstChild;return(0,e.effect)(()=>n.data=(0,o.css)(a.css)),t}}),(0,e.createComponent)(t.Show,{get when(){return a.edit},get fallback(){return(0,e.createComponent)(S,{})},get children(){let t=m(),n=t.firstChild;return(0,e.addEventListener)(n,"input",j,!0),(0,e.insert)(t,(0,e.createComponent)(S,{}),null),(0,e.effect)(r=>{let l=(0,o.cx)("n-editor",a.class),i=!!a.lineNumber,s=!a.toolbar,u=`${C()}px`;return l!==r._v$4&&(0,e.className)(t,r._v$4=l),i!==r._v$5&&n.classList.toggle("line-numbers",r._v$5=i),s!==r._v$6&&n.classList.toggle("not-toolbar",r._v$6=s),u!==r._v$7&&(null!=(r._v$7=u)?n.style.setProperty("height",u):n.style.removeProperty("height")),r},{_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),(0,e.effect)(()=>n.value=a.code),t}})]}(0,a.customElement)("n-code",{class:void 0,code:void 0,language:void 0,children:void 0,edit:void 0,toolbar:void 0,css:void 0,lineNumber:void 0,onChange:void 0,webWorker:void 0},(n,r)=>{let o=r.element,a=(0,t.mergeProps)({code:o.textContent,css:o.css,onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},n);return(0,t.createEffect)(()=>{o.replaceChildren(),o.removeAttribute("css")}),(0,e.createComponent)(p,a)});const h=p;(0,e.delegateEvents)(["click","input"]);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return b}});const e=require("solid-js/web"),t=require("solid-js"),r=l(require("@moneko/common/lib/isFunction")),n=l(require("@moneko/common/lib/setClipboard")),o=require("@moneko/css"),i=require("solid-element"),a=l(require("../theme")),s=require("./style");function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}const d=(0,e.template)('<div class="toolbar"><button class="toolbar-copy" aria-label="copy">'),f=(0,e.template)("<pre><code> "),g=(0,e.template)("<style> "),v=(0,e.template)("<style>"),p=(0,e.template)("<div><textarea>"),m={Prism:null,prismCss:null};function h(i){let l;let{baseStyle:u}=a.default,h=/^diff-([\w-]+)/i,[b,_]=(0,t.createSignal)(""),[C,$]=(0,t.createSignal)(20),[y,w]=(0,t.createSignal)(!1);async function k(){return m.Prism||(m.Prism=(await Promise.resolve().then(()=>c(require("../prism")))).default),m.Prism}async function P(){return m.prismCss||(m.prismCss=(await Promise.resolve().then(()=>c(require("../prism/css")))).default),m.prismCss}let[j]=(0,t.createResource)("prism",k),[E]=(0,t.createResource)("prism-css",P);function O(){return new IntersectionObserver(e=>{w(e[0].isIntersecting)})}function q(){return new Worker("https://cdn.jsdelivr.net/npm/neko-ui@latest/es/code/worker.js")}let M=i.webWorker?void 0:O(),W=i.webWorker?q():void 0;function L(){(0,n.default)((0,t.untrack)(b),l)}function x(){return(()=>{let r=f(),n=r.firstChild,o=l,a=n.firstChild;return(0,e.insert)(r,(0,e.createComponent)(t.Show,{get when(){return i.toolbar},get children(){let t=d(),r=t.firstChild;return(0,e.addEventListener)(r,"click",L,!0),(0,e.effect)(()=>(0,e.setAttribute)(t,"data-language",i.language?.split(" ")[0])),t}}),n),"function"==typeof o?(0,e.use)(o,n):l=n,(0,e.effect)(t=>{let o={[`language-${i.language}`]:!!i.language,"line-numbers":i.lineNumber,"not-toolbar":!i.toolbar,[i.class]:!i.edit},s=`language-${i.language}`,l=b();return t._v$=(0,e.classList)(r,o,t._v$),s!==t._v$2&&(0,e.className)(n,t._v$2=s),l!==t._v$3&&(a.data=t._v$3=l),t},{_v$:void 0,_v$2:void 0,_v$3:void 0}),r})()}function S({target:e}){let t=`${e.value}${e.value.endsWith("\n")?"​":""}`;_(t),(0,r.default)(i.onChange)&&i.onChange(t)}function N(e){l.innerHTML=e.data,$(l.getBoundingClientRect().height-(i.toolbar?40:16))}function R(){M&&(M.unobserve(l),M.disconnect())}return(0,t.createEffect)(()=>{if(i.code)try{_(decodeURIComponent(i.code))}catch(e){_(i.code)}else _("")}),(0,t.createEffect)(()=>{i.webWorker?(W||(W=q()),W.addEventListener("message",N)):M||(M=O())}),(0,t.createEffect)(()=>{W?W.postMessage(JSON.stringify({language:i.language,code:b()})):function(e,t){let r=j();t&&y()&&r&&(R(),h.test(e)&&!r.languages[e]&&(r.languages[e]=r.languages.diff),N({data:r.highlight(`${t}
2
+ `,r.languages[e]||r.languages.markup,e)}))}(i.language||"markup",b())}),(0,t.onMount)(()=>{l&&M?.observe(l)}),(0,t.onCleanup)(()=>{W&&(W.removeEventListener("message",N),W.terminate()),R()}),[(()=>{let t=g(),r=t.firstChild;return(0,e.effect)(()=>r.data=u()),t})(),(()=>{let t=g(),r=t.firstChild;return(0,e.effect)(()=>r.data=E()?.()),t})(),(()=>{let e=v();return e.textContent=s.style,e})(),(0,e.createComponent)(t.Show,{get when(){return i.css},get children(){let t=g(),r=t.firstChild;return(0,e.effect)(()=>r.data=(0,o.css)(i.css)),t}}),(0,e.createComponent)(t.Show,{get when(){return i.edit},get fallback(){return(0,e.createComponent)(x,{})},get children(){let t=p(),r=t.firstChild;return(0,e.addEventListener)(r,"input",S,!0),(0,e.insert)(t,(0,e.createComponent)(x,{}),null),(0,e.effect)(n=>{let a=(0,o.cx)("n-editor",i.class),s=!!i.lineNumber,l=!i.toolbar,u=`${C()}px`;return a!==n._v$4&&(0,e.className)(t,n._v$4=a),s!==n._v$5&&r.classList.toggle("line-numbers",n._v$5=s),l!==n._v$6&&r.classList.toggle("not-toolbar",n._v$6=l),u!==n._v$7&&(null!=(n._v$7=u)?r.style.setProperty("height",u):r.style.removeProperty("height")),n},{_v$4:void 0,_v$5:void 0,_v$6:void 0,_v$7:void 0}),(0,e.effect)(()=>r.value=i.code),t}})]}(0,i.customElement)("n-code",{class:void 0,code:void 0,language:void 0,children:void 0,edit:void 0,toolbar:void 0,css:void 0,lineNumber:void 0,onChange:void 0,webWorker:void 0},(r,n)=>{let o=n.element,i=(0,t.mergeProps)({code:o.textContent,css:o.css,onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},r);return(0,t.createEffect)(()=>{o.replaceChildren(),o.removeAttribute("css")}),(0,e.createComponent)(h,i)});const b=h;(0,e.delegateEvents)(["click","input"]);
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import {\n Show,\n createEffect,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport Prism from '../prism';\nimport prismCss from '../prism/css';\nimport theme from '../theme';\nimport type { CustomElement } from '..';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n language?: string;\n /** 显示代码行号 */\n lineNumber?: boolean;\n /** 支持编辑 */\n edit?: boolean;\n /** 开启代码块工具条 */\n toolbar?: boolean;\n /** 编辑修改时的回调 */\n onChange?: (code: string) => void;\n children?: JSX.Element;\n /**\n * 使用 web worker\n * @default false\n */\n webWorker?: boolean;\n}\n\nexport type CodeElement = CustomElement<CodeProps>;\n\nfunction Code(props: CodeProps) {\n const { baseStyle } = theme;\n let codeEl: HTMLPreElement;\n const diffLang = /^diff-([\\w-]+)/i;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n const [isIntersecting, setIsIntersecting] = createSignal(false);\n\n function initObserver() {\n return new IntersectionObserver((entries) => {\n setIsIntersecting(entries[0].isIntersecting);\n });\n }\n function initWorker() {\n return new Worker('https://cdn.jsdelivr.net/npm/neko-ui@latest/es/code/worker.js');\n }\n // eslint-disable-next-line solid/reactivity\n let observer = props.webWorker ? void 0 : initObserver();\n // eslint-disable-next-line solid/reactivity\n let worker: Worker | undefined = props.webWorker ? initWorker() : void 0;\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function Pre() {\n return (\n <pre\n classList={{\n [`language-${props.language}`]: !!props.language,\n 'line-numbers': props.lineNumber,\n 'not-toolbar': !props.toolbar,\n [props.class as string]: !props.edit,\n }}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-language={props.language?.split(' ')[0]}>\n <button class=\"toolbar-copy\" aria-label=\"copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.language}`} textContent={code()} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${/\\n$/.test(target.value) ? '\\u200b' : ''}`;\n\n setCode(c);\n if (isFunction(props.onChange)) {\n props.onChange(c);\n }\n }\n function update(e: { data: string }) {\n codeEl.innerHTML = e.data;\n setHei(codeEl.getBoundingClientRect().height - (props.toolbar ? 40 : 16));\n }\n function cleanObserver() {\n if (observer) {\n // 停止观察目标元素\n observer.unobserve(codeEl);\n observer.disconnect();\n }\n }\n function postMessage(language: string, value?: string) {\n if (!value || !isIntersecting()) return;\n cleanObserver();\n if (diffLang.test(language) && !Prism.languages[language]) {\n Prism.languages[language] = Prism.languages.diff;\n }\n update({\n data: Prism.highlight(\n `${value}\\n`,\n Prism.languages[language] || Prism.languages.markup,\n language,\n ),\n });\n }\n createEffect(() => {\n if (props.code) {\n try {\n setCode(decodeURIComponent(props.code));\n } catch (error) {\n setCode(props.code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n if (props.webWorker) {\n if (!worker) {\n worker = initWorker();\n }\n worker.addEventListener('message', update);\n } else if (!observer) {\n observer = initObserver();\n }\n });\n\n createEffect(() => {\n if (worker) {\n worker.postMessage(\n JSON.stringify({\n language: props.language,\n code: code(),\n }),\n );\n } else {\n postMessage(props.language || 'markup', code());\n }\n });\n onMount(() => {\n if (codeEl) {\n // 开始观察目标元素\n observer?.observe(codeEl);\n }\n });\n onCleanup(() => {\n if (worker) {\n worker.removeEventListener('message', update);\n worker.terminate();\n }\n cleanObserver();\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={prismCss()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Show when={props.edit} fallback={<Pre />}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={props.code}\n classList={{\n 'line-numbers': props.lineNumber,\n 'not-toolbar': !props.toolbar,\n }}\n style={{ height: `${hei()}px` }}\n onInput={change}\n />\n <Pre />\n </div>\n </Show>\n </>\n );\n}\n\ncustomElement<CodeProps>(\n 'n-code',\n {\n class: void 0,\n code: void 0,\n language: void 0,\n children: void 0,\n edit: void 0,\n toolbar: void 0,\n css: void 0,\n lineNumber: void 0,\n onChange: void 0,\n webWorker: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n code: el.textContent,\n css: el.css,\n onChange(val: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return <Code {...props} />;\n },\n);\nexport default Code;\n"],"names":["Code","props","codeEl","baseStyle","theme","diffLang","code","setCode","createSignal","hei","setHei","isIntersecting","setIsIntersecting","initObserver","IntersectionObserver","entries","initWorker","Worker","observer","webWorker","worker","copy","setClipboard","untrack","Pre","Show","toolbar","language","split","lineNumber","class","edit","change","target","c","value","test","isFunction","onChange","update","e","innerHTML","data","getBoundingClientRect","height","cleanObserver","unobserve","disconnect","createEffect","decodeURIComponent","error","addEventListener","postMessage","JSON","stringify","Prism","languages","diff","highlight","markup","onMount","observe","onCleanup","removeEventListener","terminate","prismCss","style","css","cx","customElement","children","_","opt","el","element","mergeProps","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/code/index.tsx"],"sourcesContent":["import {\n type Accessor,\n createEffect,\n createResource,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from 'solid-js';\nimport { isFunction, setClipboard } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport theme from '../theme';\n\nimport { style } from './style';\n\nexport interface CodeProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 内容 */\n code?: string;\n /** 语言 */\n language?: string;\n /** 显示代码行号 */\n lineNumber?: boolean;\n /** 支持编辑 */\n edit?: boolean;\n /** 开启代码块工具条 */\n toolbar?: boolean;\n /** 编辑修改时的回调 */\n onChange?: (code: string) => void;\n children?: JSX.Element;\n /**\n * 使用 web worker\n * @default false\n */\n webWorker?: boolean;\n}\n\nexport type CodeElement = CustomElement<CodeProps>;\nconst cache = {\n Prism: null as typeof import('../prism/index').default | null,\n prismCss: null as Accessor<string> | null,\n};\n\nfunction Code(props: CodeProps) {\n const { baseStyle } = theme;\n let codeEl: HTMLPreElement;\n const diffLang = /^diff-([\\w-]+)/i;\n const [code, setCode] = createSignal<string>('');\n const [hei, setHei] = createSignal(20);\n const [isIntersecting, setIsIntersecting] = createSignal(false);\n\n async function fetchPrism() {\n if (!cache.Prism) {\n cache.Prism = (await import('../prism')).default;\n }\n return cache.Prism;\n }\n async function fetchPrismCss() {\n if (!cache.prismCss) {\n cache.prismCss = (await import('../prism/css')).default;\n }\n return cache.prismCss;\n }\n const [prismJS] = createResource('prism', fetchPrism);\n const [prismCss] = createResource('prism-css', fetchPrismCss);\n\n function initObserver() {\n return new IntersectionObserver((entries) => {\n setIsIntersecting(entries[0].isIntersecting);\n });\n }\n function initWorker() {\n return new Worker('https://cdn.jsdelivr.net/npm/neko-ui@latest/es/code/worker.js');\n }\n // eslint-disable-next-line solid/reactivity\n let observer = props.webWorker ? void 0 : initObserver();\n // eslint-disable-next-line solid/reactivity\n let worker: Worker | undefined = props.webWorker ? initWorker() : void 0;\n\n function copy() {\n setClipboard(untrack(code), codeEl);\n }\n function Pre() {\n return (\n <pre\n classList={{\n [`language-${props.language}`]: !!props.language,\n 'line-numbers': props.lineNumber,\n 'not-toolbar': !props.toolbar,\n [props.class!]: !props.edit,\n }}\n >\n <Show when={props.toolbar}>\n <div class=\"toolbar\" data-language={props.language?.split(' ')[0]}>\n <button class=\"toolbar-copy\" aria-label=\"copy\" onClick={copy} />\n </div>\n </Show>\n <code ref={codeEl} class={`language-${props.language}`} textContent={code()} />\n </pre>\n );\n }\n function change({ target }: { target: HTMLTextAreaElement }) {\n const c = `${target.value}${target.value.endsWith('\\n') ? '\\u200b' : ''}`;\n\n setCode(c);\n if (isFunction(props.onChange)) {\n props.onChange(c);\n }\n }\n function update(e: { data: string }) {\n codeEl.innerHTML = e.data;\n setHei(codeEl.getBoundingClientRect().height - (props.toolbar ? 40 : 16));\n }\n function cleanObserver() {\n if (observer) {\n // 停止观察目标元素\n observer.unobserve(codeEl);\n observer.disconnect();\n }\n }\n function postMessage(language: string, value?: string) {\n const Prism = prismJS();\n\n if (!value || !isIntersecting() || !Prism) return;\n cleanObserver();\n if (diffLang.test(language) && !Prism.languages[language]) {\n Prism.languages[language] = Prism.languages.diff;\n }\n update({\n data: Prism.highlight(\n `${value}\\n`,\n Prism.languages[language] || Prism.languages.markup,\n language,\n ),\n });\n }\n createEffect(() => {\n if (props.code) {\n try {\n setCode(decodeURIComponent(props.code));\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_error) {\n setCode(props.code);\n }\n } else {\n setCode('');\n }\n });\n createEffect(() => {\n if (props.webWorker) {\n if (!worker) {\n worker = initWorker();\n }\n worker.addEventListener('message', update);\n } else if (!observer) {\n observer = initObserver();\n }\n });\n\n createEffect(() => {\n if (worker) {\n worker.postMessage(\n JSON.stringify({\n language: props.language,\n code: code(),\n }),\n );\n } else {\n postMessage(props.language || 'markup', code());\n }\n });\n onMount(() => {\n if (codeEl) {\n // 开始观察目标元素\n observer?.observe(codeEl);\n }\n });\n onCleanup(() => {\n if (worker) {\n worker.removeEventListener('message', update);\n worker.terminate();\n }\n cleanObserver();\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={prismCss()?.()} />\n <style textContent={style} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Show when={props.edit} fallback={<Pre />}>\n <div class={cx('n-editor', props.class)}>\n <textarea\n value={props.code}\n classList={{\n 'line-numbers': props.lineNumber,\n 'not-toolbar': !props.toolbar,\n }}\n style={{ height: `${hei()}px` }}\n onInput={change}\n />\n <Pre />\n </div>\n </Show>\n </>\n );\n}\n\ncustomElement<CodeProps>(\n 'n-code',\n {\n class: void 0,\n code: void 0,\n language: void 0,\n children: void 0,\n edit: void 0,\n toolbar: void 0,\n css: void 0,\n lineNumber: void 0,\n onChange: void 0,\n webWorker: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n code: el.textContent,\n css: el.css,\n onChange(val: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n el.replaceChildren();\n el.removeAttribute('css');\n });\n\n return <Code {...props} />;\n },\n);\nexport default Code;\n"],"names":["cache","Prism","prismCss","Code","props","codeEl","baseStyle","theme","diffLang","code","setCode","createSignal","hei","setHei","isIntersecting","setIsIntersecting","fetchPrism","default","fetchPrismCss","prismJS","createResource","initObserver","IntersectionObserver","entries","initWorker","Worker","observer","webWorker","worker","copy","setClipboard","untrack","Pre","Show","toolbar","language","split","lineNumber","class","edit","change","target","c","value","endsWith","isFunction","onChange","update","e","innerHTML","data","getBoundingClientRect","height","cleanObserver","unobserve","disconnect","createEffect","decodeURIComponent","_error","addEventListener","postMessage","JSON","stringify","test","languages","diff","highlight","markup","onMount","observe","onCleanup","removeEventListener","terminate","style","css","cx","customElement","children","_","opt","el","element","mergeProps","textContent","val","dispatchEvent","CustomEvent","detail","replaceChildren","removeAttribute"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/code/worker.ts"],"sourcesContent":["self.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-clike.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-css.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-diff.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-docker.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-git.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-javascript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-jsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-latex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-less.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markdown.js');\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup-templating.js',\n);\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-regex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-rust.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-sql.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-swift.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-toml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-tsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-typescript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-wasm.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-yaml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\n// plugins\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/diff-highlight/prism-diff-highlight.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/highlight-keywords/prism-highlight-keywords.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/line-numbers/prism-line-numbers.js',\n);\n\nfunction onMessage(e: MessageEvent<string>) {\n let result;\n\n try {\n const { code, language = 'markup' } = JSON.parse(e.data) as {\n code: string;\n language: string;\n };\n\n if (/^diff-([\\w-]+)/i.test(language) && !self.Prism.languages[language]) {\n self.Prism.languages[language] = self.Prism.languages.diff;\n }\n\n result = self.Prism.highlight(`${code}\\n`, self.Prism.languages[language], language);\n } catch (error) {\n result = '';\n }\n self.postMessage(result); // 向主线程发送消息\n}\n\nself.addEventListener('message', onMessage, false);\n"],"names":["self","importScripts","addEventListener","e","result","code","language","JSON","parse","data","test","Prism","languages","diff","highlight","error","postMessage"],"mappings":"aAAAA,KAAKC,aAAa,CAAC,wDACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,0EACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,8EACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,4EACnBD,KAAKC,aAAa,CAChB,qFAEFD,KAAKC,aAAa,CAAC,0EACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,8EACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,wEAEnBD,KAAKC,aAAa,CAChB,8FAEFD,KAAKC,aAAa,CAChB,sGAEFD,KAAKC,aAAa,CAChB,0FAuBFD,KAAKE,gBAAgB,CAAC,UApBtB,SAAmBC,CAAuB,EACxC,IAAIC,EAEJ,GAAI,CACF,GAAM,CAAEC,KAAAA,CAAI,CAAEC,SAAAA,EAAW,QAAQ,CAAE,CAAGC,KAAKC,KAAK,CAACL,EAAEM,IAAI,EAKnD,kBAAkBC,IAAI,CAACJ,IAAa,CAACN,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,EACrEN,CAAAA,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,CAAGN,KAAKW,KAAK,CAACC,SAAS,CAACC,IAAI,AAAD,EAG3DT,EAASJ,KAAKW,KAAK,CAACG,SAAS,CAAC,CAAC,EAAET,EAAK;AAAE,CAAC,CAAEL,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,CAAEA,EAC7E,CAAE,MAAOS,EAAO,CACdX,EAAS,EACX,CACAJ,KAAKgB,WAAW,CAACZ,EACnB,EAE4C,CAAA"}
1
+ {"version":3,"sources":["../../components/code/worker.ts"],"sourcesContent":["self.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-clike.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-css.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-diff.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-docker.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-git.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-javascript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-jsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-latex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-less.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markdown.js');\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup-templating.js',\n);\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-markup.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-regex.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-rust.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-sql.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-swift.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-toml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-tsx.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-typescript.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-wasm.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-yaml.js');\nself.importScripts('https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.js');\n// plugins\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/diff-highlight/prism-diff-highlight.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/highlight-keywords/prism-highlight-keywords.js',\n);\nself.importScripts(\n 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/line-numbers/prism-line-numbers.js',\n);\n\nfunction onMessage(e: MessageEvent<string>) {\n let result;\n\n try {\n const { code, language = 'markup' } = JSON.parse(e.data) as {\n code: string;\n language: string;\n };\n\n if (/^diff-([\\w-]+)/i.test(language) && !self.Prism.languages[language]) {\n self.Prism.languages[language] = self.Prism.languages.diff;\n }\n\n result = self.Prism.highlight(`${code}\\n`, self.Prism.languages[language], language);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n result = '';\n }\n self.postMessage(result); // 向主线程发送消息\n}\n\nself.addEventListener('message', onMessage, false);\n"],"names":["self","importScripts","addEventListener","e","result","code","language","JSON","parse","data","test","Prism","languages","diff","highlight","error","postMessage"],"mappings":"aAAAA,KAAKC,aAAa,CAAC,wDACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,0EACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,8EACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,4EACnBD,KAAKC,aAAa,CAChB,qFAEFD,KAAKC,aAAa,CAAC,0EACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,yEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,uEACnBD,KAAKC,aAAa,CAAC,8EACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,wEACnBD,KAAKC,aAAa,CAAC,wEAEnBD,KAAKC,aAAa,CAChB,8FAEFD,KAAKC,aAAa,CAChB,sGAEFD,KAAKC,aAAa,CAChB,0FAwBFD,KAAKE,gBAAgB,CAAC,UArBtB,SAAmBC,CAAuB,EACxC,IAAIC,EAEJ,GAAI,CACF,GAAM,CAAEC,KAAAA,CAAI,CAAEC,SAAAA,EAAW,QAAQ,CAAE,CAAGC,KAAKC,KAAK,CAACL,EAAEM,IAAI,EAKnD,kBAAkBC,IAAI,CAACJ,IAAa,CAACN,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,EACrEN,CAAAA,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,CAAGN,KAAKW,KAAK,CAACC,SAAS,CAACC,IAAI,AAAD,EAG3DT,EAASJ,KAAKW,KAAK,CAACG,SAAS,CAAC,CAAC,EAAET,EAAK;AAAE,CAAC,CAAEL,KAAKW,KAAK,CAACC,SAAS,CAACN,EAAS,CAAEA,EAE7E,CAAE,MAAOS,EAAO,CACdX,EAAS,EACX,CACAJ,KAAKgB,WAAW,CAACZ,EACnB,EAE4C,CAAA"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 数据录入
3
+ title: 颜色选择面板
4
+ subtitle: n-color-palette
5
+ icon: 🌈
6
+ ---
7
+
8
+ # ColorPalette
9
+
10
+ > 颜色选择面板
@@ -0,0 +1,25 @@
1
+ ---
2
+ title: 最简单的使用方式
3
+ description: 可以给颜色选择面板指定一个初始颜色值 default-value,取值为合法的颜色值。
4
+ order: 1
5
+ ---
6
+
7
+ ```html
8
+ <n-color-palette default-value="#318867"></n-color-palette>
9
+ <script>
10
+ const el = container.querySelector('n-color-palette');
11
+
12
+ el.onchange = function (e) {
13
+ console.log(e.detail);
14
+ };
15
+ </script>
16
+ ```
17
+
18
+ ```jsx
19
+ <n-color-palette
20
+ default-value="#318867"
21
+ onChange={(e) => {
22
+ console.log(e.detail);
23
+ }}
24
+ />
25
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: HEXA
3
+ description: 指定一个十六进制的颜色其组成部分是:#RRGGBB,其中RR(红色),GG(绿色)和BB(蓝色)。所有值必须介于0和FF之间。
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-color-palette value="#3188BF67"></n-color-palette>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-color-palette value="#3188BF67" />
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: HSLA
3
+ description: 色相、饱和度、亮度、透明度
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-color-palette value="hsla(252,68%,63%,1)"></n-color-palette>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-color-palette value="hsla(252,68%,63%,1)" />
13
+ ```
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: RGBA
3
+ description: 红色、绿色、蓝色、透明度
4
+ order: 4
5
+ ---
6
+
7
+ ```html
8
+ <n-color-palette value="rgba(76,81,29,0.73)"></n-color-palette>
9
+ ```
10
+
11
+ ```jsx
12
+ <n-color-palette value="rgba(76,81,29,0.73)" />
13
+ ```
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{default:function(){return w},defaultColorPaletteProps:function(){return C}});const e=require("solid-js/web"),t=require("solid-js"),n=d(require("@moneko/common/lib/colorParse")),r=d(require("@moneko/common/lib/isFunction")),l=d(require("@moneko/common/lib/passiveSupported")),a=d(require("@moneko/common/lib/setClipboard")),i=d(require("@moneko/common/lib/throttle")),o=require("@moneko/css"),u=require("solid-element"),s=require("./style");require("../dropdown"),require("../input"),require("../input-number");const c=d(require("../theme"));function d(e){return e&&e.__esModule?e:{default:e}}const p=(0,e.template)("<style> "),f=(0,e.template)("<style>"),m=(0,e.template)("<n-input>",!0,!1),v=(0,e.template)('<i class="eye-dropper">'),g=(0,e.template)('<div><div class="picker"></div><div class="chooser"><div class="range"><input class="slider hue" min="0" max="360" type="range"><input class="slider opacity" min="0" max="1" step="0.01" type="range"></div><div class="preview"></div></div><div class="form"><n-dropdown placement="right" trigger="click"><span class="switch"></span></n-dropdown></div><div class="color">',!0,!1),h=(0,e.template)("<n-input-number>",!0,!1),y=(0,e.template)("<i>");function b(u){let d;let{baseStyle:b}=c.default,C=(0,t.mergeProps)({defaultValue:"#5794ff"},u),w=[{label:"RGBA",value:"rgba",handleClosed:!1},{label:"HSLA",value:"hsla",handleClosed:!1},{label:"HEXA",value:"hexa",handleClosed:!1}],x=["#f44336","#E91E63","#9C27B0","#673AB7","#3F51B5","#2196F3","#00BCD4","#009688","#4CAF50","#CDDC39","#FF9800","#795548","#607D8B"],E={class:"input",size:"small",css:".input{text-align:center;font-size:12px;}"},[k,S]=(0,t.createSignal)((0,n.default)(C.value||C.defaultValue)),[q,P]=(0,t.createSignal)(!1);function $(e){return e?Number((100*e).toFixed()):e}function L(e){let t=e;return"string"==typeof e&&(t=e.replace(/[^\d]/g,"")),t/100}let M=(0,t.createMemo)(()=>{var e;let t=k(),n=t[e=t.type,`to${e[0].toUpperCase()+e.slice(1)}`]();return(0,r.default)(C.onChange)&&n.toString()!==C.value&&C.onChange(n.toString()),n});function B(e=C.defaultValue){(0,t.untrack)(M).toString()!==e&&S((0,n.default)(e))}function F(e){e.target&&(e.target.value=e.detail)}function D(e){e.target?.value&&B(e.target.value)}function _(e){"Enter"===e.key&&"string"==typeof e.target?.value&&B(e.target.value)}function O(e){if(d){let{x:n,y:r,width:l,height:a}=d.getBoundingClientRect(),i=(0,t.untrack)(k),o=i.value;o[1]=Math.floor(Math.min(Math.max(0,(e.clientX-n)/l*100),100)),o[2]=Math.floor(100-Math.min(Math.max(0,(e.clientY-r)/a*100),100)),S({...i,value:o})}}function j(e,r,l){if("number"==typeof r){let a=(0,t.untrack)(k),i=3===e||"hsva"===l,o=i?a.value:(0,t.untrack)(M);o[e]=r||0,i?S({...a,value:o}):S((0,n.default)(o.toString()))}}function A(e){P(!0),O(e)}function H(){P(!1)}function R(e){S(t=>({...t,type:e.detail[0]}))}function N(e){(0,a.default)((0,t.untrack)(M).toString(),e.target)}async function V(){if(window.EyeDropper){let e=await new window.EyeDropper().open();e.sRGBHex&&B(e.sRGBHex);return}}let G=(0,t.createMemo)(()=>{let e=k(),t=e.value;return`.palette {--c:${e.toRgbaString()};--h:${t[0]};--s:${t[1]};--v:${t[2]};--a:${t[3]};}`});return(0,t.createEffect)(()=>{(0,i.default)(B,8)(C.value)}),(0,t.createEffect)(()=>{q()&&document.body.addEventListener("mousemove",O,{passive:l.default}),(0,t.onCleanup)(()=>{document.body.removeEventListener("mousemove",O,!1)})}),(0,t.onMount)(()=>{document.body.addEventListener("mouseup",H,{passive:l.default})}),(0,t.onCleanup)(()=>{document.body.removeEventListener("mouseup",H,!1)}),[(()=>{let t=p(),n=t.firstChild;return(0,e.effect)(()=>n.data=b()),t})(),(()=>{let e=f();return e.textContent=s.style,e})(),(()=>{let t=p(),n=t.firstChild;return(0,e.effect)(()=>n.data=G()),t})(),(0,e.createComponent)(t.Show,{get when(){return C.css},get children(){let t=p(),n=t.firstChild;return(0,e.effect)(()=>n.data=(0,o.css)(C.css)),t}}),(()=>{let n=g(),r=n.firstChild,l=d,a=r.nextSibling,i=a.firstChild,u=i.firstChild,c=u.nextSibling,p=i.nextSibling,f=a.nextSibling,b=f.firstChild,S=b.firstChild,q=f.nextSibling;return(0,e.addEventListener)(r,"mousedown",A,!0),"function"==typeof l?(0,e.use)(l,r):d=r,u.$$input=e=>j(0,Number(e.target.value),"hsva"),c.$$input=e=>j(3,Number(e.target.value)),(0,e.addEventListener)(p,"click",N,!0),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return"hexa"===k().type},get fallback(){return(0,e.createComponent)(t.Index,{get each(){return M()},children:(n,r)=>{let l=Object.assign({},E,3===r&&{step:.01,formatter:$,parse:L});return(()=>{let a=h();return(0,e.spread)(a,(0,e.mergeProps)(l,{get value(){return n()},get max(){return(0,t.untrack)(M).max[r]},min:0,onChange:e=>{j(r,e.detail)}}),!1,!1),a._$owner=(0,e.getOwner)(),a})()}})},get children(){let t=m();return(0,e.spread)(t,(0,e.mergeProps)(E,{get value(){return k().toHexaString()},onChange:F,onBlur:D,onKeyUp:_}),!1,!1),t._$owner=(0,e.getOwner)(),t}}),b),(0,e.addEventListener)(b,"change",R),b.css=s.switchCss,b.items=w,b._$owner=(0,e.getOwner)(),(0,e.insert)(S,()=>k().type),(0,e.insert)(q,(0,e.createComponent)(t.Show,{get when(){return window.EyeDropper},get fallback(){return(()=>{let t=y();return(0,e.addEventListener)(t,"click",B.bind(null,"rgba(168,16,16,0.15)"),!0),t.style.setProperty("--c","rgba(168,16,16,0.15)"),t})()},get children(){let t=v();return(0,e.addEventListener)(t,"click",V,!0),t.style.setProperty("--c","transparent"),t}}),null),(0,e.insert)(q,(0,e.createComponent)(t.For,{each:x,children:t=>(()=>{let n=y();return(0,e.addEventListener)(n,"click",B.bind(null,t),!0),null!=t?n.style.setProperty("--c",t):n.style.removeProperty("--c"),n})()}),null),(0,e.effect)(()=>(0,e.className)(n,(0,o.cx)("palette",C.class))),(0,e.effect)(()=>u.value=k().value[0]),(0,e.effect)(()=>c.value=k().value[3]),(0,e.effect)(()=>b.value=k().type),n})()]}const C={class:void 0,style:void 0,css:void 0,value:void 0,defaultValue:void 0,onChange:void 0};(0,u.customElement)("n-color-palette",C,(n,r)=>{let l=r.element,a=(0,t.mergeProps)({onChange(e){l.dispatchEvent(new CustomEvent("change",{detail:e}))}},n);return(0,e.createComponent)(b,a)});const w=b;(0,e.delegateEvents)(["click","input","mousedown"]);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(exports,{default:function(){return w},defaultColorPaletteProps:function(){return C}});const e=require("solid-js/web"),t=require("solid-js"),n=d(require("@moneko/common/lib/colorParse")),r=d(require("@moneko/common/lib/isFunction")),l=d(require("@moneko/common/lib/passiveSupported")),a=d(require("@moneko/common/lib/setClipboard")),i=d(require("@moneko/common/lib/throttle")),o=require("@moneko/css"),u=require("solid-element"),s=d(require("../theme")),c=require("./style");function d(e){return e&&e.__esModule?e:{default:e}}require("../dropdown"),require("../input"),require("../input-number");const p=(0,e.template)("<style> "),f=(0,e.template)("<style>"),m=(0,e.template)("<n-input>",!0,!1),v=(0,e.template)('<i class="eye-dropper">'),g=(0,e.template)('<div><div class="picker"></div><div class="chooser"><div class="range"><input class="slider hue" min="0" max="360" type="range"><input class="slider opacity" min="0" max="1" step="0.01" type="range"></div><div class="preview"></div></div><div class="form"><n-dropdown placement="right" trigger="click"><span class="switch"></span></n-dropdown></div><div class="color">',!0,!1),h=(0,e.template)("<n-input-number>",!0,!1),y=(0,e.template)("<i>");function b(u){let d;let{baseStyle:b}=s.default,C=(0,t.mergeProps)({defaultValue:"#5794ff"},u),w=[{label:"RGBA",value:"rgba",handleClosed:!1},{label:"HSLA",value:"hsla",handleClosed:!1},{label:"HEXA",value:"hexa",handleClosed:!1}],x=["#f44336","#E91E63","#9C27B0","#673AB7","#3F51B5","#2196F3","#00BCD4","#009688","#4CAF50","#CDDC39","#FF9800","#795548","#607D8B"],E={class:"input",size:"small",css:".input{text-align:center;font-size:12px;}"},[k,S]=(0,t.createSignal)((0,n.default)(C.value||C.defaultValue)),[q,P]=(0,t.createSignal)(!1);function $(e){return e?Number((100*e).toFixed()):e}function L(e){let t=e;return"string"==typeof e&&(t=e.replace(/[^\d]/g,"")),t/100}let M=(0,t.createMemo)(()=>{var e;let t=k(),n=t[e=t.type,`to${e[0].toUpperCase()+e.slice(1)}`]();return(0,r.default)(C.onChange)&&n.toString()!==C.value&&C.onChange(n.toString()),n});function B(e=C.defaultValue){(0,t.untrack)(M).toString()!==e&&S((0,n.default)(e))}function F(e){e.target&&(e.target.value=e.detail)}function D(e){e.target.value&&B(e.target.value)}function _(e){"Enter"===e.key&&"string"==typeof e.target.value&&B(e.target.value)}function O(e){if(d){let{x:n,y:r,width:l,height:a}=d.getBoundingClientRect(),i=(0,t.untrack)(k),o=i.value;o[1]=Math.floor(Math.min(Math.max(0,(e.clientX-n)/l*100),100)),o[2]=Math.floor(100-Math.min(Math.max(0,(e.clientY-r)/a*100),100)),S({...i,value:o})}}function j(e,r,l){if("number"==typeof r){let a=(0,t.untrack)(k),i=3===e||"hsva"===l,o=i?a.value:(0,t.untrack)(M);o[e]=r||0,i?S({...a,value:o}):S((0,n.default)(o.toString()))}}function A(e){P(!0),O(e)}function H(){P(!1)}function R(e){S(t=>({...t,type:e.detail[0]}))}function N(e){(0,a.default)((0,t.untrack)(M).toString(),e.target)}async function V(){if(window.EyeDropper){let e=await new window.EyeDropper().open();e.sRGBHex&&B(e.sRGBHex);return}}let G=(0,t.createMemo)(()=>{let e=k(),t=e.value;return`.palette {--c:${e.toRgbaString()};--h:${t[0]};--s:${t[1]};--v:${t[2]};--a:${t[3]};}`});return(0,t.createEffect)(()=>{(0,i.default)(B,8)(C.value)}),(0,t.createEffect)(()=>{q()&&document.body.addEventListener("mousemove",O,{passive:l.default}),(0,t.onCleanup)(()=>{document.body.removeEventListener("mousemove",O,!1)})}),(0,t.onMount)(()=>{document.body.addEventListener("mouseup",H,{passive:l.default})}),(0,t.onCleanup)(()=>{document.body.removeEventListener("mouseup",H,!1)}),[(()=>{let t=p(),n=t.firstChild;return(0,e.effect)(()=>n.data=b()),t})(),(()=>{let e=f();return e.textContent=c.style,e})(),(()=>{let t=p(),n=t.firstChild;return(0,e.effect)(()=>n.data=G()),t})(),(0,e.createComponent)(t.Show,{get when(){return C.css},get children(){let t=p(),n=t.firstChild;return(0,e.effect)(()=>n.data=(0,o.css)(C.css)),t}}),(()=>{let n=g(),r=n.firstChild,l=d,a=r.nextSibling,i=a.firstChild,u=i.firstChild,s=u.nextSibling,p=i.nextSibling,f=a.nextSibling,b=f.firstChild,S=b.firstChild,q=f.nextSibling;return(0,e.addEventListener)(r,"mousedown",A,!0),"function"==typeof l?(0,e.use)(l,r):d=r,u.$$input=e=>{j(0,Number(e.target.value),"hsva")},s.$$input=e=>{j(3,Number(e.target.value))},(0,e.addEventListener)(p,"click",N,!0),(0,e.insert)(f,(0,e.createComponent)(t.Show,{get when(){return"hexa"===k().type},get fallback(){return(0,e.createComponent)(t.Index,{get each(){return M()},children:(n,r)=>{let l=Object.assign({},E,3===r&&{step:.01,formatter:$,parse:L});return(()=>{let a=h();return(0,e.spread)(a,(0,e.mergeProps)(l,{get value(){return n()},get max(){return(0,t.untrack)(M).max[r]},min:0,onChange:e=>{j(r,e.detail)}}),!1,!1),a._$owner=(0,e.getOwner)(),a})()}})},get children(){let t=m();return(0,e.spread)(t,(0,e.mergeProps)(E,{get value(){return k().toHexaString()},onChange:F,onBlur:D,onKeyUp:_}),!1,!1),t._$owner=(0,e.getOwner)(),t}}),b),(0,e.addEventListener)(b,"change",R),b.css=c.switchCss,b.items=w,b._$owner=(0,e.getOwner)(),(0,e.insert)(S,()=>k().type),(0,e.insert)(q,(0,e.createComponent)(t.Show,{get when(){return window.EyeDropper},get fallback(){return(()=>{let t=y();return(0,e.addEventListener)(t,"click",B.bind(null,"rgba(168,16,16,0.15)"),!0),t.style.setProperty("--c","rgba(168,16,16,0.15)"),t})()},get children(){let t=v();return(0,e.addEventListener)(t,"click",V,!0),t.style.setProperty("--c","transparent"),t}}),null),(0,e.insert)(q,(0,e.createComponent)(t.For,{each:x,children:t=>(()=>{let n=y();return(0,e.addEventListener)(n,"click",B.bind(null,t),!0),null!=t?n.style.setProperty("--c",t):n.style.removeProperty("--c"),n})()}),null),(0,e.effect)(()=>(0,e.className)(n,(0,o.cx)("palette",C.class))),(0,e.effect)(()=>u.value=k().value[0]),(0,e.effect)(()=>s.value=k().value[3]),(0,e.effect)(()=>b.value=k().type),n})()]}const C={class:void 0,style:void 0,css:void 0,value:void 0,defaultValue:void 0,onChange:void 0};(0,u.customElement)("n-color-palette",C,(n,r)=>{let l=r.element,a=(0,t.mergeProps)({onChange(e){l.dispatchEvent(new CustomEvent("change",{detail:e}))}},n);return(0,e.createComponent)(b,a)});const w=b;(0,e.delegateEvents)(["click","input","mousedown"]);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/color-palette/index.tsx"],"sourcesContent":["import {\n For,\n Index,\n Show,\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n untrack,\n} from 'solid-js';\nimport {\n type ColorParse,\n type ColorType,\n type HSVA,\n colorParse,\n isFunction,\n passiveSupported,\n setClipboard,\n throttle,\n} from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style, switchCss } from './style';\nimport '../dropdown';\nimport '../input';\nimport '../input-number';\nimport theme from '../theme';\nimport type { CustomElement, InputNumberProps } from '..';\n\nexport interface ColorPaletteProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 颜色值 */\n value?: string;\n /** 默认值\n * @default '#5794ff'\n */\n defaultValue?: string;\n /** 变更时触发的方法 */\n onChange?: (color: string) => void;\n}\nexport type ColorPaletteElement = CustomElement<ColorPaletteProps>;\n\nfunction ColorPalette(_: ColorPaletteProps) {\n const { baseStyle } = theme;\n const props = mergeProps({ defaultValue: '#5794ff' }, _);\n let picker: HTMLDivElement | undefined;\n const types = [\n { label: 'RGBA', value: 'rgba', handleClosed: false },\n { label: 'HSLA', value: 'hsla', handleClosed: false },\n { label: 'HEXA', value: 'hexa', handleClosed: false },\n ];\n const material = [\n '#f44336',\n '#E91E63',\n '#9C27B0',\n '#673AB7',\n '#3F51B5',\n '#2196F3',\n '#00BCD4',\n '#009688',\n '#4CAF50',\n '#CDDC39',\n '#FF9800',\n '#795548',\n '#607D8B',\n ];\n const inputProps: InputNumberProps = {\n class: 'input',\n size: 'small',\n css: '.input{text-align:center;font-size:12px;}',\n };\n const [hsva, setHsva] = createSignal<ColorParse<HSVA>>(\n // eslint-disable-next-line solid/reactivity\n colorParse(props.value || props.defaultValue),\n );\n const [drag, setDrag] = createSignal(false);\n\n type HsvaToColorVoid = 'toHexa' | 'toRgba' | 'toHsla' | 'toCmyk' | 'toHsva';\n\n function formatterOpacity(v?: number | string) {\n return v ? Number(((v as number) * 100).toFixed()) : v;\n }\n function parseOpacity(v?: string | number) {\n let _val = v;\n\n if (typeof v === 'string') {\n _val = v.replace(/[^\\d]/g, '');\n }\n return (_val as number) / 100;\n }\n function capFirst(str: string) {\n return `to${str[0].toUpperCase() + str.slice(1)}` as HsvaToColorVoid;\n }\n const color = createMemo(() => {\n const s = hsva();\n const c = s[capFirst(s.type)]();\n\n if (isFunction(props.onChange) && c.toString() !== props.value) {\n props.onChange(c.toString());\n }\n return c;\n });\n\n function setColor(c = props.defaultValue) {\n if (untrack(color).toString() !== c) {\n setHsva(colorParse(c as string));\n }\n }\n function handleHexa(e: CustomEvent) {\n if (e.target) {\n (e.target as HTMLInputElement).value = e.detail;\n }\n }\n function handleHexaBlur(e: FocusEvent & { target: { value: string } }) {\n if (e.target?.value) {\n setColor(e.target.value);\n }\n }\n function handleHexaEnter(e: KeyboardEvent & { target: { value: string } }) {\n if (e.key === 'Enter' && typeof e.target?.value === 'string') {\n setColor(e.target.value);\n }\n }\n function changeColor(ev: MouseEvent) {\n if (picker) {\n const { x, y, width, height } = picker.getBoundingClientRect();\n const prev = untrack(hsva);\n const next = prev.value;\n\n next[1] = Math.floor(Math.min(Math.max(0, ((ev.clientX - x) / width) * 100), 100));\n next[2] = Math.floor(100 - Math.min(Math.max(0, ((ev.clientY - y) / height) * 100), 100));\n\n setHsva({ ...prev, value: next });\n }\n }\n\n function handleChange(i: number, v?: number, t?: ColorType) {\n if (typeof v === 'number') {\n const prev = untrack(hsva);\n const changeHsv = i === 3 || t === 'hsva';\n const next = changeHsv ? prev.value : (untrack(color) as HSVA);\n\n next[i] = v || 0;\n if (changeHsv) {\n setHsva({\n ...prev,\n value: next,\n });\n } else {\n setHsva(colorParse(next.toString()));\n }\n }\n }\n function mouseDown(e: MouseEvent) {\n setDrag(true);\n changeColor(e);\n }\n function mouseUp() {\n setDrag(false);\n }\n function handleSwitch(e: CustomEvent) {\n setHsva((prev) => ({\n ...prev,\n type: e.detail[0],\n }));\n }\n\n function copy(e: MouseEvent) {\n setClipboard(untrack(color).toString(), e.target as HTMLElement);\n }\n async function eyeDropper() {\n if (window.EyeDropper) {\n const res = await new window.EyeDropper().open();\n\n if (res.sRGBHex) {\n setColor(res.sRGBHex);\n }\n return;\n }\n }\n const colorVar = createMemo(() => {\n const h = hsva(),\n value = h.value;\n\n return `.palette {--c:${h.toRgbaString()};--h:${value[0]};--s:${value[1]};--v:${value[2]};--a:${\n value[3]\n };}`;\n });\n\n createEffect(() => {\n throttle(setColor, 8)(props.value);\n });\n\n createEffect(() => {\n if (drag()) {\n document.body.addEventListener('mousemove', changeColor, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n document.body.removeEventListener('mousemove', changeColor, false);\n });\n });\n onMount(() => {\n document.body.addEventListener('mouseup', mouseUp, {\n passive: passiveSupported,\n });\n });\n onCleanup(() => {\n document.body.removeEventListener('mouseup', mouseUp, false);\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={colorVar()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div class={cx('palette', props.class)}>\n <div ref={picker} class=\"picker\" onMouseDown={mouseDown} />\n <div class=\"chooser\">\n <div class=\"range\">\n <input\n class=\"slider hue\"\n min=\"0\"\n max=\"360\"\n type=\"range\"\n value={hsva().value[0]}\n onInput={(e) => handleChange(0, Number(e.target.value), 'hsva')}\n />\n <input\n class=\"slider opacity\"\n min=\"0\"\n max=\"1\"\n step=\"0.01\"\n type=\"range\"\n value={hsva().value[3]}\n onInput={(e) => handleChange(3, Number(e.target.value))}\n />\n </div>\n <div class=\"preview\" onClick={copy} />\n </div>\n <div class=\"form\">\n <Show\n when={hsva().type === 'hexa'}\n fallback={\n <>\n <Index each={color()}>\n {(n, i) => {\n const inp = Object.assign(\n {},\n inputProps,\n i === 3 && {\n step: 0.01,\n formatter: formatterOpacity,\n parse: parseOpacity,\n },\n );\n\n return (\n <n-input-number\n {...inp}\n value={n() as number}\n max={\n (\n untrack(color) as HSVA & {\n max: [360, 100, 100, 1];\n }\n ).max[i]\n }\n min={0}\n onChange={(e) => {\n handleChange(i, e.detail);\n }}\n />\n );\n }}\n </Index>\n </>\n }\n >\n <n-input\n {...inputProps}\n value={hsva().toHexaString()}\n onChange={handleHexa}\n onBlur={handleHexaBlur}\n onKeyUp={handleHexaEnter}\n />\n </Show>\n <n-dropdown\n css={switchCss}\n value={hsva().type}\n items={types}\n placement=\"right\"\n trigger=\"click\"\n onChange={handleSwitch}\n >\n <span class=\"switch\">{hsva().type}</span>\n </n-dropdown>\n </div>\n <div class=\"color\">\n <Show\n when={window.EyeDropper}\n fallback={\n <i\n style={{ '--c': 'rgba(168,16,16,0.15)' }}\n onClick={setColor.bind(null, 'rgba(168,16,16,0.15)')}\n />\n }\n >\n <i class=\"eye-dropper\" style={{ '--c': 'transparent' }} onClick={eyeDropper} />\n </Show>\n <For each={material}>\n {(c) => <i style={{ '--c': c }} onClick={setColor.bind(null, c)} />}\n </For>\n </div>\n </div>\n </>\n );\n}\n\nexport const defaultColorPaletteProps = {\n class: void 0,\n style: void 0,\n css: void 0,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n};\n\ncustomElement<ColorPaletteProps>('n-color-palette', defaultColorPaletteProps, (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return <ColorPalette {...props} />;\n});\n\nexport default ColorPalette;\n"],"names":["defaultColorPaletteProps","ColorPalette","_","picker","baseStyle","theme","props","mergeProps","defaultValue","types","label","value","handleClosed","material","inputProps","class","size","css","hsva","setHsva","createSignal","colorParse","drag","setDrag","formatterOpacity","v","Number","toFixed","parseOpacity","_val","replace","color","createMemo","str","s","c","type","toUpperCase","slice","isFunction","onChange","toString","setColor","untrack","handleHexa","e","target","detail","handleHexaBlur","handleHexaEnter","key","changeColor","ev","x","y","width","height","getBoundingClientRect","prev","next","Math","floor","min","max","clientX","clientY","handleChange","i","t","changeHsv","mouseDown","mouseUp","handleSwitch","copy","setClipboard","eyeDropper","window","EyeDropper","res","open","sRGBHex","colorVar","h","toRgbaString","createEffect","throttle","document","body","addEventListener","passive","passiveSupported","onCleanup","removeEventListener","onMount","style","Show","Index","n","inp","Object","assign","step","formatter","parse","toHexaString","switchCss","bind","For","cx","customElement","opts","el","element","val","dispatchEvent","CustomEvent"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/color-palette/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n For,\n Index,\n mergeProps,\n onCleanup,\n onMount,\n Show,\n untrack,\n} from 'solid-js';\nimport {\n type ColorParse,\n colorParse,\n type ColorType,\n type HSVA,\n isFunction,\n passiveSupported,\n setClipboard,\n throttle,\n} from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement, InputNumberProps } from '..';\nimport theme from '../theme';\n\nimport { style, switchCss } from './style';\n\nimport '../dropdown';\nimport '../input';\nimport '../input-number';\n\nexport interface ColorPaletteProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 颜色值 */\n value?: string;\n /** 默认值\n * @default '#5794ff'\n */\n defaultValue?: string;\n /** 变更时触发的方法 */\n onChange?: (color: string) => void;\n}\nexport type ColorPaletteElement = CustomElement<ColorPaletteProps>;\n\nfunction ColorPalette(_: ColorPaletteProps) {\n const { baseStyle } = theme;\n const props = mergeProps({ defaultValue: '#5794ff' }, _);\n let picker: HTMLDivElement | undefined;\n const types = [\n { label: 'RGBA', value: 'rgba', handleClosed: false },\n { label: 'HSLA', value: 'hsla', handleClosed: false },\n { label: 'HEXA', value: 'hexa', handleClosed: false },\n ];\n const material = [\n '#f44336',\n '#E91E63',\n '#9C27B0',\n '#673AB7',\n '#3F51B5',\n '#2196F3',\n '#00BCD4',\n '#009688',\n '#4CAF50',\n '#CDDC39',\n '#FF9800',\n '#795548',\n '#607D8B',\n ];\n const inputProps: InputNumberProps = {\n class: 'input',\n size: 'small',\n css: '.input{text-align:center;font-size:12px;}',\n };\n const [hsva, setHsva] = createSignal<ColorParse<HSVA>>(\n // eslint-disable-next-line solid/reactivity\n colorParse(props.value || props.defaultValue),\n );\n const [drag, setDrag] = createSignal(false);\n\n type HsvaToColorVoid = 'toHexa' | 'toRgba' | 'toHsla' | 'toCmyk' | 'toHsva';\n\n function formatterOpacity(v?: number | string) {\n return v ? Number(((v as number) * 100).toFixed()) : v;\n }\n function parseOpacity(v?: string | number) {\n let _val = v;\n\n if (typeof v === 'string') {\n _val = v.replace(/[^\\d]/g, '');\n }\n return (_val as number) / 100;\n }\n function capFirst(str: string) {\n return `to${str[0].toUpperCase() + str.slice(1)}` as HsvaToColorVoid;\n }\n const color = createMemo(() => {\n const s = hsva();\n const c = s[capFirst(s.type)]();\n\n if (isFunction(props.onChange) && c.toString() !== props.value) {\n props.onChange(c.toString());\n }\n return c;\n });\n\n function setColor(c = props.defaultValue) {\n if (untrack(color).toString() !== c) {\n setHsva(colorParse(c));\n }\n }\n function handleHexa(e: CustomEvent) {\n if (e.target) {\n (e.target as HTMLInputElement).value = e.detail;\n }\n }\n function handleHexaBlur(e: FocusEvent & { target: { value: string } }) {\n if (e.target.value) {\n setColor(e.target.value);\n }\n }\n function handleHexaEnter(e: KeyboardEvent & { target: { value: string } }) {\n if (e.key === 'Enter' && typeof e.target.value === 'string') {\n setColor(e.target.value);\n }\n }\n function changeColor(ev: MouseEvent) {\n if (picker) {\n const { x, y, width, height } = picker.getBoundingClientRect();\n const prev = untrack(hsva);\n const next = prev.value;\n\n next[1] = Math.floor(Math.min(Math.max(0, ((ev.clientX - x) / width) * 100), 100));\n next[2] = Math.floor(100 - Math.min(Math.max(0, ((ev.clientY - y) / height) * 100), 100));\n\n setHsva({ ...prev, value: next });\n }\n }\n\n function handleChange(i: number, v?: number, t?: ColorType) {\n if (typeof v === 'number') {\n const prev = untrack(hsva);\n const changeHsv = i === 3 || t === 'hsva';\n const next = changeHsv ? prev.value : (untrack(color) as HSVA);\n\n next[i] = v || 0;\n if (changeHsv) {\n setHsva({\n ...prev,\n value: next,\n });\n } else {\n setHsva(colorParse(next.toString()));\n }\n }\n }\n function mouseDown(e: MouseEvent) {\n setDrag(true);\n changeColor(e);\n }\n function mouseUp() {\n setDrag(false);\n }\n function handleSwitch(e: CustomEvent) {\n setHsva((prev) => ({\n ...prev,\n type: e.detail[0],\n }));\n }\n\n function copy(e: MouseEvent) {\n setClipboard(untrack(color).toString(), e.target as HTMLElement);\n }\n async function eyeDropper() {\n if (window.EyeDropper) {\n const res = await new window.EyeDropper().open();\n\n if (res.sRGBHex) {\n setColor(res.sRGBHex);\n }\n return;\n }\n }\n const colorVar = createMemo(() => {\n const h = hsva(),\n value = h.value;\n\n return `.palette {--c:${h.toRgbaString()};--h:${value[0]};--s:${value[1]};--v:${value[2]};--a:${\n value[3]\n };}`;\n });\n\n createEffect(() => {\n throttle(setColor, 8)(props.value);\n });\n\n createEffect(() => {\n if (drag()) {\n document.body.addEventListener('mousemove', changeColor, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n document.body.removeEventListener('mousemove', changeColor, false);\n });\n });\n onMount(() => {\n document.body.addEventListener('mouseup', mouseUp, {\n passive: passiveSupported,\n });\n });\n onCleanup(() => {\n document.body.removeEventListener('mouseup', mouseUp, false);\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={colorVar()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <div class={cx('palette', props.class)}>\n <div ref={picker} class=\"picker\" onMouseDown={mouseDown} />\n <div class=\"chooser\">\n <div class=\"range\">\n <input\n class=\"slider hue\"\n min=\"0\"\n max=\"360\"\n type=\"range\"\n value={hsva().value[0]}\n onInput={(e) => {\n handleChange(0, Number(e.target.value), 'hsva');\n }}\n />\n <input\n class=\"slider opacity\"\n min=\"0\"\n max=\"1\"\n step=\"0.01\"\n type=\"range\"\n value={hsva().value[3]}\n onInput={(e) => {\n handleChange(3, Number(e.target.value));\n }}\n />\n </div>\n <div class=\"preview\" onClick={copy} />\n </div>\n <div class=\"form\">\n <Show\n when={hsva().type === 'hexa'}\n fallback={\n <>\n <Index each={color()}>\n {(n, i) => {\n const inp = Object.assign(\n {},\n inputProps,\n i === 3 && {\n step: 0.01,\n formatter: formatterOpacity,\n parse: parseOpacity,\n },\n );\n\n return (\n <n-input-number\n {...inp}\n value={n() as number}\n max={\n (\n untrack(color) as HSVA & {\n max: [360, 100, 100, 1];\n }\n ).max[i]\n }\n min={0}\n onChange={(e) => {\n handleChange(i, e.detail);\n }}\n />\n );\n }}\n </Index>\n </>\n }\n >\n <n-input\n {...inputProps}\n value={hsva().toHexaString()}\n onChange={handleHexa}\n onBlur={handleHexaBlur}\n onKeyUp={handleHexaEnter}\n />\n </Show>\n <n-dropdown\n css={switchCss}\n value={hsva().type}\n items={types}\n placement=\"right\"\n trigger=\"click\"\n onChange={handleSwitch}\n >\n <span class=\"switch\">{hsva().type}</span>\n </n-dropdown>\n </div>\n <div class=\"color\">\n <Show\n when={window.EyeDropper}\n fallback={\n <i\n style={{ '--c': 'rgba(168,16,16,0.15)' }}\n onClick={setColor.bind(null, 'rgba(168,16,16,0.15)')}\n />\n }\n >\n <i class=\"eye-dropper\" style={{ '--c': 'transparent' }} onClick={eyeDropper} />\n </Show>\n <For each={material}>\n {(c) => <i style={{ '--c': c }} onClick={setColor.bind(null, c)} />}\n </For>\n </div>\n </div>\n </>\n );\n}\n\nexport const defaultColorPaletteProps = {\n class: void 0,\n style: void 0,\n css: void 0,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n};\n\ncustomElement<ColorPaletteProps>('n-color-palette', defaultColorPaletteProps, (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n return <ColorPalette {...props} />;\n});\n\nexport default ColorPalette;\n"],"names":["defaultColorPaletteProps","ColorPalette","_","picker","baseStyle","theme","props","mergeProps","defaultValue","types","label","value","handleClosed","material","inputProps","class","size","css","hsva","setHsva","createSignal","colorParse","drag","setDrag","formatterOpacity","v","Number","toFixed","parseOpacity","_val","replace","color","createMemo","str","s","c","type","toUpperCase","slice","isFunction","onChange","toString","setColor","untrack","handleHexa","e","target","detail","handleHexaBlur","handleHexaEnter","key","changeColor","ev","x","y","width","height","getBoundingClientRect","prev","next","Math","floor","min","max","clientX","clientY","handleChange","i","t","changeHsv","mouseDown","mouseUp","handleSwitch","copy","setClipboard","eyeDropper","window","EyeDropper","res","open","sRGBHex","colorVar","h","toRgbaString","createEffect","throttle","document","body","addEventListener","passive","passiveSupported","onCleanup","removeEventListener","onMount","style","Show","Index","n","inp","Object","assign","step","formatter","parse","toHexaString","switchCss","bind","For","cx","customElement","opts","el","element","val","dispatchEvent","CustomEvent"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 数据录入
3
+ title: 颜色选择器
4
+ subtitle: n-color-picker
5
+ icon: 🍭
6
+ ---
7
+
8
+ # ColorPicker
9
+
10
+ > 颜色选择器
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 直接使用
3
+ order: 1
4
+ ---
5
+
6
+ ```html
7
+ <n-color-picker default-value="#5998ff"></n-color-picker>
8
+ ```
9
+
10
+ ```jsx
11
+ <n-color-picker default-value="pink" />
12
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ title: 默认值
3
+ description: 通过设置 `defaultValue` 为颜色选择器提供默认值。
4
+ order: 3
5
+ ---
6
+
7
+ ```html
8
+ <n-color-picker default-value="blue"></n-color-picker>
9
+ <script>
10
+ const el = container.querySelector('n-color-picker');
11
+
12
+ el.onchange = function (e) {
13
+ console.log(e.detail);
14
+ };
15
+ </script>
16
+ ```
17
+
18
+ ```jsx
19
+ <n-color-picker default-value="blue" />
20
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: 不同尺寸
3
+ description: 颜色选择器有大、中、小三种尺寸。通过设置 `size` 为 `large`、`small` 分别把按钮设为大、小尺寸。若不设置 `size`,则尺寸为中 'normal'。
4
+ order: 2
5
+ ---
6
+
7
+ ```html
8
+ <n-color-picker value="#fedaaa" size="small"></n-color-picker>
9
+ <n-color-picker value="red" size="normal"></n-color-picker>
10
+ <n-color-picker value="green" size="large"></n-color-picker>
11
+ ```
12
+
13
+ ```jsx
14
+ <n-color-picker value="#fedaaa" size="small" />
15
+ <n-color-picker value="red" size="normal" />
16
+ <n-color-picker value="green" size="large" />
17
+ ```
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return p}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),n=require("solid-element"),o=require("./style");require("../color-palette");const l=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var a=o?Object.getOwnPropertyDescriptor(e,l):null;a&&(a.get||a.set)?Object.defineProperty(n,l,a):n[l]=e[l]}return n.default=e,r&&r.set(e,n),n}(require("../popover"));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}const a=(0,e.template)("<span>"),i=(0,e.template)("<n-color-palette>",!0,!1);function c(n){let[u,c]=(0,t.splitProps)(n,["css","value","defaultValue","onChange","popupClass","popupCss","size"]),[p,s]=(0,t.createSignal)(u.defaultValue);function d(e){void 0===u.value&&s(e.detail),u.onChange?.(e.detail)}(0,t.onMount)(()=>{void 0===u.value&&u.defaultValue&&s(u.defaultValue)}),(0,t.createEffect)(()=>{void 0!==u.value&&u.value!==(0,t.untrack)(p)&&s(u.value)});let f=(0,t.createMemo)(()=>`.color-picker {padding: 10px;inline-size: 216px;}${u.popupCss||""}`),g=(0,t.createMemo)(()=>`${o.style+(u.css||"")}.trigger {--c: ${p()};}`);return(0,e.createComponent)(l.default,(0,e.mergeProps)(c,{arrow:!0,trigger:"click",get content(){return(()=>{let t=i();return(0,e.addEventListener)(t,"change",d),t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=p()),t})()},get popupClass(){return(0,r.cx)("color-picker",u.popupClass)},get popupCss(){return f()},get css(){return g()},get children(){let t=a();return(0,e.effect)(()=>(0,e.className)(t,(0,r.cx)("trigger",u.size))),t}}))}(0,n.customElement)("n-color-picker",{...l.defaultProps,value:void 0,defaultValue:void 0,onChange:void 0,size:void 0},(r,n)=>{let o=n.element,l=(0,t.mergeProps)({onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))},children:o.children},r);return(0,e.createComponent)(c,l)});const p=c;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return p}});const e=require("solid-js/web"),t=require("solid-js"),r=require("@moneko/css"),n=require("solid-element"),o=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=u(void 0);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var a=o?Object.getOwnPropertyDescriptor(e,l):null;a&&(a.get||a.set)?Object.defineProperty(n,l,a):n[l]=e[l]}return n.default=e,r&&r.set(e,n),n}(require("../popover")),l=require("./style");function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(u=function(e){return e?r:t})(e)}require("../color-palette");const a=(0,e.template)("<span>"),i=(0,e.template)("<n-color-palette>",!0,!1);function c(n){let[u,c]=(0,t.splitProps)(n,["css","value","defaultValue","onChange","popupClass","popupCss","size"]),[p,s]=(0,t.createSignal)(u.defaultValue);function d(e){void 0===u.value&&s(e.detail),u.onChange?.(e.detail)}(0,t.onMount)(()=>{void 0===u.value&&u.defaultValue&&s(u.defaultValue)}),(0,t.createEffect)(()=>{void 0!==u.value&&u.value!==(0,t.untrack)(p)&&s(u.value)});let f=(0,t.createMemo)(()=>`.color-picker {padding: 10px;inline-size: 216px;}${u.popupCss||""}`),g=(0,t.createMemo)(()=>`${l.style+(u.css||"")}.trigger {--c: ${p()};}`);return(0,e.createComponent)(o.default,(0,e.mergeProps)(c,{arrow:!0,trigger:"click",get content(){return(()=>{let t=i();return(0,e.addEventListener)(t,"change",d),t._$owner=(0,e.getOwner)(),(0,e.effect)(()=>t.value=p()),t})()},get popupClass(){return(0,r.cx)("color-picker",u.popupClass)},get popupCss(){return f()},get css(){return g()},get children(){let t=a();return(0,e.effect)(()=>(0,e.className)(t,(0,r.cx)("trigger",u.size))),t}}))}(0,n.customElement)("n-color-picker",{...o.defaultProps,value:void 0,defaultValue:void 0,onChange:void 0,size:void 0},(r,n)=>{let o=n.element,l=(0,t.mergeProps)({onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))},children:o.children},r);return(0,e.createComponent)(c,l)});const p=c;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/color-picker/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onMount,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\nimport { style } from './style';\nimport '../color-palette';\nimport Popover, { defaultProps } from '../popover';\nimport type { BasicConfig, ColorPaletteProps, CustomElement, PopoverProps } from '..';\n\n/** 颜色选择器\n * @since 2.0.0\n */\nexport interface ColorPickerProps\n extends ColorPaletteProps,\n Omit<PopoverProps, 'children' | 'content'> {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 关闭后是否销毁 */\n destroyInactive?: boolean;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 默认值 */\n defaultValue?: string;\n}\nexport type ColorPickerElement = CustomElement<ColorPickerProps>;\n\nfunction ColorPicker(props: ColorPickerProps) {\n const [local, others] = splitProps(props, [\n 'css',\n 'value',\n 'defaultValue',\n 'onChange',\n 'popupClass',\n 'popupCss',\n 'size',\n ]);\n const [color, setColor] = createSignal<string | undefined>(local.defaultValue);\n\n function handleChange(e: CustomEvent<string>) {\n if (local.value === void 0) {\n setColor(e.detail);\n }\n local.onChange?.(e.detail);\n }\n\n onMount(() => {\n if (local.value === void 0 && local.defaultValue) {\n setColor(local.defaultValue);\n }\n });\n createEffect(() => {\n if (local.value !== void 0 && local.value !== untrack(color)) {\n setColor(local.value);\n }\n });\n const popupCss = createMemo(\n () => `.color-picker {padding: 10px;inline-size: 216px;}${local.popupCss || ''}`,\n );\n const css = createMemo(() => `${style + (local.css || '')}.trigger {--c: ${color()};}`);\n\n return (\n <Popover\n {...others}\n arrow={true}\n trigger=\"click\"\n content={<n-color-palette value={color()} onChange={handleChange} />}\n popupClass={cx('color-picker', local.popupClass)}\n popupCss={popupCss()}\n css={css()}\n >\n <span class={cx('trigger', local.size)} />\n </Popover>\n );\n}\n\ncustomElement<ColorPickerProps>(\n 'n-color-picker',\n {\n ...defaultProps,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n size: void 0,\n },\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n children: el.children,\n },\n _,\n );\n\n return <ColorPicker {...props} />;\n },\n);\n\nexport default ColorPicker;\n"],"names":["ColorPicker","props","local","others","splitProps","color","setColor","createSignal","defaultValue","handleChange","e","value","detail","onChange","onMount","createEffect","untrack","popupCss","createMemo","css","style","Popover","cx","popupClass","size","customElement","defaultProps","_","opts","el","element","mergeProps","val","dispatchEvent","CustomEvent","children"],"mappings":"kGAmHA,+CAAA,+CA3GO,sBACY,yBACW,2BACR,mBACf,gfAC+B,2NAwBtC,SAASA,EAAYC,CAAuB,EAC1C,GAAM,CAACC,EAAOC,EAAO,CAAGC,GAAAA,YAAU,EAACH,EAAO,CACxC,MACA,QACA,eACA,WACA,aACA,WACA,OACD,EACK,CAACI,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAqBL,EAAMM,YAAY,EAE7E,SAASC,EAAaC,CAAsB,EACtB,KAAK,IAArBR,EAAMS,KAAK,EACbL,EAASI,EAAEE,MAAM,EAEnBV,EAAMW,QAAQ,GAAGH,EAAEE,MAAM,CAC3B,CAEAE,GAAAA,SAAO,EAAC,KACc,KAAK,IAArBZ,EAAMS,KAAK,EAAeT,EAAMM,YAAY,EAC9CF,EAASJ,EAAMM,YAAY,CAE/B,GACAO,GAAAA,cAAY,EAAC,KACS,KAAK,IAArBb,EAAMS,KAAK,EAAeT,EAAMS,KAAK,GAAKK,GAAAA,SAAO,EAACX,IACpDC,EAASJ,EAAMS,KAAK,CAExB,GACA,IAAMM,EAAWC,GAAAA,YAAU,EACzB,IAAM,CAAC,iDAAiD,EAAEhB,EAAMe,QAAQ,EAAI,GAAG,CAAC,EAE5EE,EAAMD,GAAAA,YAAU,EAAC,IAAM,CAAC,EAAEE,OAAK,CAAIlB,CAAAA,EAAMiB,GAAG,EAAI,EAAC,EAAG,eAAe,EAAEd,IAAQ,EAAE,CAAC,EAEtF,4BACGgB,SAAO,kBACFlB,SACG,CAAA,8FAE6CM,uDAAnBJ,mCACrBiB,GAAAA,IAAE,EAAC,eAAgBpB,EAAMqB,UAAU,yBACrCN,sBACLE,uEAEQG,GAAAA,IAAE,EAAC,UAAWpB,EAAMsB,IAAI,SAG3C,CAEAC,GAAAA,eAAa,EACX,iBACA,CACE,GAAGC,cAAY,CACff,MAAO,KAAK,EACZH,aAAc,KAAK,EACnBK,SAAU,KAAK,EACfW,KAAM,KAAK,CACb,EACA,CAACG,EAAGC,KACF,IAAMC,EAAKD,EAAKE,OAAO,CACjB7B,EAAQ8B,GAAAA,YAAU,EACtB,CACElB,SAASmB,CAAY,EACnBH,EAAGI,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBtB,OAAQoB,CACV,GAEJ,EACAG,SAAUN,EAAGM,QAAQ,AACvB,EACAR,GAGF,4BAAQ3B,EAAgBC,EAC1B,SAGF,EAAeD"}
1
+ {"version":3,"sources":["../../components/color-picker/index.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n mergeProps,\n onMount,\n splitProps,\n untrack,\n} from 'solid-js';\nimport { cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BasicConfig, ColorPaletteProps, CustomElement, PopoverProps } from '..';\nimport Popover, { defaultProps } from '../popover';\n\nimport { style } from './style';\n\nimport '../color-palette';\n\n/** 颜色选择器\n * @since 2.0.0\n */\nexport interface ColorPickerProps\n extends ColorPaletteProps,\n Omit<PopoverProps, 'children' | 'content'> {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 关闭后是否销毁 */\n destroyInactive?: boolean;\n /** 尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 默认值 */\n defaultValue?: string;\n}\nexport type ColorPickerElement = CustomElement<ColorPickerProps>;\n\nfunction ColorPicker(props: ColorPickerProps) {\n const [local, others] = splitProps(props, [\n 'css',\n 'value',\n 'defaultValue',\n 'onChange',\n 'popupClass',\n 'popupCss',\n 'size',\n ]);\n const [color, setColor] = createSignal<string | undefined>(local.defaultValue);\n\n function handleChange(e: CustomEvent<string>) {\n if (local.value === void 0) {\n setColor(e.detail);\n }\n local.onChange?.(e.detail);\n }\n\n onMount(() => {\n if (local.value === void 0 && local.defaultValue) {\n setColor(local.defaultValue);\n }\n });\n createEffect(() => {\n if (local.value !== void 0 && local.value !== untrack(color)) {\n setColor(local.value);\n }\n });\n const popupCss = createMemo(\n () => `.color-picker {padding: 10px;inline-size: 216px;}${local.popupCss || ''}`,\n );\n const css = createMemo(() => `${style + (local.css || '')}.trigger {--c: ${color()};}`);\n\n return (\n <Popover\n {...others}\n arrow={true}\n trigger=\"click\"\n content={<n-color-palette value={color()} onChange={handleChange} />}\n popupClass={cx('color-picker', local.popupClass)}\n popupCss={popupCss()}\n css={css()}\n >\n <span class={cx('trigger', local.size)} />\n </Popover>\n );\n}\n\ncustomElement<ColorPickerProps>(\n 'n-color-picker',\n {\n ...defaultProps,\n value: void 0,\n defaultValue: void 0,\n onChange: void 0,\n size: void 0,\n },\n (_, opts) => {\n const el = opts.element;\n const props = mergeProps(\n {\n onChange(val?: string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n children: el.children,\n },\n _,\n );\n\n return <ColorPicker {...props} />;\n },\n);\n\nexport default ColorPicker;\n"],"names":["ColorPicker","props","local","others","splitProps","color","setColor","createSignal","defaultValue","handleChange","e","value","detail","onChange","onMount","createEffect","untrack","popupCss","createMemo","css","style","Popover","cx","popupClass","size","customElement","defaultProps","_","opts","el","element","mergeProps","val","dispatchEvent","CustomEvent","children"],"mappings":"kGAsHA,+CAAA,+CA9GO,sBACY,yBACW,ueAGQ,yBAEhB,kJAEf,iGAuBP,SAASA,EAAYC,CAAuB,EAC1C,GAAM,CAACC,EAAOC,EAAO,CAAGC,GAAAA,YAAU,EAACH,EAAO,CACxC,MACA,QACA,eACA,WACA,aACA,WACA,OACD,EACK,CAACI,EAAOC,EAAS,CAAGC,GAAAA,cAAY,EAAqBL,EAAMM,YAAY,EAE7E,SAASC,EAAaC,CAAsB,EACtB,KAAK,IAArBR,EAAMS,KAAK,EACbL,EAASI,EAAEE,MAAM,EAEnBV,EAAMW,QAAQ,GAAGH,EAAEE,MAAM,CAC3B,CAEAE,GAAAA,SAAO,EAAC,KACc,KAAK,IAArBZ,EAAMS,KAAK,EAAeT,EAAMM,YAAY,EAC9CF,EAASJ,EAAMM,YAAY,CAE/B,GACAO,GAAAA,cAAY,EAAC,KACS,KAAK,IAArBb,EAAMS,KAAK,EAAeT,EAAMS,KAAK,GAAKK,GAAAA,SAAO,EAACX,IACpDC,EAASJ,EAAMS,KAAK,CAExB,GACA,IAAMM,EAAWC,GAAAA,YAAU,EACzB,IAAM,CAAC,iDAAiD,EAAEhB,EAAMe,QAAQ,EAAI,GAAG,CAAC,EAE5EE,EAAMD,GAAAA,YAAU,EAAC,IAAM,CAAC,EAAEE,OAAK,CAAIlB,CAAAA,EAAMiB,GAAG,EAAI,EAAC,EAAG,eAAe,EAAEd,IAAQ,EAAE,CAAC,EAEtF,4BACGgB,SAAO,kBACFlB,SACG,CAAA,8FAE6CM,uDAAnBJ,mCACrBiB,GAAAA,IAAE,EAAC,eAAgBpB,EAAMqB,UAAU,yBACrCN,sBACLE,uEAEQG,GAAAA,IAAE,EAAC,UAAWpB,EAAMsB,IAAI,SAG3C,CAEAC,GAAAA,eAAa,EACX,iBACA,CACE,GAAGC,cAAY,CACff,MAAO,KAAK,EACZH,aAAc,KAAK,EACnBK,SAAU,KAAK,EACfW,KAAM,KAAK,CACb,EACA,CAACG,EAAGC,KACF,IAAMC,EAAKD,EAAKE,OAAO,CACjB7B,EAAQ8B,GAAAA,YAAU,EACtB,CACElB,SAASmB,CAAY,EACnBH,EAAGI,aAAa,CACd,IAAIC,YAAY,SAAU,CACxBtB,OAAQoB,CACV,GAEJ,EACAG,SAAUN,EAAGM,QAAQ,AACvB,EACAR,GAGF,4BAAQ3B,EAAgBC,EAC1B,SAGF,EAAeD"}
@@ -0,0 +1,10 @@
1
+ ---
2
+ type: 数据录入
3
+ title: Cron表达式
4
+ subtitle: n-cron
5
+ icon: ⌛
6
+ ---
7
+
8
+ import api from './api.md?raw';
9
+
10
+ <n-md text={api} />
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/begin-interval.tsx"],"sourcesContent":["import { selectCss, selectPortalCss } from './style';\nimport type { CronData } from '.';\nimport type { BaseOption } from 'neko-ui';\n\ntype BeginIntervalProps = {\n begin: CronData['begin'];\n beginEvery: CronData['beginEvery'];\n label: [JSX.Element, JSX.Element, JSX.Element];\n beginOption: (string | number | BaseOption)[];\n beginEveryOption: (string | number | BaseOption)[];\n onChange(type: 'begin' | 'beginEvery', value: number): void;\n validate(type: 'begin' | 'beginEvery', value: number): boolean;\n disabled: boolean;\n};\n\nfunction BeginInterval(props: BeginIntervalProps) {\n function onChange(\n type: 'begin' | 'beginEvery',\n e: CustomEvent<[val: number | string, item: BaseOption]>,\n ) {\n const [value] = e.detail;\n const v = Number(value);\n\n if (props.validate(type, v)) {\n props.onChange(type, v);\n }\n }\n return (\n <>\n {props.label[0]}\n <n-select\n value={props.begin}\n onChange={onChange.bind(null, 'begin')}\n options={props.beginOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[1]}\n <n-select\n value={props.beginEvery}\n onChange={onChange.bind(null, 'beginEvery')}\n options={props.beginEveryOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[2]}\n </>\n );\n}\n\nexport default BeginInterval;\n"],"names":["props","onChange","type","e","value","detail","v","Number","validate","label","bind","selectCss","selectPortalCss","beginOption","disabled","begin","beginEveryOption","beginEvery"],"mappings":"kGAwDA,+CAAA,+CAxD2C,gDAwD3C,EAzCA,SAAuBA,CAAyB,EAC9C,SAASC,EACPC,CAA4B,CAC5BC,CAAwD,EAExD,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,CAClBC,EAAIC,OAAOH,GAEbJ,EAAMQ,QAAQ,CAACN,EAAMI,IACvBN,EAAMC,QAAQ,CAACC,EAAMI,EAEzB,CACA,sBAEKN,EAAMS,KAAK,CAAC,EAAE,0DAGHR,EAASS,IAAI,CAAC,KAAM,gBAGzBC,WAAS,YACHC,iBAAe,4BACG,CAAA,UACtB,CAAA,oDALEZ,EAAMa,WAAW,GAChBb,EAAMc,QAAQ,+HAHjBd,EAAMe,KAAK,uBASnBf,EAAMS,KAAK,CAAC,EAAE,0DAGHR,EAASS,IAAI,CAAC,KAAM,qBAGzBC,WAAS,YACHC,iBAAe,4BACG,CAAA,UACtB,CAAA,oDALEZ,EAAMgB,gBAAgB,GACrBhB,EAAMc,QAAQ,kIAHjBd,EAAMiB,UAAU,uBASxBjB,EAAMS,KAAK,CAAC,EAAE,EAGrB"}
1
+ {"version":3,"sources":["../../components/cron/begin-interval.tsx"],"sourcesContent":["import type { BaseOption } from 'neko-ui';\n\nimport type { CronData } from '.';\nimport { selectCss, selectPortalCss } from './style';\n\ninterface BeginIntervalProps {\n begin: CronData['begin'];\n beginEvery: CronData['beginEvery'];\n label: [JSX.Element, JSX.Element, JSX.Element];\n beginOption: (string | number | BaseOption)[];\n beginEveryOption: (string | number | BaseOption)[];\n onChange(type: 'begin' | 'beginEvery', value: number): void;\n validate(type: 'begin' | 'beginEvery', value: number): boolean;\n disabled: boolean;\n}\n\nfunction BeginInterval(props: BeginIntervalProps) {\n function onChange(\n type: 'begin' | 'beginEvery',\n e: CustomEvent<[val: number | string, item: BaseOption]>,\n ) {\n const [value] = e.detail;\n const v = Number(value);\n\n if (props.validate(type, v)) {\n props.onChange(type, v);\n }\n }\n return (\n <>\n {props.label[0]}\n <n-select\n value={props.begin}\n onChange={onChange.bind(null, 'begin')}\n options={props.beginOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[1]}\n <n-select\n value={props.beginEvery}\n onChange={onChange.bind(null, 'beginEvery')}\n options={props.beginEveryOption}\n disabled={props.disabled}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n {props.label[2]}\n </>\n );\n}\n\nexport default BeginInterval;\n"],"names":["props","onChange","type","e","value","detail","v","Number","validate","label","bind","selectCss","selectPortalCss","beginOption","disabled","begin","beginEveryOption","beginEvery"],"mappings":"kGAyDA,+CAAA,+CAtD2C,gDAsD3C,EAzCA,SAAuBA,CAAyB,EAC9C,SAASC,EACPC,CAA4B,CAC5BC,CAAwD,EAExD,GAAM,CAACC,EAAM,CAAGD,EAAEE,MAAM,CAClBC,EAAIC,OAAOH,GAEbJ,EAAMQ,QAAQ,CAACN,EAAMI,IACvBN,EAAMC,QAAQ,CAACC,EAAMI,EAEzB,CACA,sBAEKN,EAAMS,KAAK,CAAC,EAAE,0DAGHR,EAASS,IAAI,CAAC,KAAM,gBAGzBC,WAAS,YACHC,iBAAe,4BACG,CAAA,UACtB,CAAA,oDALEZ,EAAMa,WAAW,GAChBb,EAAMc,QAAQ,+HAHjBd,EAAMe,KAAK,uBASnBf,EAAMS,KAAK,CAAC,EAAE,0DAGHR,EAASS,IAAI,CAAC,KAAM,qBAGzBC,WAAS,YACHC,iBAAe,4BACG,CAAA,UACtB,CAAA,oDALEZ,EAAMgB,gBAAgB,GACrBhB,EAAMc,QAAQ,kIAHjBd,EAAMiB,UAAU,uBASxBjB,EAAMS,KAAK,CAAC,EAAE,EAGrB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/day.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { selectCss, selectPortalCss } from './style';\nimport type { BaseOption } from 'neko-ui';\n\nfunction Day(props: Required<Omit<CronItemProps<'day'>, 'options'>>) {\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n\n const options = [\n { value: '*', label: '每日' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={days}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => v >= 1 && v < 31}\n label={['周期从', '到', '日']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={days}\n beginEveryOption={daysBeginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => v >= 1 && v <= 31}\n label={['从', '日开始, 每', '天执行一次']}\n />\n ),\n },\n {\n value: 'closeWorkDay',\n label: (\n <>\n 每月离\n <n-select\n value={props.state.closeWorkDay}\n onChange={(e) => {\n const [value] = e.detail;\n const v = Number(value);\n\n if (v >= 1 && v <= 31) {\n props.onChange('closeWorkDay', v);\n }\n }}\n options={days}\n disabled={props.state.type !== 'closeWorkDay'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n 日最近的那个工作日\n </>\n ),\n },\n { value: 'last', label: '本月最后1天' },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体天数(至少选择一项)\"\n value={props.state.some}\n options={days}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item state={props.state} options={options} onChange={props.onChange} />;\n}\n\nexport default Day;\n"],"names":["props","days","daysBeginEvery","x","push","label","value","options","Period","state","start","end","type","onChange","_","v","BeginInterval","begin","beginEvery","e","detail","Number","selectCss","selectPortalCss","closeWorkDay","Some","some","Item"],"mappings":"kGA+FA,+CAAA,iDA/F0B,iCACe,uBACtB,yBACF,qBAC0B,yGA2F3C,EAxFA,SAAaA,CAAsD,EACjE,IAAMC,EAAqB,EAAE,CACvBC,EAA2B,EAAE,CAEnC,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBF,EAAKG,IAAI,CAAC,CACRC,MAAOF,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAG,CAAC,EAAEA,EAAE,CAAC,CAChCG,MAAOH,CACT,GACAD,EAAeE,IAAI,CAACD,GAGtB,IAAMI,EAAU,CACd,CAAED,MAAO,IAAKD,MAAO,IAAK,EAC1B,CAAEC,MAAO,IAAKD,MAAO,KAAM,EAC3B,CACEC,MAAO,SACPD,KAAK,uBACFG,SAAM,qBACER,EAAMS,KAAK,CAACC,KAAK,mBACnBV,EAAMS,KAAK,CAACE,GAAG,UACXV,uBACCD,AAAqB,WAArBA,EAAMS,KAAK,CAACG,IAAI,wBAChBZ,EAAMa,QAAQ,WACd,CAACC,EAAGC,IAAMA,GAAK,GAAKA,EAAI,SAC3B,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACET,MAAO,gBACPD,KAAK,uBACFW,SAAa,qBACLhB,EAAMS,KAAK,CAACQ,KAAK,0BACZjB,EAAMS,KAAK,CAACS,UAAU,wBACxBlB,EAAMa,QAAQ,cACXZ,mBACKC,uBACRF,AAAqB,kBAArBA,EAAMS,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAMA,GAAK,GAAKA,GAAK,SAC5B,CAAC,IAAK,SAAU,QAAQ,EAGrC,EACA,CACET,MAAO,eACPD,KAAK,2DAKW,AAACc,IACT,GAAM,CAACb,EAAM,CAAGa,EAAEC,MAAM,CAClBL,EAAIM,OAAOf,GAEbS,GAAK,GAAKA,GAAK,IACjBf,EAAMa,QAAQ,CAAC,eAAgBE,EAEnC,aACSd,QAEJqB,WAAS,YACHC,iBAAe,4BACG,CAAA,UACtB,CAAA,yDAJGvB,AAAqB,iBAArBA,EAAMS,KAAK,CAACG,IAAI,2BAVnBZ,EAAMS,KAAK,CAACe,YAAY,oBAmBvC,EACA,CAAElB,MAAO,OAAQD,MAAO,QAAS,EACjC,CACEC,MAAO,OACPD,KAAK,uBACFoB,SAAI,0CAEIzB,EAAMS,KAAK,CAACiB,IAAI,UACdzB,oBACHD,EAAMS,KAAK,CAACG,IAAI,wBACZZ,EAAMa,QAAQ,GAG9B,EACD,CAED,4BAAQc,SAAI,qBAAQ3B,EAAMS,KAAK,UAAWF,wBAAmBP,EAAMa,QAAQ,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/day.tsx"],"sourcesContent":["import type { BaseOption } from 'neko-ui';\n\nimport BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { selectCss, selectPortalCss } from './style';\n\nfunction Day(props: Required<Omit<CronItemProps<'day'>, 'options'>>) {\n const days: BaseOption[] = [];\n const daysBeginEvery: number[] = [];\n\n for (let x = 1; x < 32; x++) {\n days.push({\n label: x < 10 ? `0${x}` : `${x}`,\n value: x,\n });\n daysBeginEvery.push(x);\n }\n\n const options = [\n { value: '*', label: '每日' },\n { value: '?', label: '不指定' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={days}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => v >= 1 && v < 31}\n label={['周期从', '到', '日']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={days}\n beginEveryOption={daysBeginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => v >= 1 && v <= 31}\n label={['从', '日开始, 每', '天执行一次']}\n />\n ),\n },\n {\n value: 'closeWorkDay',\n label: (\n <>\n 每月离\n <n-select\n value={props.state.closeWorkDay}\n onChange={(e) => {\n const [value] = e.detail;\n const v = Number(value);\n\n if (v >= 1 && v <= 31) {\n props.onChange('closeWorkDay', v);\n }\n }}\n options={days}\n disabled={props.state.type !== 'closeWorkDay'}\n css={selectCss}\n popup-css={selectPortalCss}\n dropdown-match-select-width={false}\n arrow={true}\n />\n 日最近的那个工作日\n </>\n ),\n },\n { value: 'last', label: '本月最后1天' },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体天数(至少选择一项)\"\n value={props.state.some}\n options={days}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item state={props.state} options={options} onChange={props.onChange} />;\n}\n\nexport default Day;\n"],"names":["props","days","daysBeginEvery","x","push","label","value","options","Period","state","start","end","type","onChange","_","v","BeginInterval","begin","beginEvery","e","detail","Number","selectCss","selectPortalCss","closeWorkDay","Some","some","Item"],"mappings":"kGAgGA,+CAAA,iDA9F0B,iCACe,uBACtB,yBACF,qBAC0B,yGA0F3C,EAxFA,SAAaA,CAAsD,EACjE,IAAMC,EAAqB,EAAE,CACvBC,EAA2B,EAAE,CAEnC,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBF,EAAKG,IAAI,CAAC,CACRC,MAAOF,EAAI,GAAK,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAG,CAAC,EAAEA,EAAE,CAAC,CAChCG,MAAOH,CACT,GACAD,EAAeE,IAAI,CAACD,GAGtB,IAAMI,EAAU,CACd,CAAED,MAAO,IAAKD,MAAO,IAAK,EAC1B,CAAEC,MAAO,IAAKD,MAAO,KAAM,EAC3B,CACEC,MAAO,SACPD,KAAK,uBACFG,SAAM,qBACER,EAAMS,KAAK,CAACC,KAAK,mBACnBV,EAAMS,KAAK,CAACE,GAAG,UACXV,uBACCD,AAAqB,WAArBA,EAAMS,KAAK,CAACG,IAAI,wBAChBZ,EAAMa,QAAQ,WACd,CAACC,EAAGC,IAAMA,GAAK,GAAKA,EAAI,SAC3B,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACET,MAAO,gBACPD,KAAK,uBACFW,SAAa,qBACLhB,EAAMS,KAAK,CAACQ,KAAK,0BACZjB,EAAMS,KAAK,CAACS,UAAU,wBACxBlB,EAAMa,QAAQ,cACXZ,mBACKC,uBACRF,AAAqB,kBAArBA,EAAMS,KAAK,CAACG,IAAI,WAChB,CAACE,EAAGC,IAAMA,GAAK,GAAKA,GAAK,SAC5B,CAAC,IAAK,SAAU,QAAQ,EAGrC,EACA,CACET,MAAO,eACPD,KAAK,2DAKW,AAACc,IACT,GAAM,CAACb,EAAM,CAAGa,EAAEC,MAAM,CAClBL,EAAIM,OAAOf,GAEbS,GAAK,GAAKA,GAAK,IACjBf,EAAMa,QAAQ,CAAC,eAAgBE,EAEnC,aACSd,QAEJqB,WAAS,YACHC,iBAAe,4BACG,CAAA,UACtB,CAAA,yDAJGvB,AAAqB,iBAArBA,EAAMS,KAAK,CAACG,IAAI,2BAVnBZ,EAAMS,KAAK,CAACe,YAAY,oBAmBvC,EACA,CAAElB,MAAO,OAAQD,MAAO,QAAS,EACjC,CACEC,MAAO,OACPD,KAAK,uBACFoB,SAAI,0CAEIzB,EAAMS,KAAK,CAACiB,IAAI,UACdzB,oBACHD,EAAMS,KAAK,CAACG,IAAI,wBACZZ,EAAMa,QAAQ,GAG9B,EACD,CAED,4BAAQc,SAAI,qBAAQ3B,EAAMS,KAAK,UAAWF,wBAAmBP,EAAMa,QAAQ,GAC7E"}
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 基本使用
3
+ order: 1
4
+ ---
5
+
6
+ ```html
7
+ <n-cron default-value="0-1 * 0-1 * * ? 2023/1"></n-cron>
8
+ <script>
9
+ const el = container.querySelector('n-cron');
10
+
11
+ el.onchange = function (e) {
12
+ console.log(e.detail);
13
+ };
14
+ </script>
15
+ ```
16
+
17
+ ```jsx
18
+ <n-cron default-value="0-1 * 0-1 * * ? 2023/1" />
19
+ ```
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 卡片式
3
+ order: 3
4
+ ---
5
+
6
+ ```html
7
+ <n-cron type="card" default-value="0-1 * 0-1 * * ? 2023/1"></n-cron>
8
+ ```
9
+
10
+ ```jsx
11
+ <n-cron type="card" default-value="0-1 * 0-1 * * ? 2023/1" />
12
+ ```
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: 是否显示 cron 表达式
3
+ order: 2
4
+ ---
5
+
6
+ ```html
7
+ <n-cron default-value="* * 0-1 * * ? 2023/1" show-cron="false"></n-cron>
8
+ ```
9
+
10
+ ```jsx
11
+ <n-cron default-value="* * 0-1 * * ? 2023/1" show-cron={false} />
12
+ ```
package/lib/cron/hour.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return l}});const e=require("solid-js/web"),t=u(require("./begin-interval")),r=u(require("./item")),n=u(require("./period")),a=u(require("./some")),o=require("../date-picker/time");function u(e){return e&&e.__esModule?e:{default:e}}const l=function(u){let l=[];for(let e=0;e<24;e++)l.push(`${e+1}`);let i=[{value:"*",label:"每小时"},{value:"period",label:(0,e.createComponent)(n.default,{get start(){return u.state.start},get end(){return u.state.end},options:o.hours,get disabled(){return"period"!==u.state.type},get onChange(){return u.onChange},validate:(e,t)=>"start"===e?t>=0&&t<23:t>0&&t<=23,label:["周期从","到","时"]})},{value:"beginInterval",label:(0,e.createComponent)(t.default,{get begin(){return u.state.begin},get beginEvery(){return u.state.beginEvery},get onChange(){return u.onChange},beginOption:o.hours,beginEveryOption:l,get disabled(){return"beginInterval"!==u.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=23:t>=1&&t<=24,label:["从","时开始, 每","小时执行一次"]})},{value:"some",label:(0,e.createComponent)(a.default,{label:"具体小时数(至少选择一项)",get value(){return u.state.some},options:o.hours,get type(){return u.state.type},get onChange(){return u.onChange}})}];return(0,e.createComponent)(r.default,{options:i,get onChange(){return u.onChange},get state(){return u.state}})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return l}});const e=require("solid-js/web"),t=require("../date-picker/time"),r=u(require("./begin-interval")),n=u(require("./item")),a=u(require("./period")),o=u(require("./some"));function u(e){return e&&e.__esModule?e:{default:e}}const l=function(u){let l=[];for(let e=0;e<24;e++)l.push(`${e+1}`);let i=[{value:"*",label:"每小时"},{value:"period",label:(0,e.createComponent)(a.default,{get start(){return u.state.start},get end(){return u.state.end},options:t.hours,get disabled(){return"period"!==u.state.type},get onChange(){return u.onChange},validate:(e,t)=>"start"===e?t>=0&&t<23:t>0&&t<=23,label:["周期从","到","时"]})},{value:"beginInterval",label:(0,e.createComponent)(r.default,{get begin(){return u.state.begin},get beginEvery(){return u.state.beginEvery},get onChange(){return u.onChange},beginOption:t.hours,beginEveryOption:l,get disabled(){return"beginInterval"!==u.state.type},validate:(e,t)=>"begin"===e?t>=0&&t<=23:t>=1&&t<=24,label:["从","时开始, 每","小时执行一次"]})},{value:"some",label:(0,e.createComponent)(o.default,{label:"具体小时数(至少选择一项)",get value(){return u.state.some},options:t.hours,get type(){return u.state.type},get onChange(){return u.onChange}})}];return(0,e.createComponent)(n.default,{options:i,get onChange(){return u.onChange},get state(){return u.state}})};
2
2
  //# sourceMappingURL=hour.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/cron/hour.tsx"],"sourcesContent":["import BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\nimport { hours } from '../date-picker/time';\n\nfunction Hour(props: Required<Omit<CronItemProps<'hour'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 24; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每小时' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={hours}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 23 : v > 0 && v <= 23)}\n label={['周期从', '到', '时']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={hours}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 23 : v >= 1 && v <= 24)}\n label={['从', '时开始, 每', '小时执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体小时数(至少选择一项)\"\n value={props.state.some}\n options={hours}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Hour;\n"],"names":["props","beginEvery","x","push","options","value","label","Period","state","start","end","hours","type","onChange","_","v","BeginInterval","begin","Some","some","Item"],"mappings":"kGA6DA,+CAAA,iDA7D0B,iCACe,uBACtB,yBACF,qBACK,gFAyDtB,EAvDA,SAAcA,CAAuD,EACnE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,uBACFC,SAAM,qBACEP,EAAMQ,KAAK,CAACC,KAAK,mBACnBT,EAAMQ,KAAK,CAACE,GAAG,UACXC,OAAK,sBACJX,AAAqB,WAArBA,EAAMQ,KAAK,CAACI,IAAI,wBAChBZ,EAAMa,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACEV,MAAO,gBACPC,KAAK,uBACFU,SAAa,qBACLhB,EAAMQ,KAAK,CAACS,KAAK,0BACZjB,EAAMQ,KAAK,CAACP,UAAU,wBACxBD,EAAMa,QAAQ,cACXF,OAAK,kBACAV,uBACRD,AAAqB,kBAArBA,EAAMQ,KAAK,CAACI,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,SAAS,EAGtC,EACA,CACEV,MAAO,OACPC,KAAK,uBACFY,SAAI,2CAEIlB,EAAMQ,KAAK,CAACW,IAAI,UACdR,OAAK,mBACRX,EAAMQ,KAAK,CAACI,IAAI,wBACZZ,EAAMa,QAAQ,GAG9B,EACD,CAED,4BAAQO,SAAI,UAAUhB,wBAAmBJ,EAAMa,QAAQ,qBAASb,EAAMQ,KAAK,GAC7E"}
1
+ {"version":3,"sources":["../../components/cron/hour.tsx"],"sourcesContent":["import { hours } from '../date-picker/time';\n\nimport BeginInterval from './begin-interval';\nimport Item, { type CronItemProps } from './item';\nimport Period from './period';\nimport Some from './some';\n\nfunction Hour(props: Required<Omit<CronItemProps<'hour'>, 'options'>>) {\n const beginEvery: string[] = [];\n\n for (let x = 0; x < 24; x++) {\n beginEvery.push(`${x + 1}`);\n }\n\n const options = [\n { value: '*', label: '每小时' },\n {\n value: 'period',\n label: (\n <Period\n start={props.state.start}\n end={props.state.end}\n options={hours}\n disabled={props.state.type !== 'period'}\n onChange={props.onChange}\n validate={(_, v) => (_ === 'start' ? v >= 0 && v < 23 : v > 0 && v <= 23)}\n label={['周期从', '到', '时']}\n />\n ),\n },\n {\n value: 'beginInterval',\n label: (\n <BeginInterval\n begin={props.state.begin}\n beginEvery={props.state.beginEvery}\n onChange={props.onChange}\n beginOption={hours}\n beginEveryOption={beginEvery}\n disabled={props.state.type !== 'beginInterval'}\n validate={(_, v) => (_ === 'begin' ? v >= 0 && v <= 23 : v >= 1 && v <= 24)}\n label={['从', '时开始, 每', '小时执行一次']}\n />\n ),\n },\n {\n value: 'some',\n label: (\n <Some\n label=\"具体小时数(至少选择一项)\"\n value={props.state.some}\n options={hours}\n type={props.state.type}\n onChange={props.onChange}\n />\n ),\n },\n ];\n\n return <Item options={options} onChange={props.onChange} state={props.state} />;\n}\n\nexport default Hour;\n"],"names":["props","beginEvery","x","push","options","value","label","Period","state","start","end","hours","type","onChange","_","v","BeginInterval","begin","Some","some","Item"],"mappings":"kGA8DA,+CAAA,+CA9DsB,mCAEI,iCACe,uBACtB,yBACF,oEAyDjB,EAvDA,SAAcA,CAAuD,EACnE,IAAMC,EAAuB,EAAE,CAE/B,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,EAAWE,IAAI,CAAC,CAAC,EAAED,EAAI,EAAE,CAAC,EAG5B,IAAME,EAAU,CACd,CAAEC,MAAO,IAAKC,MAAO,KAAM,EAC3B,CACED,MAAO,SACPC,KAAK,uBACFC,SAAM,qBACEP,EAAMQ,KAAK,CAACC,KAAK,mBACnBT,EAAMQ,KAAK,CAACE,GAAG,UACXC,OAAK,sBACJX,AAAqB,WAArBA,EAAMQ,KAAK,CAACI,IAAI,wBAChBZ,EAAMa,QAAQ,WACd,CAACC,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,EAAI,GAAKA,EAAI,GAAKA,GAAK,SAC/D,CAAC,MAAO,IAAK,IAAI,EAG9B,EACA,CACEV,MAAO,gBACPC,KAAK,uBACFU,SAAa,qBACLhB,EAAMQ,KAAK,CAACS,KAAK,0BACZjB,EAAMQ,KAAK,CAACP,UAAU,wBACxBD,EAAMa,QAAQ,cACXF,OAAK,kBACAV,uBACRD,AAAqB,kBAArBA,EAAMQ,KAAK,CAACI,IAAI,WAChB,CAACE,EAAGC,IAAOD,AAAM,UAANA,EAAgBC,GAAK,GAAKA,GAAK,GAAKA,GAAK,GAAKA,GAAK,SACjE,CAAC,IAAK,SAAU,SAAS,EAGtC,EACA,CACEV,MAAO,OACPC,KAAK,uBACFY,SAAI,2CAEIlB,EAAMQ,KAAK,CAACW,IAAI,UACdR,OAAK,mBACRX,EAAMQ,KAAK,CAACI,IAAI,wBACZZ,EAAMa,QAAQ,GAG9B,EACD,CAED,4BAAQO,SAAI,UAAUhB,wBAAmBJ,EAAMa,QAAQ,qBAASb,EAAMQ,KAAK,GAC7E"}