neko-ui 2.9.2 → 2.9.4

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 (415) hide show
  1. package/es/avatar/favicon.svg +0 -0
  2. package/es/avatar/group.js +17 -18
  3. package/es/avatar/group.js.map +1 -1
  4. package/es/avatar/index.js +1 -2
  5. package/es/avatar/index.js.map +1 -1
  6. package/es/avatar/style.js +1 -2
  7. package/es/avatar/style.js.map +1 -1
  8. package/es/back-top/index.js +1 -2
  9. package/es/back-top/index.js.map +1 -1
  10. package/es/back-top/style.js +1 -2
  11. package/es/back-top/style.js.map +1 -1
  12. package/es/basic-config/index.js +1 -2
  13. package/es/basic-config/index.js.map +1 -1
  14. package/es/button/index.js +1 -2
  15. package/es/button/index.js.map +1 -1
  16. package/es/button/style.js +1 -2
  17. package/es/button/style.js.map +1 -1
  18. package/es/capture-screen/index.js +1 -2
  19. package/es/capture-screen/index.js.map +1 -1
  20. package/es/capture-screen/style.js +1 -2
  21. package/es/capture-screen/style.js.map +1 -1
  22. package/es/carousel/index.js +1 -2
  23. package/es/carousel/index.js.map +1 -1
  24. package/es/carousel/style.js +1 -2
  25. package/es/carousel/style.js.map +1 -1
  26. package/es/checkbox/index.js +1 -2
  27. package/es/checkbox/index.js.map +1 -1
  28. package/es/checkbox/style.js +1 -2
  29. package/es/checkbox/style.js.map +1 -1
  30. package/es/code/index.d.ts +6 -2
  31. package/es/code/index.js +1 -2
  32. package/es/code/index.js.map +1 -1
  33. package/es/code/style.js +25 -26
  34. package/es/code/style.js.map +1 -1
  35. package/es/code/worker.js +1 -2
  36. package/es/code/worker.js.map +1 -1
  37. package/es/color-palette/index.js +1 -2
  38. package/es/color-palette/index.js.map +1 -1
  39. package/es/color-palette/style.js +1 -2
  40. package/es/color-palette/style.js.map +1 -1
  41. package/es/color-picker/index.js +1 -2
  42. package/es/color-picker/index.js.map +1 -1
  43. package/es/color-picker/style.js +1 -2
  44. package/es/color-picker/style.js.map +1 -1
  45. package/es/cron/begin-interval.js +1 -2
  46. package/es/cron/begin-interval.js.map +1 -1
  47. package/es/cron/day.js +1 -2
  48. package/es/cron/day.js.map +1 -1
  49. package/es/cron/hour.js +1 -2
  50. package/es/cron/hour.js.map +1 -1
  51. package/es/cron/index.js +1 -2
  52. package/es/cron/index.js.map +1 -1
  53. package/es/cron/item.js +1 -2
  54. package/es/cron/item.js.map +1 -1
  55. package/es/cron/minute.js +1 -2
  56. package/es/cron/minute.js.map +1 -1
  57. package/es/cron/month.js +1 -2
  58. package/es/cron/month.js.map +1 -1
  59. package/es/cron/period.js +1 -2
  60. package/es/cron/period.js.map +1 -1
  61. package/es/cron/second.js +1 -2
  62. package/es/cron/second.js.map +1 -1
  63. package/es/cron/some.js +1 -2
  64. package/es/cron/some.js.map +1 -1
  65. package/es/cron/style.js +1 -2
  66. package/es/cron/style.js.map +1 -1
  67. package/es/cron/week.js +1 -2
  68. package/es/cron/week.js.map +1 -1
  69. package/es/cron/year.js +1 -2
  70. package/es/cron/year.js.map +1 -1
  71. package/es/date-picker/date.js +1 -2
  72. package/es/date-picker/date.js.map +1 -1
  73. package/es/date-picker/dayjs.js +1 -2
  74. package/es/date-picker/dayjs.js.map +1 -1
  75. package/es/date-picker/index.js +1 -2
  76. package/es/date-picker/index.js.map +1 -1
  77. package/es/date-picker/month.js +1 -2
  78. package/es/date-picker/month.js.map +1 -1
  79. package/es/date-picker/panel.js +1 -2
  80. package/es/date-picker/panel.js.map +1 -1
  81. package/es/date-picker/style.js +1 -2
  82. package/es/date-picker/style.js.map +1 -1
  83. package/es/date-picker/time.js +1 -2
  84. package/es/date-picker/time.js.map +1 -1
  85. package/es/date-picker/year.js +1 -2
  86. package/es/date-picker/year.js.map +1 -1
  87. package/es/dropdown/index.js +1 -2
  88. package/es/dropdown/index.js.map +1 -1
  89. package/es/empty/index.js +1 -2
  90. package/es/empty/index.js.map +1 -1
  91. package/es/from-schema/index.js +1 -2
  92. package/es/from-schema/index.js.map +1 -1
  93. package/es/get-options/index.js +1 -2
  94. package/es/get-options/index.js.map +1 -1
  95. package/es/highlight-text/index.js +1 -2
  96. package/es/highlight-text/index.js.map +1 -1
  97. package/es/img/index.js +1 -2
  98. package/es/img/index.js.map +1 -1
  99. package/es/img/lazy.js +1 -2
  100. package/es/img/lazy.js.map +1 -1
  101. package/es/img/style.js +1 -2
  102. package/es/img/style.js.map +1 -1
  103. package/es/index.js +1 -2
  104. package/es/index.js.map +1 -1
  105. package/es/input/index.js +1 -2
  106. package/es/input/index.js.map +1 -1
  107. package/es/input/style.js +1 -2
  108. package/es/input/style.js.map +1 -1
  109. package/es/input-number/index.js +1 -2
  110. package/es/input-number/index.js.map +1 -1
  111. package/es/katex/index.js +1 -2
  112. package/es/katex/index.js.map +1 -1
  113. package/es/md/common.d.ts +4 -0
  114. package/es/md/common.js +1 -0
  115. package/es/md/common.js.map +1 -0
  116. package/es/md/index.d.ts +1 -0
  117. package/es/md/index.js +1 -2
  118. package/es/md/index.js.map +1 -1
  119. package/es/md/worker.d.ts +9 -1
  120. package/es/md/worker.js +1 -2
  121. package/es/md/worker.js.map +1 -1
  122. package/es/md-style/index.js +1 -2
  123. package/es/md-style/index.js.map +1 -1
  124. package/es/menu/index.js +1 -2
  125. package/es/menu/index.js.map +1 -1
  126. package/es/menu/style.js +1 -2
  127. package/es/menu/style.js.map +1 -1
  128. package/es/modal/hooks.js +1 -2
  129. package/es/modal/hooks.js.map +1 -1
  130. package/es/modal/index.js +1 -2
  131. package/es/modal/index.js.map +1 -1
  132. package/es/modal/store.js +1 -2
  133. package/es/modal/store.js.map +1 -1
  134. package/es/modal/style.js +1 -2
  135. package/es/modal/style.js.map +1 -1
  136. package/es/notification/index.js +1 -2
  137. package/es/notification/index.js.map +1 -1
  138. package/es/notification/notification.js +1 -2
  139. package/es/notification/notification.js.map +1 -1
  140. package/es/notification/queque.js +1 -2
  141. package/es/notification/queque.js.map +1 -1
  142. package/es/notification/styles.js +1 -2
  143. package/es/notification/styles.js.map +1 -1
  144. package/es/pagination/index.js +1 -2
  145. package/es/pagination/index.js.map +1 -1
  146. package/es/pagination/styles.js +1 -2
  147. package/es/pagination/styles.js.map +1 -1
  148. package/es/popover/index.js +1 -2
  149. package/es/popover/index.js.map +1 -1
  150. package/es/popover/style.js +1 -2
  151. package/es/popover/style.js.map +1 -1
  152. package/es/prism/index.d.ts +0 -1
  153. package/es/prism/index.js +1 -2
  154. package/es/prism/index.js.map +1 -1
  155. package/es/provider/index.js +1 -2
  156. package/es/provider/index.js.map +1 -1
  157. package/es/qrcode/index.js +1 -2
  158. package/es/qrcode/index.js.map +1 -1
  159. package/es/qrcode/qrcode.js +1 -2
  160. package/es/qrcode/qrcode.js.map +1 -1
  161. package/es/radio/index.js +1 -2
  162. package/es/radio/index.js.map +1 -1
  163. package/es/radio/style.js +1 -2
  164. package/es/radio/style.js.map +1 -1
  165. package/es/segmented/index.js +1 -12
  166. package/es/segmented/index.js.map +1 -1
  167. package/es/segmented/style.js +1 -2
  168. package/es/segmented/style.js.map +1 -1
  169. package/es/select/index.js +1 -2
  170. package/es/select/index.js.map +1 -1
  171. package/es/select/style.js +1 -2
  172. package/es/select/style.js.map +1 -1
  173. package/es/skeleton/index.js +2 -25
  174. package/es/skeleton/index.js.map +1 -1
  175. package/es/spin/index.js +1 -2
  176. package/es/spin/index.js.map +1 -1
  177. package/es/switch/index.js +1 -2
  178. package/es/switch/index.js.map +1 -1
  179. package/es/switch/style.js +1 -2
  180. package/es/switch/style.js.map +1 -1
  181. package/es/table/index.js +1 -2
  182. package/es/table/index.js.map +1 -1
  183. package/es/table/styles.js +1 -2
  184. package/es/table/styles.js.map +1 -1
  185. package/es/tabs/index.js +1 -12
  186. package/es/tabs/index.js.map +1 -1
  187. package/es/tabs/style.d.ts +2 -2
  188. package/es/tabs/style.js +32 -33
  189. package/es/tabs/style.js.map +1 -1
  190. package/es/tag/index.js +1 -2
  191. package/es/tag/index.js.map +1 -1
  192. package/es/tag/style.js +1 -2
  193. package/es/tag/style.js.map +1 -1
  194. package/es/theme/index.js +1 -2
  195. package/es/theme/index.js.map +1 -1
  196. package/es/tree/index.js +1 -2
  197. package/es/tree/index.js.map +1 -1
  198. package/es/tree/register.js +1 -2
  199. package/es/tree/register.js.map +1 -1
  200. package/es/tree/style.js +1 -2
  201. package/es/tree/style.js.map +1 -1
  202. package/es/tree/type.js +1 -2
  203. package/es/tree/type.js.map +1 -1
  204. package/es/typography/index.js +1 -2
  205. package/es/typography/index.js.map +1 -1
  206. package/lib/avatar/favicon.svg +0 -0
  207. package/lib/avatar/group.js +18 -19
  208. package/lib/avatar/group.js.map +1 -1
  209. package/lib/avatar/index.js +3 -4
  210. package/lib/avatar/index.js.map +1 -1
  211. package/lib/avatar/style.js +3 -4
  212. package/lib/avatar/style.js.map +1 -1
  213. package/lib/back-top/index.js +1 -2
  214. package/lib/back-top/index.js.map +1 -1
  215. package/lib/back-top/style.js +1 -2
  216. package/lib/back-top/style.js.map +1 -1
  217. package/lib/basic-config/index.js +1 -2
  218. package/lib/basic-config/index.js.map +1 -1
  219. package/lib/button/index.js +1 -2
  220. package/lib/button/index.js.map +1 -1
  221. package/lib/button/style.js +1 -2
  222. package/lib/button/style.js.map +1 -1
  223. package/lib/capture-screen/index.js +1 -2
  224. package/lib/capture-screen/index.js.map +1 -1
  225. package/lib/capture-screen/style.js +1 -2
  226. package/lib/capture-screen/style.js.map +1 -1
  227. package/lib/carousel/index.js +1 -2
  228. package/lib/carousel/index.js.map +1 -1
  229. package/lib/carousel/style.js +1 -2
  230. package/lib/carousel/style.js.map +1 -1
  231. package/lib/checkbox/index.js +1 -2
  232. package/lib/checkbox/index.js.map +1 -1
  233. package/lib/checkbox/style.js +1 -2
  234. package/lib/checkbox/style.js.map +1 -1
  235. package/lib/code/index.d.ts +6 -2
  236. package/lib/code/index.js +1 -2
  237. package/lib/code/index.js.map +1 -1
  238. package/lib/code/style.js +26 -27
  239. package/lib/code/style.js.map +1 -1
  240. package/lib/code/worker.js +2 -3
  241. package/lib/code/worker.js.map +1 -1
  242. package/lib/color-palette/index.js +1 -2
  243. package/lib/color-palette/index.js.map +1 -1
  244. package/lib/color-palette/style.js +3 -4
  245. package/lib/color-palette/style.js.map +1 -1
  246. package/lib/color-picker/index.js +1 -2
  247. package/lib/color-picker/index.js.map +1 -1
  248. package/lib/color-picker/style.js +1 -2
  249. package/lib/color-picker/style.js.map +1 -1
  250. package/lib/cron/begin-interval.js +1 -2
  251. package/lib/cron/begin-interval.js.map +1 -1
  252. package/lib/cron/day.js +1 -2
  253. package/lib/cron/day.js.map +1 -1
  254. package/lib/cron/hour.js +1 -2
  255. package/lib/cron/hour.js.map +1 -1
  256. package/lib/cron/index.js +1 -2
  257. package/lib/cron/index.js.map +1 -1
  258. package/lib/cron/item.js +1 -2
  259. package/lib/cron/item.js.map +1 -1
  260. package/lib/cron/minute.js +1 -2
  261. package/lib/cron/minute.js.map +1 -1
  262. package/lib/cron/month.js +1 -2
  263. package/lib/cron/month.js.map +1 -1
  264. package/lib/cron/period.js +1 -2
  265. package/lib/cron/period.js.map +1 -1
  266. package/lib/cron/second.js +1 -2
  267. package/lib/cron/second.js.map +1 -1
  268. package/lib/cron/some.js +1 -2
  269. package/lib/cron/some.js.map +1 -1
  270. package/lib/cron/style.js +4 -5
  271. package/lib/cron/style.js.map +1 -1
  272. package/lib/cron/week.js +1 -2
  273. package/lib/cron/week.js.map +1 -1
  274. package/lib/cron/year.js +1 -2
  275. package/lib/cron/year.js.map +1 -1
  276. package/lib/date-picker/date.js +1 -2
  277. package/lib/date-picker/date.js.map +1 -1
  278. package/lib/date-picker/dayjs.js +1 -2
  279. package/lib/date-picker/dayjs.js.map +1 -1
  280. package/lib/date-picker/index.js +1 -2
  281. package/lib/date-picker/index.js.map +1 -1
  282. package/lib/date-picker/month.js +1 -2
  283. package/lib/date-picker/month.js.map +1 -1
  284. package/lib/date-picker/panel.js +1 -2
  285. package/lib/date-picker/panel.js.map +1 -1
  286. package/lib/date-picker/style.js +1 -2
  287. package/lib/date-picker/style.js.map +1 -1
  288. package/lib/date-picker/time.js +1 -2
  289. package/lib/date-picker/time.js.map +1 -1
  290. package/lib/date-picker/year.js +1 -2
  291. package/lib/date-picker/year.js.map +1 -1
  292. package/lib/dropdown/index.js +1 -2
  293. package/lib/dropdown/index.js.map +1 -1
  294. package/lib/empty/index.js +1 -2
  295. package/lib/empty/index.js.map +1 -1
  296. package/lib/from-schema/index.js +1 -2
  297. package/lib/from-schema/index.js.map +1 -1
  298. package/lib/get-options/index.js +1 -2
  299. package/lib/get-options/index.js.map +1 -1
  300. package/lib/highlight-text/index.js +2 -3
  301. package/lib/highlight-text/index.js.map +1 -1
  302. package/lib/img/index.js +1 -2
  303. package/lib/img/index.js.map +1 -1
  304. package/lib/img/lazy.js +1 -2
  305. package/lib/img/lazy.js.map +1 -1
  306. package/lib/img/style.js +3 -4
  307. package/lib/img/style.js.map +1 -1
  308. package/lib/index.js +1 -2
  309. package/lib/index.js.map +1 -1
  310. package/lib/input/index.js +1 -2
  311. package/lib/input/index.js.map +1 -1
  312. package/lib/input/style.js +1 -2
  313. package/lib/input/style.js.map +1 -1
  314. package/lib/input-number/index.js +2 -3
  315. package/lib/input-number/index.js.map +1 -1
  316. package/lib/katex/index.js +1 -2
  317. package/lib/katex/index.js.map +1 -1
  318. package/lib/md/common.d.ts +4 -0
  319. package/lib/md/common.js +1 -0
  320. package/lib/md/common.js.map +1 -0
  321. package/lib/md/index.d.ts +1 -0
  322. package/lib/md/index.js +1 -2
  323. package/lib/md/index.js.map +1 -1
  324. package/lib/md/worker.d.ts +9 -1
  325. package/lib/md/worker.js +1 -2
  326. package/lib/md/worker.js.map +1 -1
  327. package/lib/md-style/index.js +2 -3
  328. package/lib/md-style/index.js.map +1 -1
  329. package/lib/menu/index.js +1 -2
  330. package/lib/menu/index.js.map +1 -1
  331. package/lib/menu/style.js +1 -2
  332. package/lib/menu/style.js.map +1 -1
  333. package/lib/modal/hooks.js +1 -2
  334. package/lib/modal/hooks.js.map +1 -1
  335. package/lib/modal/index.js +1 -2
  336. package/lib/modal/index.js.map +1 -1
  337. package/lib/modal/store.js +1 -2
  338. package/lib/modal/store.js.map +1 -1
  339. package/lib/modal/style.js +1 -2
  340. package/lib/modal/style.js.map +1 -1
  341. package/lib/notification/index.js +1 -2
  342. package/lib/notification/index.js.map +1 -1
  343. package/lib/notification/notification.js +1 -2
  344. package/lib/notification/notification.js.map +1 -1
  345. package/lib/notification/queque.js +1 -2
  346. package/lib/notification/queque.js.map +1 -1
  347. package/lib/notification/styles.js +1 -2
  348. package/lib/notification/styles.js.map +1 -1
  349. package/lib/pagination/index.js +1 -2
  350. package/lib/pagination/index.js.map +1 -1
  351. package/lib/pagination/styles.js +1 -2
  352. package/lib/pagination/styles.js.map +1 -1
  353. package/lib/popover/index.js +1 -2
  354. package/lib/popover/index.js.map +1 -1
  355. package/lib/popover/style.js +3 -4
  356. package/lib/popover/style.js.map +1 -1
  357. package/lib/prism/index.d.ts +0 -1
  358. package/lib/prism/index.js +1 -2
  359. package/lib/prism/index.js.map +1 -1
  360. package/lib/provider/index.js +1 -2
  361. package/lib/provider/index.js.map +1 -1
  362. package/lib/qrcode/index.js +1 -2
  363. package/lib/qrcode/index.js.map +1 -1
  364. package/lib/qrcode/qrcode.js +1 -2
  365. package/lib/qrcode/qrcode.js.map +1 -1
  366. package/lib/radio/index.js +1 -2
  367. package/lib/radio/index.js.map +1 -1
  368. package/lib/radio/style.js +1 -2
  369. package/lib/radio/style.js.map +1 -1
  370. package/lib/segmented/index.js +1 -12
  371. package/lib/segmented/index.js.map +1 -1
  372. package/lib/segmented/style.js +1 -2
  373. package/lib/segmented/style.js.map +1 -1
  374. package/lib/select/index.js +1 -2
  375. package/lib/select/index.js.map +1 -1
  376. package/lib/select/style.js +1 -2
  377. package/lib/select/style.js.map +1 -1
  378. package/lib/skeleton/index.js +2 -25
  379. package/lib/skeleton/index.js.map +1 -1
  380. package/lib/spin/index.js +2 -3
  381. package/lib/spin/index.js.map +1 -1
  382. package/lib/switch/index.js +1 -2
  383. package/lib/switch/index.js.map +1 -1
  384. package/lib/switch/style.js +1 -2
  385. package/lib/switch/style.js.map +1 -1
  386. package/lib/table/index.js +1 -2
  387. package/lib/table/index.js.map +1 -1
  388. package/lib/table/styles.js +1 -2
  389. package/lib/table/styles.js.map +1 -1
  390. package/lib/tabs/index.js +1 -12
  391. package/lib/tabs/index.js.map +1 -1
  392. package/lib/tabs/style.d.ts +2 -2
  393. package/lib/tabs/style.js +32 -33
  394. package/lib/tabs/style.js.map +1 -1
  395. package/lib/tag/index.js +3 -4
  396. package/lib/tag/index.js.map +1 -1
  397. package/lib/tag/style.js +1 -2
  398. package/lib/tag/style.js.map +1 -1
  399. package/lib/theme/index.js +1 -2
  400. package/lib/theme/index.js.map +1 -1
  401. package/lib/tree/index.js +1 -2
  402. package/lib/tree/index.js.map +1 -1
  403. package/lib/tree/register.js +1 -2
  404. package/lib/tree/register.js.map +1 -1
  405. package/lib/tree/style.js +1 -2
  406. package/lib/tree/style.js.map +1 -1
  407. package/lib/tree/type.js +1 -2
  408. package/lib/tree/type.js.map +1 -1
  409. package/lib/typography/index.js +7 -8
  410. package/lib/typography/index.js.map +1 -1
  411. package/package.json +8 -8
  412. package/umd/index.js +4187 -1
  413. package/umd/js/074a85150a9f6a97.js +1 -0
  414. package/es/cron/api.md +0 -27
  415. package/lib/cron/api.md +0 -27
package/lib/index.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),function(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}(exports,{Avatar:function(){return e.default},AvatarGroup:function(){return r.default},BackTop:function(){return t.default},Button:function(){return u.default},CaptureScreen:function(){return i.default},Carousel:function(){return o.default},Checkbox:function(){return f.default},Code:function(){return a.default},ColorPalette:function(){return c.default},ColorPicker:function(){return l.default},Cron:function(){return d.default},DatePicker:function(){return p.default},Dropdown:function(){return s.default},Empty:function(){return m.default},FieldName:function(){return n.FieldName},HighlightText:function(){return y.default},Img:function(){return b.default},Input:function(){return S.default},InputNumber:function(){return v.default},Md:function(){return O.default},Menu:function(){return C.default},Modal:function(){return P.default},OpenState:function(){return P.OpenState},Pagination:function(){return M.default},Popover:function(){return j.default},Prism:function(){return _.default},Provider:function(){return T.default},QrCode:function(){return x.default},Radio:function(){return D.default},Segmented:function(){return E.default},Select:function(){return I.default},Size:function(){return n.Size},Skeleton:function(){return N.default},Spin:function(){return W.default},Status:function(){return n.Status},Switch:function(){return z.default},Table:function(){return A.default},Tabs:function(){return B.default},Tag:function(){return F.default},Tree:function(){return H.default},Typography:function(){return Q.default},customElement:function(){return R.customElement},dayjs:function(){return q.default},fromSchema:function(){return g.default},generateColor:function(){return G.generateColor},getCurrentElement:function(){return R.getCurrentElement},getOptions:function(){return h.default},hot:function(){return R.hot},mdStyle:function(){return k.default},noShadowDOM:function(){return R.noShadowDOM},notification:function(){return w.default},theme:function(){return G.default},toneColor:function(){return G.toneColor},withSolid:function(){return R.withSolid}});const e=J(require("./avatar")),r=J(require("./avatar/group")),t=J(require("./back-top")),n=require("./basic-config"),u=J(require("./button")),i=J(require("./capture-screen")),o=J(require("./carousel")),f=J(require("./checkbox")),a=J(require("./code")),c=J(require("./color-palette")),l=J(require("./color-picker")),d=J(require("./cron")),p=J(require("./date-picker")),q=J(require("./date-picker/dayjs")),s=J(require("./dropdown")),m=J(require("./empty")),g=J(require("./from-schema")),h=J(require("./get-options")),y=J(require("./highlight-text")),b=J(require("./img")),S=J(require("./input")),v=J(require("./input-number")),O=J(require("./md")),k=J(require("./md-style")),C=J(require("./menu")),P=L(require("./modal")),w=J(require("./notification")),M=J(require("./pagination")),j=J(require("./popover")),_=J(require("./prism")),T=J(require("./provider")),x=J(require("./qrcode")),D=J(require("./radio")),E=J(require("./segmented")),I=J(require("./select")),N=J(require("./skeleton")),W=J(require("./spin")),z=J(require("./switch")),A=J(require("./table")),B=J(require("./tabs")),F=J(require("./tag")),G=L(require("./theme")),H=J(require("./tree")),Q=J(require("./typography")),R=require("solid-element");function J(e){return e&&e.__esModule?e:{default:e}}function K(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(K=function(e){return e?t:r})(e)}function L(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=K(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=u?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";function e(e,r){for(var t in r)Object.defineProperty(e,t,{enumerable:!0,get:r[t]})}Object.defineProperty(exports,"__esModule",{value:!0}),e(exports,{Avatar:function(){return r.default},AvatarGroup:function(){return t.default},BackTop:function(){return n.default},Button:function(){return i.default},CaptureScreen:function(){return o.default},Carousel:function(){return f.default},Checkbox:function(){return a.default},Code:function(){return c.default},ColorPalette:function(){return l.default},ColorPicker:function(){return d.default},Cron:function(){return p.default},DatePicker:function(){return q.default},Dropdown:function(){return m.default},Empty:function(){return g.default},FieldName:function(){return u.FieldName},HighlightText:function(){return b.default},Img:function(){return S.default},Input:function(){return v.default},InputNumber:function(){return O.default},Md:function(){return k.default},Menu:function(){return P.default},Modal:function(){return w.default},OpenState:function(){return w.OpenState},Pagination:function(){return j.default},Popover:function(){return _.default},Prism:function(){return T.default},Provider:function(){return x.default},QrCode:function(){return D.default},Radio:function(){return E.default},Segmented:function(){return I.default},Select:function(){return N.default},Size:function(){return u.Size},Skeleton:function(){return W.default},Spin:function(){return z.default},Status:function(){return u.Status},Switch:function(){return A.default},Table:function(){return B.default},Tabs:function(){return F.default},Tag:function(){return G.default},Tree:function(){return Q.default},Typography:function(){return R.default},customElement:function(){return J.customElement},dayjs:function(){return s.default},fromSchema:function(){return h.default},generateColor:function(){return H.generateColor},getCurrentElement:function(){return J.getCurrentElement},getOptions:function(){return y.default},hot:function(){return J.hot},mdStyle:function(){return C.default},noShadowDOM:function(){return J.noShadowDOM},notification:function(){return M.default},theme:function(){return H.default},toneColor:function(){return H.toneColor},withSolid:function(){return J.withSolid}});const r=K(require("./avatar")),t=K(require("./avatar/group")),n=K(require("./back-top")),u=require("./basic-config"),i=K(require("./button")),o=K(require("./capture-screen")),f=K(require("./carousel")),a=K(require("./checkbox")),c=K(require("./code")),l=K(require("./color-palette")),d=K(require("./color-picker")),p=K(require("./cron")),q=K(require("./date-picker")),s=K(require("./date-picker/dayjs")),m=K(require("./dropdown")),g=K(require("./empty")),h=K(require("./from-schema")),y=K(require("./get-options")),b=K(require("./highlight-text")),S=K(require("./img")),v=K(require("./input")),O=K(require("./input-number")),k=K(require("./md")),C=K(require("./md-style")),P=K(require("./menu")),w=U(require("./modal")),M=K(require("./notification")),j=K(require("./pagination")),_=K(require("./popover")),T=K(require("./prism")),x=K(require("./provider")),D=K(require("./qrcode")),E=K(require("./radio")),I=K(require("./segmented")),N=K(require("./select")),W=K(require("./skeleton")),z=K(require("./spin")),A=K(require("./switch")),B=K(require("./table")),F=K(require("./tabs")),G=K(require("./tag")),H=U(require("./theme")),Q=K(require("./tree")),R=K(require("./typography")),J=require("solid-element");function K(e){return e&&e.__esModule?e:{default:e}}function L(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(L=function(e){return e?t:r})(e)}function U(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=L(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=u?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/index.ts"],"sourcesContent":["'use client';\n\nexport { default as Avatar, type AvatarElement, type AvatarProps } from './avatar';\nexport {\n default as AvatarGroup,\n type AvatarGroupElement,\n type AvatarGroupProps,\n} from './avatar/group';\nexport { default as BackTop, type BackTopElement, type BackTopProps } from './back-top';\nexport { type BaseOption, type BasicConfig, FieldName, Size, Status } from './basic-config';\nexport { default as Button, type ButtonElement, type ButtonProps } from './button';\nexport {\n default as CaptureScreen,\n type CaptureScreenElement,\n type CaptureScreenProps,\n} from './capture-screen';\nexport { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';\nexport {\n default as Checkbox,\n type CheckboxBoolElement,\n type CheckboxBoolProps,\n type CheckboxGroupElement,\n type CheckboxGroupProps,\n} from './checkbox';\nexport { default as Code, type CodeElement, type CodeProps, type Language } from './code';\nexport {\n default as ColorPalette,\n type ColorPaletteElement,\n type ColorPaletteProps,\n} from './color-palette';\nexport {\n default as ColorPicker,\n type ColorPickerElement,\n type ColorPickerProps,\n} from './color-picker';\nexport { default as Cron, type CronElement, type CronProps } from './cron';\nexport { default as DatePicker, type DatePickerElement, type DatePickerProps } from './date-picker';\nexport { default as dayjs } from './date-picker/dayjs';\nexport {\n default as Dropdown,\n type DropdownElement,\n type DropdownMultipleElement,\n type DropdownMultipleProps,\n type DropdownProps,\n} from './dropdown';\nexport { default as Empty, type EmptyElement, type EmptyProps } from './empty';\nexport { default as fromSchema } from './from-schema';\nexport { default as getOptions } from './get-options';\nexport {\n default as HighlightText,\n type HighlightTextElement,\n type HighlightTextProps,\n} from './highlight-text';\nexport { default as Img, type ImgElement, type ImgProps } from './img';\nexport { default as Input, type InputElement, type InputProps } from './input';\nexport {\n default as InputNumber,\n type InputNumberElement,\n type InputNumberProps,\n} from './input-number';\nexport { default as Md, type MdElement, type MdProps } from './md';\nexport { default as mdStyle } from './md-style';\nexport {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\nexport {\n default as Modal,\n type ModalElement,\n type ModalProps,\n OpenState,\n type OpenStateKey,\n} from './modal';\nexport {\n default as notification,\n type NotificationProps,\n type NotificationType,\n} from './notification';\nexport { default as Pagination, type PaginationElement, type PaginationProps } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\nexport { default as Prism } from './prism';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { type IntRange, default as QrCode, type QrCodeElement, type QrCodeProps } from './qrcode';\nexport { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';\nexport { default as Segmented, type SegmentedElement, type SegmentedProps } from './segmented';\nexport {\n default as Select,\n type SelectElement,\n type SelectMultipleElement,\n type SelectMultipleProps,\n type SelectProps,\n} from './select';\nexport { default as Skeleton, type SkeletonElement, type SkeletonProps } from './skeleton';\nexport { default as Spin, type SpinElement, type SpinProps } from './spin';\nexport { default as Switch, type SwitchElement, type SwitchProps } from './switch';\nexport { default as Table, type TableElement, type TableProps } from './table';\nexport { type TabOption, default as Tabs, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n type ColorScheme,\n generateColor,\n default as theme,\n type ThemeOption,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\n type TreeData,\n type TreeElement,\n type TreeMultipleElement,\n type TreeMultipleProps,\n type TreeMultipleSchemaElement,\n type TreeMultipleSchemaProps,\n type TreeMultipleStringElement,\n type TreeMultipleStringProps,\n type TreeProps,\n type TreeSchemaElement,\n type TreeSchemaProps,\n type TreeStringElement,\n type TreeStringProps,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport type { CustomElement } from 'custom-element-type';\nexport { customElement, getCurrentElement, hot, noShadowDOM, withSolid } from 'solid-element';\nimport type { ICustomElement, Transform } from 'custom-element-type';\n\nimport type {\n AvatarElement,\n AvatarGroupElement,\n BackTopElement,\n ButtonElement,\n CaptureScreenElement,\n CarouselElement,\n CheckboxBoolElement,\n CheckboxGroupElement,\n CodeElement,\n ColorPaletteElement,\n ColorPickerElement,\n CronElement,\n DatePickerElement,\n DropdownElement,\n DropdownMultipleElement,\n EmptyElement,\n HighlightTextElement,\n ImgElement,\n InputElement,\n InputNumberElement,\n MdElement,\n MenuElement,\n MenuMultipleElement,\n ModalElement,\n PaginationElement,\n PopoverElement,\n ProviderElement,\n QrCodeElement,\n RadioElement,\n SegmentedElement,\n SelectElement,\n SelectMultipleElement,\n SkeletonElement,\n SpinElement,\n SwitchElement,\n TableElement,\n TabsElement,\n TagElement,\n TreeElement,\n TreeMultipleElement,\n TreeMultipleSchemaElement,\n TreeMultipleStringElement,\n TreeSchemaElement,\n TreeStringElement,\n TypographyElement,\n} from '.';\n\n/** 组件列表\n * @author monako97\n * @ignore optional\n */\ninterface CustomElementTags {\n /** 头像 */\n 'n-avatar': AvatarElement;\n /** 头像组 */\n 'n-avatar-group': AvatarGroupElement;\n /** 返回顶部 */\n 'n-back-top': BackTopElement;\n /** 按钮 */\n 'n-button': ButtonElement;\n /** 捕获屏幕 */\n 'n-capture-screen': CaptureScreenElement;\n /** 走马灯、轮播 */\n 'n-carousel': CarouselElement;\n /** 复选框 */\n 'n-checkbox': CheckboxBoolElement | CheckboxGroupElement;\n /** 代码框 */\n 'n-code': CodeElement;\n /** 取色器 */\n 'n-color-palette': ColorPaletteElement;\n /** 取色器(弹出类型) */\n 'n-color-picker': ColorPickerElement;\n /** 下拉面板 */\n 'n-dropdown': DropdownElement | DropdownMultipleElement;\n /** 空面板 */\n 'n-empty': EmptyElement;\n /** 匹配高亮文字 */\n 'n-highlight-text': HighlightTextElement;\n /** 图片查看器 */\n 'n-img': ImgElement;\n /** 输入框 */\n 'n-input': InputElement;\n /** 数字输入框 */\n 'n-input-number': InputNumberElement;\n /** Markdown渲染 */\n 'n-md': MdElement;\n /** 弹出气泡面板 */\n 'n-popover': PopoverElement;\n /** 单选项 */\n 'n-radio': RadioElement;\n /** 分段控制器 */\n 'n-segmented': SegmentedElement;\n /** 下拉选择框 */\n 'n-select': SelectElement | SelectMultipleElement;\n /** 骨架屏 */\n 'n-skeleton': SkeletonElement;\n /** 加载中 */\n 'n-spin': SpinElement;\n /** 开关 */\n 'n-switch': SwitchElement;\n /** 树形渲染 */\n 'n-tree':\n | TreeElement\n | TreeStringElement\n | TreeSchemaElement\n | TreeMultipleElement\n | TreeMultipleStringElement\n | TreeMultipleSchemaElement;\n /** 文字排版 */\n 'n-typography': TypographyElement;\n /** 标签页 */\n 'n-tabs': TabsElement;\n /** 标签 */\n 'n-tag': TagElement;\n /** 导航菜单 */\n 'n-menu': MenuElement | MenuMultipleElement;\n /** Cron表达式编辑器 */\n 'n-cron': CronElement;\n /** 日期选择器\n * @since 2.1.0\n */\n 'n-data-picker': DatePickerElement;\n /** 数据表格\n * @since 2.2.0\n */\n 'n-table': TableElement;\n /** 分页器\n * @since 2.2.0\n */\n 'n-pagination': PaginationElement;\n /** 响应内部变化\n * @since 2.3.0\n */\n 'n-provider': ProviderElement;\n /** 模态框\n * @since 2.6.0\n */\n 'n-modal': ModalElement;\n /**\n * 二维码\n * @since 2.9.0\n */\n 'n-qrcode': QrCodeElement;\n}\ntype IntrinsicNekoElement = Transform<CustomElementTags>;\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends HTMLElementTags, IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\n\nexport interface ComponentOptions<T> {\n element: T & ICustomElement;\n}\n"],"names":["Avatar","AvatarGroup","BackTop","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","Dropdown","Empty","FieldName","HighlightText","Img","Input","InputNumber","Md","Menu","Modal","OpenState","Pagination","Popover","Prism","Provider","QrCode","Radio","Segmented","Select","Size","Skeleton","Spin","Status","Switch","Table","Tabs","Tag","Tree","Typography","customElement","dayjs","fromSchema","generateColor","getCurrentElement","getOptions","hot","mdStyle","noShadowDOM","notification","theme","toneColor","withSolid"],"mappings":"+JAEoBA,MAAM,mBAANA,SAAM,EAEbC,WAAW,mBAAXA,SAAW,EAIJC,OAAO,mBAAPA,SAAO,EAEPC,MAAM,mBAANA,SAAM,EAEbC,aAAa,mBAAbA,SAAa,EAINC,QAAQ,mBAARA,SAAQ,EAEfC,QAAQ,mBAARA,SAAQ,EAMDC,IAAI,mBAAJA,SAAI,EAEXC,YAAY,mBAAZA,SAAY,EAKZC,WAAW,mBAAXA,SAAW,EAIJC,IAAI,mBAAJA,SAAI,EACJC,UAAU,mBAAVA,SAAU,EAGjBC,QAAQ,mBAARA,SAAQ,EAMDC,KAAK,mBAALA,SAAK,EApCmBC,SAAS,mBAATA,WAAS,EAwCxCC,aAAa,mBAAbA,SAAa,EAINC,GAAG,mBAAHA,SAAG,EACHC,KAAK,mBAALA,SAAK,EAEZC,WAAW,mBAAXA,SAAW,EAIJC,EAAE,mBAAFA,SAAE,EAGTC,IAAI,mBAAJA,SAAI,EAQJC,KAAK,mBAALA,SAAK,EAGhBC,SAAS,mBAATA,WAAS,EAQSC,UAAU,mBAAVA,SAAU,EACVC,OAAO,mBAAPA,SAAO,EACPC,KAAK,mBAALA,SAAK,EACLC,QAAQ,mBAARA,SAAQ,EACOC,MAAM,mBAANA,SAAM,EACrBC,KAAK,mBAALA,SAAK,EACLC,SAAS,mBAATA,SAAS,EAEhBC,MAAM,mBAANA,SAAM,EAjFoCC,IAAI,mBAAJA,MAAI,EAuFvCC,QAAQ,mBAARA,SAAQ,EACRC,IAAI,mBAAJA,SAAI,EAxFqCC,MAAM,mBAANA,QAAM,EAyF/CC,MAAM,mBAANA,SAAM,EACNC,KAAK,mBAALA,SAAK,EACWC,IAAI,mBAAJA,SAAI,EACpBC,GAAG,mBAAHA,SAAG,EASVC,IAAI,mBAAJA,SAAI,EAeGC,UAAU,mBAAVA,SAAU,EAErBC,aAAa,mBAAbA,eAAa,EA1FFC,KAAK,mBAALA,SAAK,EASLC,UAAU,mBAAVA,SAAU,EA0D5BC,aAAa,mBAAbA,eAAa,EAuBSC,iBAAiB,mBAAjBA,mBAAiB,EAhFrBC,UAAU,mBAAVA,SAAU,EAgFaC,GAAG,mBAAHA,KAAG,EAlE1BC,OAAO,mBAAPA,SAAO,EAkEqBC,WAAW,mBAAXA,aAAW,EAjD9CC,YAAY,mBAAZA,SAAY,EA2BZC,KAAK,mBAALA,SAAK,EAEhBC,SAAS,mBAATA,WAAS,EAoBkDC,SAAS,mBAATA,WAAS,sBA7HE,yBAKjE,+BACoE,yBACA,8BACH,yBAKjE,iCACuE,2BAOvE,2BAC0E,uBAK1E,gCAKA,+BAC2D,uBACkB,8BACnD,oCAO1B,2BAC8D,wBAC/B,8BACA,8BAK/B,iCACwD,sBACM,wBAK9D,+BACqD,qBACzB,2BAQ5B,uBAOA,wBAKA,+BAC6E,6BACT,0BAC1C,wBAC6C,2BACS,yBACA,wBACN,4BAO1E,yBACuE,2BACZ,uBACM,yBACH,wBACa,uBACnB,sBAOxD,wBAgBA,uBAC6E,2BAEN"}
1
+ {"version":3,"sources":["components/index.ts"],"sourcesContent":["'use client';\n\nexport { default as Avatar, type AvatarElement, type AvatarProps } from './avatar';\nexport {\n default as AvatarGroup,\n type AvatarGroupElement,\n type AvatarGroupProps,\n} from './avatar/group';\nexport { default as BackTop, type BackTopElement, type BackTopProps } from './back-top';\nexport { type BaseOption, type BasicConfig, FieldName, Size, Status } from './basic-config';\nexport { default as Button, type ButtonElement, type ButtonProps } from './button';\nexport {\n default as CaptureScreen,\n type CaptureScreenElement,\n type CaptureScreenProps,\n} from './capture-screen';\nexport { default as Carousel, type CarouselElement, type CarouselProps } from './carousel';\nexport {\n default as Checkbox,\n type CheckboxBoolElement,\n type CheckboxBoolProps,\n type CheckboxGroupElement,\n type CheckboxGroupProps,\n} from './checkbox';\nexport { default as Code, type CodeElement, type CodeProps, type Language } from './code';\nexport {\n default as ColorPalette,\n type ColorPaletteElement,\n type ColorPaletteProps,\n} from './color-palette';\nexport {\n default as ColorPicker,\n type ColorPickerElement,\n type ColorPickerProps,\n} from './color-picker';\nexport { default as Cron, type CronElement, type CronProps } from './cron';\nexport { default as DatePicker, type DatePickerElement, type DatePickerProps } from './date-picker';\nexport { default as dayjs } from './date-picker/dayjs';\nexport {\n default as Dropdown,\n type DropdownElement,\n type DropdownMultipleElement,\n type DropdownMultipleProps,\n type DropdownProps,\n} from './dropdown';\nexport { default as Empty, type EmptyElement, type EmptyProps } from './empty';\nexport { default as fromSchema } from './from-schema';\nexport { default as getOptions } from './get-options';\nexport {\n default as HighlightText,\n type HighlightTextElement,\n type HighlightTextProps,\n} from './highlight-text';\nexport { default as Img, type ImgElement, type ImgProps } from './img';\nexport { default as Input, type InputElement, type InputProps } from './input';\nexport {\n default as InputNumber,\n type InputNumberElement,\n type InputNumberProps,\n} from './input-number';\nexport { default as Md, type MdElement, type MdProps } from './md';\nexport { default as mdStyle } from './md-style';\nexport {\n default as Menu,\n type MenuElement,\n type MenuMultipleElement,\n type MenuMultipleProps,\n type MenuOption,\n type MenuProps,\n} from './menu';\nexport {\n default as Modal,\n type ModalElement,\n type ModalProps,\n OpenState,\n type OpenStateKey,\n} from './modal';\nexport {\n default as notification,\n type NotificationProps,\n type NotificationType,\n} from './notification';\nexport { default as Pagination, type PaginationElement, type PaginationProps } from './pagination';\nexport { default as Popover, type PopoverElement, type PopoverProps } from './popover';\nexport { default as Prism } from './prism';\nexport { default as Provider, type ProviderElement, type ProviderProps } from './provider';\nexport { type IntRange, default as QrCode, type QrCodeElement, type QrCodeProps } from './qrcode';\nexport { default as Radio, type RadioElement, type RadioOption, type RadioProps } from './radio';\nexport { default as Segmented, type SegmentedElement, type SegmentedProps } from './segmented';\nexport {\n default as Select,\n type SelectElement,\n type SelectMultipleElement,\n type SelectMultipleProps,\n type SelectProps,\n} from './select';\nexport { default as Skeleton, type SkeletonElement, type SkeletonProps } from './skeleton';\nexport { default as Spin, type SpinElement, type SpinProps } from './spin';\nexport { default as Switch, type SwitchElement, type SwitchProps } from './switch';\nexport { default as Table, type TableElement, type TableProps } from './table';\nexport { type TabOption, default as Tabs, type TabsElement, type TabsProps } from './tabs';\nexport { default as Tag, type TagElement, type TagProps } from './tag';\nexport {\n type ColorScheme,\n generateColor,\n default as theme,\n type ThemeOption,\n toneColor,\n} from './theme';\nexport {\n default as Tree,\n type TreeData,\n type TreeElement,\n type TreeMultipleElement,\n type TreeMultipleProps,\n type TreeMultipleSchemaElement,\n type TreeMultipleSchemaProps,\n type TreeMultipleStringElement,\n type TreeMultipleStringProps,\n type TreeProps,\n type TreeSchemaElement,\n type TreeSchemaProps,\n type TreeStringElement,\n type TreeStringProps,\n} from './tree';\nexport { default as Typography, type TypographyElement, type TypographyProps } from './typography';\nexport type { CustomElement } from 'custom-element-type';\nexport { customElement, getCurrentElement, hot, noShadowDOM, withSolid } from 'solid-element';\nimport type { ICustomElement, Transform } from 'custom-element-type';\n\nimport type {\n AvatarElement,\n AvatarGroupElement,\n BackTopElement,\n ButtonElement,\n CaptureScreenElement,\n CarouselElement,\n CheckboxBoolElement,\n CheckboxGroupElement,\n CodeElement,\n ColorPaletteElement,\n ColorPickerElement,\n CronElement,\n DatePickerElement,\n DropdownElement,\n DropdownMultipleElement,\n EmptyElement,\n HighlightTextElement,\n ImgElement,\n InputElement,\n InputNumberElement,\n MdElement,\n MenuElement,\n MenuMultipleElement,\n ModalElement,\n PaginationElement,\n PopoverElement,\n ProviderElement,\n QrCodeElement,\n RadioElement,\n SegmentedElement,\n SelectElement,\n SelectMultipleElement,\n SkeletonElement,\n SpinElement,\n SwitchElement,\n TableElement,\n TabsElement,\n TagElement,\n TreeElement,\n TreeMultipleElement,\n TreeMultipleSchemaElement,\n TreeMultipleStringElement,\n TreeSchemaElement,\n TreeStringElement,\n TypographyElement,\n} from '.';\n\n/** 组件列表\n * @author monako97\n * @ignore optional\n */\ninterface CustomElementTags {\n /** 头像 */\n 'n-avatar': AvatarElement;\n /** 头像组 */\n 'n-avatar-group': AvatarGroupElement;\n /** 返回顶部 */\n 'n-back-top': BackTopElement;\n /** 按钮 */\n 'n-button': ButtonElement;\n /** 捕获屏幕 */\n 'n-capture-screen': CaptureScreenElement;\n /** 走马灯、轮播 */\n 'n-carousel': CarouselElement;\n /** 复选框 */\n 'n-checkbox': CheckboxBoolElement | CheckboxGroupElement;\n /** 代码框 */\n 'n-code': CodeElement;\n /** 取色器 */\n 'n-color-palette': ColorPaletteElement;\n /** 取色器(弹出类型) */\n 'n-color-picker': ColorPickerElement;\n /** 下拉面板 */\n 'n-dropdown': DropdownElement | DropdownMultipleElement;\n /** 空面板 */\n 'n-empty': EmptyElement;\n /** 匹配高亮文字 */\n 'n-highlight-text': HighlightTextElement;\n /** 图片查看器 */\n 'n-img': ImgElement;\n /** 输入框 */\n 'n-input': InputElement;\n /** 数字输入框 */\n 'n-input-number': InputNumberElement;\n /** Markdown渲染 */\n 'n-md': MdElement;\n /** 弹出气泡面板 */\n 'n-popover': PopoverElement;\n /** 单选项 */\n 'n-radio': RadioElement;\n /** 分段控制器 */\n 'n-segmented': SegmentedElement;\n /** 下拉选择框 */\n 'n-select': SelectElement | SelectMultipleElement;\n /** 骨架屏 */\n 'n-skeleton': SkeletonElement;\n /** 加载中 */\n 'n-spin': SpinElement;\n /** 开关 */\n 'n-switch': SwitchElement;\n /** 树形渲染 */\n 'n-tree':\n | TreeElement\n | TreeStringElement\n | TreeSchemaElement\n | TreeMultipleElement\n | TreeMultipleStringElement\n | TreeMultipleSchemaElement;\n /** 文字排版 */\n 'n-typography': TypographyElement;\n /** 标签页 */\n 'n-tabs': TabsElement;\n /** 标签 */\n 'n-tag': TagElement;\n /** 导航菜单 */\n 'n-menu': MenuElement | MenuMultipleElement;\n /** Cron表达式编辑器 */\n 'n-cron': CronElement;\n /** 日期选择器\n * @since 2.1.0\n */\n 'n-data-picker': DatePickerElement;\n /** 数据表格\n * @since 2.2.0\n */\n 'n-table': TableElement;\n /** 分页器\n * @since 2.2.0\n */\n 'n-pagination': PaginationElement;\n /** 响应内部变化\n * @since 2.3.0\n */\n 'n-provider': ProviderElement;\n /** 模态框\n * @since 2.6.0\n */\n 'n-modal': ModalElement;\n /**\n * 二维码\n * @since 2.9.0\n */\n 'n-qrcode': QrCodeElement;\n}\ntype IntrinsicNekoElement = Transform<CustomElementTags>;\n\ndeclare module 'solid-js' {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n export interface IntrinsicElements extends HTMLElementTags, IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace JSX {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n export interface IntrinsicElements extends IntrinsicNekoElement {}\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface HTMLElementTagNameMap extends IntrinsicNekoElement {}\n}\n\nexport interface ComponentOptions<T> {\n element: T & ICustomElement;\n}\n"],"names":["Avatar","AvatarGroup","BackTop","Button","CaptureScreen","Carousel","Checkbox","Code","ColorPalette","ColorPicker","Cron","DatePicker","Dropdown","Empty","FieldName","HighlightText","Img","Input","InputNumber","Md","Menu","Modal","OpenState","Pagination","Popover","Prism","Provider","QrCode","Radio","Segmented","Select","Size","Skeleton","Spin","Status","Switch","Table","Tabs","Tag","Tree","Typography","customElement","dayjs","fromSchema","generateColor","getCurrentElement","getOptions","hot","mdStyle","noShadowDOM","notification","theme","toneColor","withSolid"],"mappings":"kKAEoBA,MAAM,mBAANA,SAAM,EAEbC,WAAW,mBAAXA,SAAW,EAIJC,OAAO,mBAAPA,SAAO,EAEPC,MAAM,mBAANA,SAAM,EAEbC,aAAa,mBAAbA,SAAa,EAINC,QAAQ,mBAARA,SAAQ,EAEfC,QAAQ,mBAARA,SAAQ,EAMDC,IAAI,mBAAJA,SAAI,EAEXC,YAAY,mBAAZA,SAAY,EAKZC,WAAW,mBAAXA,SAAW,EAIJC,IAAI,mBAAJA,SAAI,EACJC,UAAU,mBAAVA,SAAU,EAGjBC,QAAQ,mBAARA,SAAQ,EAMDC,KAAK,mBAALA,SAAK,EApCmBC,SAAS,mBAATA,WAAS,EAwCxCC,aAAa,mBAAbA,SAAa,EAINC,GAAG,mBAAHA,SAAG,EACHC,KAAK,mBAALA,SAAK,EAEZC,WAAW,mBAAXA,SAAW,EAIJC,EAAE,mBAAFA,SAAE,EAGTC,IAAI,mBAAJA,SAAI,EAQJC,KAAK,mBAALA,SAAK,EAGhBC,SAAS,mBAATA,WAAS,EAQSC,UAAU,mBAAVA,SAAU,EACVC,OAAO,mBAAPA,SAAO,EACPC,KAAK,mBAALA,SAAK,EACLC,QAAQ,mBAARA,SAAQ,EACOC,MAAM,mBAANA,SAAM,EACrBC,KAAK,mBAALA,SAAK,EACLC,SAAS,mBAATA,SAAS,EAEhBC,MAAM,mBAANA,SAAM,EAjFoCC,IAAI,mBAAJA,MAAI,EAuFvCC,QAAQ,mBAARA,SAAQ,EACRC,IAAI,mBAAJA,SAAI,EAxFqCC,MAAM,mBAANA,QAAM,EAyF/CC,MAAM,mBAANA,SAAM,EACNC,KAAK,mBAALA,SAAK,EACWC,IAAI,mBAAJA,SAAI,EACpBC,GAAG,mBAAHA,SAAG,EASVC,IAAI,mBAAJA,SAAI,EAeGC,UAAU,mBAAVA,SAAU,EAErBC,aAAa,mBAAbA,eAAa,EA1FFC,KAAK,mBAALA,SAAK,EASLC,UAAU,mBAAVA,SAAU,EA0D5BC,aAAa,mBAAbA,eAAa,EAuBSC,iBAAiB,mBAAjBA,mBAAiB,EAhFrBC,UAAU,mBAAVA,SAAU,EAgFaC,GAAG,mBAAHA,KAAG,EAlE1BC,OAAO,mBAAPA,SAAO,EAkEqBC,WAAW,mBAAXA,aAAW,EAjD9CC,YAAY,mBAAZA,SAAY,EA2BZC,KAAK,mBAALA,SAAK,EAEhBC,SAAS,mBAATA,WAAS,EAoBkDC,SAAS,mBAATA,WAAS,sBA7HE,yBAKjE,+BACoE,yBACA,8BACH,yBAKjE,iCACuE,2BAOvE,2BAC0E,uBAK1E,gCAKA,+BAC2D,uBACkB,8BACnD,oCAO1B,2BAC8D,wBAC/B,8BACA,8BAK/B,iCACwD,sBACM,wBAK9D,+BACqD,qBACzB,2BAQ5B,uBAOA,wBAKA,+BAC6E,6BACT,0BAC1C,wBAC6C,2BACS,yBACA,wBACN,4BAO1E,yBACuE,2BACZ,uBACM,yBACH,wBACa,uBACnB,sBAOxD,wBAgBA,uBAC6E,2BAEN"}
@@ -1,2 +1 @@
1
- "use strict";var e;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 b},defaultInportProps:function(){return g}});const t=require("solid-js/web"),n=require("solid-js"),r=(e=require("@moneko/common/lib/isFunction"))&&e.__esModule?e:{default:e},o=require("@moneko/css"),i=require("solid-element"),a=require("../basic-config"),l=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(void 0);if(n&&n.has(e))return n.get(e);var r={__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(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}(require("../theme")),s=require("./style");function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}const c=(0,t.template)("<style> "),d=(0,t.template)("<style>"),f=(0,t.template)('<span class="prefix">'),p=(0,t.template)('<label class="label">'),v=(0,t.template)('<span class="caps-lock">'),m=(0,t.template)('<span class="suffix">'),h=(0,t.template)('<fieldset><input class="input" part="input">');function y(e){let i;let{baseStyle:a}=l.default,[u,y]=(0,n.createSignal)(),[g,b]=(0,n.createSignal)(!1);function _(t){e.onChange?.(function(t){if(e.parser)return(0,r.default)(e.parser)?e.parser(t):e.parser;if("number"===e.type&&"string"==typeof t){let e=t.replace(/[^\d]/g,"");return e.length?parseFloat(e):void 0}return t}(t.target?.value))}function w(t){e.onMouseDown?.(t)}function C(t){e.capsLockIcon&&b(t.getModifierState("CapsLock")),e.onKeyDown?.(t)}function $(t){e.onBlur?.(t)}function x(t){e.onKeyUp?.(t)}let k=(0,n.createMemo)(()=>e.formatter?(0,r.default)(e.formatter)?e.formatter(e.value):e.formatter:e.value);return(0,n.createEffect)(()=>{e.label&&y(`.label {--x: ${i?.offsetLeft||0}px;opacity:1;}`)}),[(()=>{let e=c(),n=e.firstChild;return(0,t.effect)(()=>n.data=a()),e})(),(()=>{let e=d();return e.textContent=s.style,e})(),(()=>{let e=c(),n=e.firstChild;return(0,t.effect)(()=>n.data=u()),e})(),(0,t.createComponent)(n.Show,{get when(){return e.css},get children(){let n=c(),r=n.firstChild;return(0,t.effect)(()=>r.data=(0,o.css)(e.css)),n}}),(()=>{let r=h(),a=r.firstChild,l=i;return(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.prefixIcon},get children(){let n=f();return(0,t.insert)(n,()=>e.prefixIcon),n}}),a),(0,t.addEventListener)(a,"blur",$),(0,t.addEventListener)(a,"keyup",x,!0),(0,t.addEventListener)(a,"keydown",C,!0),(0,t.addEventListener)(a,"mousedown",w,!0),(0,t.addEventListener)(a,"change",_),"function"==typeof l?(0,t.use)(l,a):i=a,(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.label},get children(){let n=p();return(0,t.insert)(n,()=>e.label),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return(0,t.memo)(()=>!!e.capsLockIcon)()&&g()},get children(){let n=v();return(0,t.insert)(n,()=>e.capsLockIcon),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.suffixIcon},get children(){let n=m();return(0,t.insert)(n,()=>e.suffixIcon),n}}),null),(0,t.effect)(n=>{let i=(0,o.cx)("fieldset",e.size,e.status,e.class),l=e.disabled,s=e.type,u=e.autoComplete,c=e.accept,d=e.placeholder;return i!==n._v$&&(0,t.className)(r,n._v$=i),l!==n._v$2&&(r.disabled=n._v$2=l),s!==n._v$3&&(0,t.setAttribute)(a,"type",n._v$3=s),u!==n._v$4&&(0,t.setAttribute)(a,"autocomplete",n._v$4=u),c!==n._v$5&&(0,t.setAttribute)(a,"accept",n._v$5=c),d!==n._v$6&&(0,t.setAttribute)(a,"placeholder",n._v$6=d),n},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0}),(0,t.effect)(()=>a.value=k()),r})()]}const g={class:void 0,css:void 0,suffixIcon:void 0,prefixIcon:void 0,capsLockIcon:void 0,size:void 0,disabled:void 0,status:void 0,type:void 0,label:void 0,value:void 0,defaultValue:void 0,formatter:void 0,parser:void 0,onChange:void 0,onMouseDown:void 0,onKeyDown:void 0,accept:void 0,autoComplete:void 0,placeholder:"请输入"};(0,i.customElement)("n-input",g,(e,r)=>{let o=r.element,i=(0,n.mergeProps)({css:o.css,size:o.size||"normal",value:o.value||o.defaultValue||"",type:o.type||"text",onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return(0,n.createEffect)(()=>{(0,a.clearAttribute)(o,["css"])}),[(()=>{let e=d();return e.textContent=l.inline,e})(),(0,t.createComponent)(y,i)]});const b=y;(0,t.delegateEvents)(["keydown","keyup","mousedown"]);
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";function e(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}Object.defineProperty(exports,"__esModule",{value:!0}),e(exports,{default:function(){return w},defaultInportProps:function(){return _}});const t=require("solid-js/web"),n=require("solid-js"),r=u(require("@moneko/common/lib/isFunction")),o=require("@moneko/css"),i=require("solid-element"),a=require("../basic-config"),l=d(require("../theme")),s=require("./style");function u(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={__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(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}const f=(0,t.template)("<style> "),p=(0,t.template)("<style>"),v=(0,t.template)('<span class="prefix">'),m=(0,t.template)('<label class="label">'),h=(0,t.template)('<span class="caps-lock">'),y=(0,t.template)('<span class="suffix">'),g=(0,t.template)('<fieldset><input class="input" part="input">');function b(e){let i;let{baseStyle:a}=l.default,[u,c]=(0,n.createSignal)(),[d,b]=(0,n.createSignal)(!1);function _(t){e.onChange?.(function(t){if(e.parser)return(0,r.default)(e.parser)?e.parser(t):e.parser;if("number"===e.type&&"string"==typeof t){let e=t.replace(/[^\d]/g,"");return e.length?parseFloat(e):void 0}return t}(t.target?.value))}function w(t){e.onMouseDown?.(t)}function C(t){e.capsLockIcon&&b(t.getModifierState("CapsLock")),e.onKeyDown?.(t)}function $(t){e.onBlur?.(t)}function x(t){e.onKeyUp?.(t)}let k=(0,n.createMemo)(()=>e.formatter?(0,r.default)(e.formatter)?e.formatter(e.value):e.formatter:e.value);return(0,n.createEffect)(()=>{e.label&&c(`.label {--x: ${i?.offsetLeft||0}px;opacity:1;}`)}),[(()=>{let e=f(),n=e.firstChild;return(0,t.effect)(()=>n.data=a()),e})(),(()=>{let e=p();return e.textContent=s.style,e})(),(()=>{let e=f(),n=e.firstChild;return(0,t.effect)(()=>n.data=u()),e})(),(0,t.createComponent)(n.Show,{get when(){return e.css},get children(){let n=f(),r=n.firstChild;return(0,t.effect)(()=>r.data=(0,o.css)(e.css)),n}}),(()=>{let r=g(),a=r.firstChild,l=i;return(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.prefixIcon},get children(){let n=v();return(0,t.insert)(n,()=>e.prefixIcon),n}}),a),(0,t.addEventListener)(a,"blur",$),(0,t.addEventListener)(a,"keyup",x,!0),(0,t.addEventListener)(a,"keydown",C,!0),(0,t.addEventListener)(a,"mousedown",w,!0),(0,t.addEventListener)(a,"change",_),"function"==typeof l?(0,t.use)(l,a):i=a,(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.label},get children(){let n=m();return(0,t.insert)(n,()=>e.label),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return(0,t.memo)(()=>!!e.capsLockIcon)()&&d()},get children(){let n=h();return(0,t.insert)(n,()=>e.capsLockIcon),n}}),null),(0,t.insert)(r,(0,t.createComponent)(n.Show,{get when(){return e.suffixIcon},get children(){let n=y();return(0,t.insert)(n,()=>e.suffixIcon),n}}),null),(0,t.effect)(n=>{let i=(0,o.cx)("fieldset",e.size,e.status,e.class),l=e.disabled,s=e.type,u=e.autoComplete,c=e.accept,d=e.placeholder;return i!==n._v$&&(0,t.className)(r,n._v$=i),l!==n._v$2&&(r.disabled=n._v$2=l),s!==n._v$3&&(0,t.setAttribute)(a,"type",n._v$3=s),u!==n._v$4&&(0,t.setAttribute)(a,"autocomplete",n._v$4=u),c!==n._v$5&&(0,t.setAttribute)(a,"accept",n._v$5=c),d!==n._v$6&&(0,t.setAttribute)(a,"placeholder",n._v$6=d),n},{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0,_v$5:void 0,_v$6:void 0}),(0,t.effect)(()=>a.value=k()),r})()]}const _={class:void 0,css:void 0,suffixIcon:void 0,prefixIcon:void 0,capsLockIcon:void 0,size:void 0,disabled:void 0,status:void 0,type:void 0,label:void 0,value:void 0,defaultValue:void 0,formatter:void 0,parser:void 0,onChange:void 0,onMouseDown:void 0,onKeyDown:void 0,accept:void 0,autoComplete:void 0,placeholder:"请输入"};(0,i.customElement)("n-input",_,(e,r)=>{let o=r.element,i=(0,n.mergeProps)({css:o.css,size:o.size||"normal",value:o.value||o.defaultValue||"",type:o.type||"text",onChange(e){o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return(0,n.createEffect)(()=>{(0,a.clearAttribute)(o,["css"])}),[(()=>{let e=p();return e.textContent=l.inline,e})(),(0,t.createComponent)(b,i)]});const w=b;(0,t.delegateEvents)(["keydown","keyup","mousedown"]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/input/index.tsx"],"sourcesContent":["import { createEffect, createMemo, createSignal, mergeProps, Show } from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BasicConfig, CustomElement } from '..';\nimport { clearAttribute } from '../basic-config';\nimport theme, { inline } from '../theme';\n\nimport { style } from './style';\n\nexport interface InputProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 前缀 */\n prefixIcon?: JSX.Element;\n /** 后缀 */\n suffixIcon?: JSX.Element;\n /** 大写锁定图标, 可以结合密码输入框使用\n * @since 2.5.2\n */\n capsLockIcon?: JSX.Element;\n /** 禁用 */\n disabled?: boolean;\n /** 自动完成 */\n autoComplete?: string;\n /** 占位文本 */\n placeholder?: string;\n /** 组件尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 描述 */\n label?: JSX.Element;\n /** 状态 */\n status?: 'error' | 'warning' | 'success';\n /** 类型\n * @default 'text'\n */\n type?: 'email' | 'hidden' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';\n /** HTML attribute: accept */\n accept?: string;\n /** 值 */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 值变更时触发的函数 */\n onChange?: (value: InputProps['value']) => void;\n onKeyDown?(e: KeyboardEvent): void;\n onMouseDown?(e: MouseEvent): void;\n onFocus?(e: FocusEvent): void;\n onBlur?(e: FocusEvent): void;\n onKeyUp?(e: KeyboardEvent): void;\n /** 指定输入框展示值的格式 */\n formatter?: (value?: InputProps['value']) => InputProps['value'];\n /** 搭配 formatter 使用, 将转换后的值转回原来的值 */\n parser?: (value?: InputProps['value']) => InputProps['value'];\n}\n\nfunction Input(props: InputProps) {\n const { baseStyle } = theme;\n let inputRef: HTMLInputElement | undefined;\n const [x, setX] = createSignal<string>();\n const [capsLock, setCapsLock] = createSignal(false);\n\n function parserValue(val: InputProps['value']) {\n if (props.parser) {\n return isFunction(props.parser) ? props.parser(val) : props.parser;\n } else if (props.type === 'number' && typeof val === 'string') {\n const num = val.replace(/[^\\d]/g, '');\n\n return num.length ? parseFloat(num) : void 0;\n }\n return val;\n }\n\n function handleInput(e: Event & { target?: HTMLInputElement }) {\n props.onChange?.(parserValue(e.target?.value));\n }\n function handleMouseDown(e: MouseEvent) {\n props.onMouseDown?.(e);\n }\n function handleKeyDown(e: KeyboardEvent) {\n if (props.capsLockIcon) {\n setCapsLock(e.getModifierState('CapsLock'));\n }\n props.onKeyDown?.(e);\n }\n function handleBlur(e: FocusEvent) {\n props.onBlur?.(e);\n }\n function handleKeyUp(e: KeyboardEvent) {\n props.onKeyUp?.(e);\n }\n\n const value = createMemo(() => {\n if (props.formatter) {\n return isFunction(props.formatter) ? props.formatter(props.value) : props.formatter;\n }\n return props.value;\n });\n\n createEffect(() => {\n if (props.label) {\n setX(`.label {--x: ${inputRef?.offsetLeft || 0}px;opacity:1;}`);\n }\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={x()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <fieldset\n class={cx('fieldset', props.size, props.status, props.class)}\n disabled={props.disabled}\n >\n <Show when={props.prefixIcon}>\n <span class=\"prefix\">{props.prefixIcon}</span>\n </Show>\n <input\n ref={inputRef}\n class=\"input\"\n part=\"input\"\n onChange={handleInput}\n type={props.type}\n value={value()}\n autocomplete={props.autoComplete}\n accept={props.accept}\n placeholder={props.placeholder}\n onMouseDown={handleMouseDown}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onBlur={handleBlur}\n />\n <Show when={props.label}>\n <label class=\"label\">{props.label}</label>\n </Show>\n <Show when={props.capsLockIcon && capsLock()}>\n <span class=\"caps-lock\">{props.capsLockIcon}</span>\n </Show>\n <Show when={props.suffixIcon}>\n <span class=\"suffix\">{props.suffixIcon}</span>\n </Show>\n </fieldset>\n </>\n );\n}\n\nexport type InputElement = CustomElement<InputProps>;\n\nexport const defaultInportProps = {\n class: void 0,\n css: void 0,\n suffixIcon: void 0,\n prefixIcon: void 0,\n capsLockIcon: void 0,\n size: void 0,\n disabled: void 0,\n status: void 0,\n type: void 0,\n label: void 0,\n value: void 0,\n defaultValue: void 0,\n formatter: void 0,\n parser: void 0,\n onChange: void 0,\n onMouseDown: void 0,\n onKeyDown: void 0,\n accept: void 0,\n autoComplete: void 0,\n placeholder: '请输入',\n};\n\ncustomElement<InputProps>('n-input', defaultInportProps, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n size: el.size || 'normal',\n value: el.value || el.defaultValue || '',\n type: el.type || 'text',\n onChange(val?: number | string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css']);\n });\n return (\n <>\n <style textContent={inline} />\n <Input {...props} />\n </>\n );\n});\n\nexport default Input;\n"],"names":["defaultInportProps","Input","props","inputRef","baseStyle","theme","x","setX","createSignal","capsLock","setCapsLock","handleInput","e","onChange","parserValue","val","parser","isFunction","type","num","replace","length","parseFloat","target","value","handleMouseDown","onMouseDown","handleKeyDown","capsLockIcon","getModifierState","onKeyDown","handleBlur","onBlur","handleKeyUp","onKeyUp","createMemo","formatter","createEffect","label","offsetLeft","style","Show","css","prefixIcon","suffixIcon","cx","size","status","class","disabled","autoComplete","accept","placeholder","defaultValue","customElement","_","opt","el","element","mergeProps","dispatchEvent","CustomEvent","detail","clearAttribute","inline"],"mappings":"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"}
1
+ {"version":3,"sources":["components/input/index.tsx"],"sourcesContent":["import { createEffect, createMemo, createSignal, mergeProps, Show } from 'solid-js';\nimport { isFunction } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { BasicConfig, CustomElement } from '..';\nimport { clearAttribute } from '../basic-config';\nimport theme, { inline } from '../theme';\n\nimport { style } from './style';\n\nexport interface InputProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** 前缀 */\n prefixIcon?: JSX.Element;\n /** 后缀 */\n suffixIcon?: JSX.Element;\n /** 大写锁定图标, 可以结合密码输入框使用\n * @since 2.5.2\n */\n capsLockIcon?: JSX.Element;\n /** 禁用 */\n disabled?: boolean;\n /** 自动完成 */\n autoComplete?: string;\n /** 占位文本 */\n placeholder?: string;\n /** 组件尺寸\n * @default 'normal'\n */\n size?: BasicConfig['size'];\n /** 描述 */\n label?: JSX.Element;\n /** 状态 */\n status?: 'error' | 'warning' | 'success';\n /** 类型\n * @default 'text'\n */\n type?: 'email' | 'hidden' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';\n /** HTML attribute: accept */\n accept?: string;\n /** 值 */\n value?: string | number;\n /** 默认值 */\n defaultValue?: string | number;\n /** 值变更时触发的函数 */\n onChange?: (value: InputProps['value']) => void;\n onKeyDown?(e: KeyboardEvent): void;\n onMouseDown?(e: MouseEvent): void;\n onFocus?(e: FocusEvent): void;\n onBlur?(e: FocusEvent): void;\n onKeyUp?(e: KeyboardEvent): void;\n /** 指定输入框展示值的格式 */\n formatter?: (value?: InputProps['value']) => InputProps['value'];\n /** 搭配 formatter 使用, 将转换后的值转回原来的值 */\n parser?: (value?: InputProps['value']) => InputProps['value'];\n}\n\nfunction Input(props: InputProps) {\n const { baseStyle } = theme;\n let inputRef: HTMLInputElement | undefined;\n const [x, setX] = createSignal<string>();\n const [capsLock, setCapsLock] = createSignal(false);\n\n function parserValue(val: InputProps['value']) {\n if (props.parser) {\n return isFunction(props.parser) ? props.parser(val) : props.parser;\n } else if (props.type === 'number' && typeof val === 'string') {\n const num = val.replace(/[^\\d]/g, '');\n\n return num.length ? parseFloat(num) : void 0;\n }\n return val;\n }\n\n function handleInput(e: Event & { target?: HTMLInputElement }) {\n props.onChange?.(parserValue(e.target?.value));\n }\n function handleMouseDown(e: MouseEvent) {\n props.onMouseDown?.(e);\n }\n function handleKeyDown(e: KeyboardEvent) {\n if (props.capsLockIcon) {\n setCapsLock(e.getModifierState('CapsLock'));\n }\n props.onKeyDown?.(e);\n }\n function handleBlur(e: FocusEvent) {\n props.onBlur?.(e);\n }\n function handleKeyUp(e: KeyboardEvent) {\n props.onKeyUp?.(e);\n }\n\n const value = createMemo(() => {\n if (props.formatter) {\n return isFunction(props.formatter) ? props.formatter(props.value) : props.formatter;\n }\n return props.value;\n });\n\n createEffect(() => {\n if (props.label) {\n setX(`.label {--x: ${inputRef?.offsetLeft || 0}px;opacity:1;}`);\n }\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={style} />\n <style textContent={x()} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <fieldset\n class={cx('fieldset', props.size, props.status, props.class)}\n disabled={props.disabled}\n >\n <Show when={props.prefixIcon}>\n <span class=\"prefix\">{props.prefixIcon}</span>\n </Show>\n <input\n ref={inputRef}\n class=\"input\"\n part=\"input\"\n onChange={handleInput}\n type={props.type}\n value={value()}\n autocomplete={props.autoComplete}\n accept={props.accept}\n placeholder={props.placeholder}\n onMouseDown={handleMouseDown}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onBlur={handleBlur}\n />\n <Show when={props.label}>\n <label class=\"label\">{props.label}</label>\n </Show>\n <Show when={props.capsLockIcon && capsLock()}>\n <span class=\"caps-lock\">{props.capsLockIcon}</span>\n </Show>\n <Show when={props.suffixIcon}>\n <span class=\"suffix\">{props.suffixIcon}</span>\n </Show>\n </fieldset>\n </>\n );\n}\n\nexport type InputElement = CustomElement<InputProps>;\n\nexport const defaultInportProps = {\n class: void 0,\n css: void 0,\n suffixIcon: void 0,\n prefixIcon: void 0,\n capsLockIcon: void 0,\n size: void 0,\n disabled: void 0,\n status: void 0,\n type: void 0,\n label: void 0,\n value: void 0,\n defaultValue: void 0,\n formatter: void 0,\n parser: void 0,\n onChange: void 0,\n onMouseDown: void 0,\n onKeyDown: void 0,\n accept: void 0,\n autoComplete: void 0,\n placeholder: '请输入',\n};\n\ncustomElement<InputProps>('n-input', defaultInportProps, (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n css: el.css,\n size: el.size || 'normal',\n value: el.value || el.defaultValue || '',\n type: el.type || 'text',\n onChange(val?: number | string) {\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css']);\n });\n return (\n <>\n <style textContent={inline} />\n <Input {...props} />\n </>\n );\n});\n\nexport default Input;\n"],"names":["defaultInportProps","Input","props","inputRef","baseStyle","theme","x","setX","createSignal","capsLock","setCapsLock","handleInput","e","onChange","parserValue","val","parser","isFunction","type","num","replace","length","parseFloat","target","value","handleMouseDown","onMouseDown","handleKeyDown","capsLockIcon","getModifierState","onKeyDown","handleBlur","onBlur","handleKeyUp","onKeyUp","createMemo","formatter","createEffect","label","offsetLeft","style","Show","css","prefixIcon","suffixIcon","cx","size","status","class","disabled","autoComplete","accept","placeholder","defaultValue","customElement","_","opt","el","element","mergeProps","dispatchEvent","CustomEvent","detail","clearAttribute","inline"],"mappings":"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"}
@@ -176,5 +176,4 @@
176
176
  .caps-lock {
177
177
  margin-inline-start: 4px;
178
178
  }
179
- `;
180
- //# sourceMappingURL=style.js.map
179
+ `;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/input/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .label {\n --x: 0;\n\n position: absolute;\n overflow: hidden;\n border-radius: var(--border-radius);\n padding: 0 4px;\n text-overflow: ellipsis;\n color: var(--text-secondary);\n opacity: 0;\n transition:\n transform var(--transition-duration),\n opacity var(--transition-duration),\n color var(--transition-duration),\n background-color var(--transition-duration);\n line-height: 1.45;\n pointer-events: none;\n transform-origin: left;\n max-inline-size: 100%;\n word-break: keep-all;\n }\n\n .normal {\n padding: 4px 10px;\n font-size: var(--font-size);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 10px), 0, 1px);\n }\n }\n\n .large {\n padding: 6px 16px;\n font-size: var(--font-size-lg);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 16px), 0, 1px);\n }\n }\n\n .small {\n padding: 2px;\n font-size: var(--font-size-sm);\n line-height: 20px;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 2px), 0, 1px);\n }\n }\n\n .input {\n overflow: hidden;\n border: none;\n font-size: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: inherit;\n inline-size: inherit;\n background: none;\n outline: none;\n appearance: none;\n flex: 1;\n\n &::placeholder {\n opacity: 0;\n transition:\n color var(--transition-duration),\n opacity var(--transition-duration);\n }\n\n &:focus::placeholder {\n opacity: 1;\n }\n\n &:not(:placeholder-shown) + .label,\n &:focus + .label {\n background: var(--component-bg);\n transform: translate3d(0, calc(-50% - 0.43em), 1px) scale(0.8);\n }\n\n &:focus + .label {\n color: var(--primary-color);\n }\n\n &:not(:placeholder-shown, :focus) + .label {\n color: var(--text-color);\n }\n }\n\n .fieldset {\n position: relative;\n display: flex;\n margin: 0;\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n color: var(--text-color);\n background-color: var(--component-bg);\n transition: all var(--transition-duration);\n inline-size: 100%;\n background-image: none;\n box-sizing: border-box;\n accent-color: var(--primary-color, #5794ff);\n\n &:hover {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n }\n\n &:focus-within {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n outline: 0;\n box-shadow: 0 0 0 2px var(--primary-outline);\n }\n\n &:invalid,\n &.error {\n --border-color: var(--error-border);\n --primary-hover: var(--error-hover);\n --primary-outline: var(--error-outline);\n --primary-color: var(--error-color);\n\n .label {\n --text-color: var(--error-color);\n }\n }\n\n &.success {\n --border-color: var(--success-border);\n --primary-hover: var(--success-hover);\n --primary-outline: var(--success-outline);\n --primary-color: var(--success-color);\n\n .label {\n --text-color: var(--success-color);\n }\n }\n\n &.warning {\n --border-color: var(--warning-border);\n --primary-hover: var(--warning-hover);\n --primary-outline: var(--warning-outline);\n --primary-color: var(--warning-color);\n\n .label {\n --text-color: var(--warning-color);\n }\n }\n\n &:disabled {\n --text-color: var(--disable-color);\n --border-color: var(--disable-border);\n --primary-hover: var(--disable-border);\n\n background-color: var(--disable-bg);\n cursor: not-allowed;\n\n .input {\n pointer-events: none;\n\n &:not(:placeholder-shown) + .label {\n background: var(--disable-border);\n }\n }\n }\n }\n\n .prefix {\n margin-inline-end: 4px;\n }\n\n .suffix,\n .caps-lock {\n margin-inline-start: 4px;\n }\n`;\n"],"names":["style","css"],"mappings":"kGAEaA,6CAAAA,qBAFO,eAEPA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLzB,CAAC"}
1
+ {"version":3,"sources":["components/input/style.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nexport const style = css`\n .label {\n --x: 0;\n\n position: absolute;\n overflow: hidden;\n border-radius: var(--border-radius);\n padding: 0 4px;\n text-overflow: ellipsis;\n color: var(--text-secondary);\n opacity: 0;\n transition:\n transform var(--transition-duration),\n opacity var(--transition-duration),\n color var(--transition-duration),\n background-color var(--transition-duration);\n line-height: 1.45;\n pointer-events: none;\n transform-origin: left;\n max-inline-size: 100%;\n word-break: keep-all;\n }\n\n .normal {\n padding: 4px 10px;\n font-size: var(--font-size);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 10px), 0, 1px);\n }\n }\n\n .large {\n padding: 6px 16px;\n font-size: var(--font-size-lg);\n line-height: 1.5;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 16px), 0, 1px);\n }\n }\n\n .small {\n padding: 2px;\n font-size: var(--font-size-sm);\n line-height: 20px;\n\n .label {\n transform: translate3d(calc(var(--x, 0) - 2px), 0, 1px);\n }\n }\n\n .input {\n overflow: hidden;\n border: none;\n font-size: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: inherit;\n inline-size: inherit;\n background: none;\n outline: none;\n appearance: none;\n flex: 1;\n\n &::placeholder {\n opacity: 0;\n transition:\n color var(--transition-duration),\n opacity var(--transition-duration);\n }\n\n &:focus::placeholder {\n opacity: 1;\n }\n\n &:not(:placeholder-shown) + .label,\n &:focus + .label {\n background: var(--component-bg);\n transform: translate3d(0, calc(-50% - 0.43em), 1px) scale(0.8);\n }\n\n &:focus + .label {\n color: var(--primary-color);\n }\n\n &:not(:placeholder-shown, :focus) + .label {\n color: var(--text-color);\n }\n }\n\n .fieldset {\n position: relative;\n display: flex;\n margin: 0;\n border: 1px solid var(--border-color);\n border-radius: var(--border-radius);\n color: var(--text-color);\n background-color: var(--component-bg);\n transition: all var(--transition-duration);\n inline-size: 100%;\n background-image: none;\n box-sizing: border-box;\n accent-color: var(--primary-color, #5794ff);\n\n &:hover {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n }\n\n &:focus-within {\n border-color: var(--primary-hover, #80b3ff);\n border-inline-end-width: 1px;\n outline: 0;\n box-shadow: 0 0 0 2px var(--primary-outline);\n }\n\n &:invalid,\n &.error {\n --border-color: var(--error-border);\n --primary-hover: var(--error-hover);\n --primary-outline: var(--error-outline);\n --primary-color: var(--error-color);\n\n .label {\n --text-color: var(--error-color);\n }\n }\n\n &.success {\n --border-color: var(--success-border);\n --primary-hover: var(--success-hover);\n --primary-outline: var(--success-outline);\n --primary-color: var(--success-color);\n\n .label {\n --text-color: var(--success-color);\n }\n }\n\n &.warning {\n --border-color: var(--warning-border);\n --primary-hover: var(--warning-hover);\n --primary-outline: var(--warning-outline);\n --primary-color: var(--warning-color);\n\n .label {\n --text-color: var(--warning-color);\n }\n }\n\n &:disabled {\n --text-color: var(--disable-color);\n --border-color: var(--disable-border);\n --primary-hover: var(--disable-border);\n\n background-color: var(--disable-bg);\n cursor: not-allowed;\n\n .input {\n pointer-events: none;\n\n &:not(:placeholder-shown) + .label {\n background: var(--disable-border);\n }\n }\n }\n }\n\n .prefix {\n margin-inline-end: 4px;\n }\n\n .suffix,\n .caps-lock {\n margin-inline-start: 4px;\n }\n`;\n"],"names":["style","css"],"mappings":"kGAEaA,6CAAAA,qBAFO,eAEPA,EAAQC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLzB,CAAC"}
@@ -1,4 +1,4 @@
1
- "use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return d}});const t=require("solid-js/web"),n=require("solid-js"),r=(e=require("@moneko/common/lib/passiveSupported"))&&e.__esModule?e:{default:e},o=require("@moneko/css"),u=require("solid-element"),i=require("../basic-config"),a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(void 0);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=o?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(r,u,i):r[u]=e[u]}return r.default=e,n&&n.set(e,r),r}(require("../input")),s=require("../theme");function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}const p=(0,t.template)("<style>"),m=(0,o.css)`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return f}});const e=require("solid-js/web"),t=require("solid-js"),n=s(require("@moneko/common/lib/passiveSupported")),r=require("@moneko/css"),o=require("solid-element"),u=require("../basic-config"),i=p(require("../input")),a=require("../theme");function s(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function p(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=o?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(r,u,i):r[u]=e[u]}return r.default=e,n&&n.set(e,r),r}const m=(0,e.template)("<style>"),l=(0,r.css)`
2
2
  /** 隐藏原生加减控件 */
3
3
  .number[type='number'] {
4
4
  appearance: textfield;
@@ -8,5 +8,4 @@
8
8
  .number[type='number']::-webkit-outer-spin-button {
9
9
  appearance: none;
10
10
  }
11
- `;function l(e){let[u,i]=(0,n.createSignal)(!1);function s(){i(!1)}let c=(0,n.mergeProps)({size:"normal",value:"",defaultValue:0,type:"text",onKeyDown:function(e){switch(e.key){case"ArrowUp":l({movementX:0,movementY:-1});break;case"ArrowDown":l({movementX:0,movementY:1})}},onMouseDown:function(e){e.stopPropagation(),i(!0)},step:1,precision:2,max:Number.MAX_SAFE_INTEGER,min:Number.MIN_SAFE_INTEGER},e);function p(t){let n="string"==typeof t?parseFloat(t):t;isNaN(n)&&(n=""),void 0!==n&&(n<c.min&&(n=c.min),n>c.max&&(n=c.max)),e.onChange?.(n)}function l(e){let{movementX:t,movementY:n}=e,r=c.value;p(Number(Number(("number"!=typeof r||isNaN(r)?Number(r)||0:r)+(t-n)*c.step).toFixed(c.precision)))}return(0,n.createEffect)(()=>{u()&&(document.body.addEventListener("mousemove",l,{passive:r.default}),document.body.addEventListener("mouseup",s,{passive:r.default})),(0,n.onCleanup)(()=>{document.body.removeEventListener("mousemove",l,!1),document.body.removeEventListener("mouseup",s,r.default)})}),(0,t.createComponent)(a.default,(0,t.mergeProps)(c,{get class(){return(0,o.cx)("number",e.class)},onChange:p,get css(){return m+(e.css||"")}}))}(0,u.customElement)("n-input-number",{...a.defaultInportProps,defaultValue:void 0,max:void 0,min:void 0,onChange:void 0,step:void 0,precision:void 0},(e,r)=>{let o=r.element,u=(0,n.mergeProps)({onChange(e){o.value=e,o.dispatchEvent(new CustomEvent("change",{detail:e}))}},e);return(0,n.createEffect)(()=>{(0,i.clearAttribute)(o,["css"])}),[(()=>{let e=p();return e.textContent=s.inline,e})(),(0,t.createComponent)(l,u)]});const d=l;
12
- //# sourceMappingURL=index.js.map
11
+ `;function d(o){let[u,a]=(0,t.createSignal)(!1);function s(){a(!1)}let c=(0,t.mergeProps)({size:"normal",value:"",defaultValue:0,type:"text",onKeyDown:function(e){switch(e.key){case"ArrowUp":m({movementX:0,movementY:-1});break;case"ArrowDown":m({movementX:0,movementY:1})}},onMouseDown:function(e){e.stopPropagation(),a(!0)},step:1,precision:2,max:Number.MAX_SAFE_INTEGER,min:Number.MIN_SAFE_INTEGER},o);function p(e){let t="string"==typeof e?parseFloat(e):e;isNaN(t)&&(t=""),void 0!==t&&(t<c.min&&(t=c.min),t>c.max&&(t=c.max)),o.onChange?.(t)}function m(e){let{movementX:t,movementY:n}=e,r=c.value;p(Number(Number(("number"!=typeof r||isNaN(r)?Number(r)||0:r)+(t-n)*c.step).toFixed(c.precision)))}return(0,t.createEffect)(()=>{u()&&(document.body.addEventListener("mousemove",m,{passive:n.default}),document.body.addEventListener("mouseup",s,{passive:n.default})),(0,t.onCleanup)(()=>{document.body.removeEventListener("mousemove",m,!1),document.body.removeEventListener("mouseup",s,n.default)})}),(0,e.createComponent)(i.default,(0,e.mergeProps)(c,{get class(){return(0,r.cx)("number",o.class)},onChange:p,get css(){return l+(o.css||"")}}))}(0,o.customElement)("n-input-number",{...i.defaultInportProps,defaultValue:void 0,max:void 0,min:void 0,onChange:void 0,step:void 0,precision:void 0},(n,r)=>{let o=r.element,i=(0,t.mergeProps)({onChange(e){o.value=e,o.dispatchEvent(new CustomEvent("change",{detail:e}))}},n);return(0,t.createEffect)(()=>{(0,u.clearAttribute)(o,["css"])}),[(()=>{let e=m();return e.textContent=a.inline,e})(),(0,e.createComponent)(d,i)]});const f=d;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/input-number/index.tsx"],"sourcesContent":["import { createEffect, createSignal, mergeProps, onCleanup } from 'solid-js';\nimport { passiveSupported } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement, InputProps } from '..';\nimport { clearAttribute } from '../basic-config';\nimport Input, { defaultInportProps } from '../input';\nimport { inline } from '../theme';\n\nconst style = css`\n /** 隐藏原生加减控件 */\n .number[type='number'] {\n appearance: textfield;\n }\n\n .number[type='number']::-webkit-inner-spin-button,\n .number[type='number']::-webkit-outer-spin-button {\n appearance: none;\n }\n`;\n\n/** API\n * @since 2.0.0\n */\nexport interface InputNumberProps extends Omit<InputProps, 'value' | 'defaultValue' | 'onChange'> {\n /** 值 */\n value?: number;\n /** 默认值\n * @default 0\n */\n defaultValue?: number;\n /** 最小值\n * @default Number.MIN_SAFE_INTEGER\n */\n min?: number;\n /** 最大值\n * @default Number.MAX_SAFE_INTEGER\n */\n max?: number;\n /** 值变更时触发的函数 */\n onChange?: (value?: number) => void;\n /** 每次改变步数,可以为小数\n * @default 1\n */\n step?: number;\n /** 数值精度\n * @default 2\n */\n precision?: number;\n}\nexport type InputNumberElement = CustomElement<InputNumberProps>;\n\nfunction InputNumber(props: InputNumberProps) {\n const [move, setMove] = createSignal(false);\n\n function onMouseDown(e: MouseEvent) {\n e.stopPropagation();\n setMove(true);\n }\n function onKeyDown(e: KeyboardEvent) {\n switch (e.key) {\n case 'ArrowUp':\n mouseMove({ movementX: 0, movementY: -1 });\n break;\n case 'ArrowDown':\n mouseMove({ movementX: 0, movementY: 1 });\n break;\n default:\n break;\n }\n }\n function mouseUp() {\n setMove(false);\n }\n const _ = mergeProps(\n {\n size: 'normal',\n value: '',\n defaultValue: 0,\n type: 'text',\n onKeyDown: onKeyDown,\n onMouseDown: onMouseDown,\n step: 1,\n precision: 2,\n max: Number.MAX_SAFE_INTEGER,\n min: Number.MIN_SAFE_INTEGER,\n },\n props,\n );\n\n function change(val?: string | number) {\n let _val = typeof val === 'string' ? parseFloat(val) : val;\n\n if (isNaN(_val!)) {\n _val = '' as unknown as number;\n }\n if (typeof _val !== 'undefined') {\n if (_val < _.min) _val = _.min;\n if (_val > _.max) _val = _.max;\n }\n props.onChange?.(_val);\n }\n\n function mouseMove(e: { movementX: number; movementY: number }) {\n const { movementX, movementY } = e;\n const _val = _.value;\n const val = typeof _val === 'number' && !isNaN(_val) ? _val : Number(_val) || 0;\n\n change(Number(Number(val + (movementX - movementY) * _.step).toFixed(_.precision)));\n }\n\n createEffect(() => {\n if (move()) {\n document.body.addEventListener('mousemove', mouseMove, {\n passive: passiveSupported,\n });\n document.body.addEventListener('mouseup', mouseUp, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n document.body.removeEventListener('mousemove', mouseMove, false);\n document.body.removeEventListener('mouseup', mouseUp, passiveSupported);\n });\n });\n\n return (\n <Input\n {...(_ as InputProps)}\n class={cx('number', props.class)}\n onChange={change}\n css={style + (props.css || '')}\n />\n );\n}\n\ncustomElement<InputNumberProps>(\n 'n-input-number',\n {\n ...defaultInportProps,\n defaultValue: void 0,\n max: void 0,\n min: void 0,\n onChange: void 0,\n step: void 0,\n precision: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onChange(val?: number | string) {\n el.value = val;\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css']);\n });\n return (\n <>\n <style textContent={inline} />\n <InputNumber {...props} />\n </>\n );\n },\n);\n\nexport default InputNumber;\n"],"names":["style","css","InputNumber","props","move","setMove","createSignal","mouseUp","_","mergeProps","size","value","defaultValue","type","onKeyDown","e","key","mouseMove","movementX","movementY","onMouseDown","stopPropagation","step","precision","max","Number","MAX_SAFE_INTEGER","min","MIN_SAFE_INTEGER","change","val","_val","parseFloat","isNaN","onChange","toFixed","createEffect","document","body","addEventListener","passive","passiveSupported","onCleanup","removeEventListener","Input","cx","class","customElement","defaultInportProps","opt","el","element","dispatchEvent","CustomEvent","detail","clearAttribute","inline"],"mappings":"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"}
1
+ {"version":3,"sources":["components/input-number/index.tsx"],"sourcesContent":["import { createEffect, createSignal, mergeProps, onCleanup } from 'solid-js';\nimport { passiveSupported } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement, InputProps } from '..';\nimport { clearAttribute } from '../basic-config';\nimport Input, { defaultInportProps } from '../input';\nimport { inline } from '../theme';\n\nconst style = css`\n /** 隐藏原生加减控件 */\n .number[type='number'] {\n appearance: textfield;\n }\n\n .number[type='number']::-webkit-inner-spin-button,\n .number[type='number']::-webkit-outer-spin-button {\n appearance: none;\n }\n`;\n\n/** API\n * @since 2.0.0\n */\nexport interface InputNumberProps extends Omit<InputProps, 'value' | 'defaultValue' | 'onChange'> {\n /** 值 */\n value?: number;\n /** 默认值\n * @default 0\n */\n defaultValue?: number;\n /** 最小值\n * @default Number.MIN_SAFE_INTEGER\n */\n min?: number;\n /** 最大值\n * @default Number.MAX_SAFE_INTEGER\n */\n max?: number;\n /** 值变更时触发的函数 */\n onChange?: (value?: number) => void;\n /** 每次改变步数,可以为小数\n * @default 1\n */\n step?: number;\n /** 数值精度\n * @default 2\n */\n precision?: number;\n}\nexport type InputNumberElement = CustomElement<InputNumberProps>;\n\nfunction InputNumber(props: InputNumberProps) {\n const [move, setMove] = createSignal(false);\n\n function onMouseDown(e: MouseEvent) {\n e.stopPropagation();\n setMove(true);\n }\n function onKeyDown(e: KeyboardEvent) {\n switch (e.key) {\n case 'ArrowUp':\n mouseMove({ movementX: 0, movementY: -1 });\n break;\n case 'ArrowDown':\n mouseMove({ movementX: 0, movementY: 1 });\n break;\n default:\n break;\n }\n }\n function mouseUp() {\n setMove(false);\n }\n const _ = mergeProps(\n {\n size: 'normal',\n value: '',\n defaultValue: 0,\n type: 'text',\n onKeyDown: onKeyDown,\n onMouseDown: onMouseDown,\n step: 1,\n precision: 2,\n max: Number.MAX_SAFE_INTEGER,\n min: Number.MIN_SAFE_INTEGER,\n },\n props,\n );\n\n function change(val?: string | number) {\n let _val = typeof val === 'string' ? parseFloat(val) : val;\n\n if (isNaN(_val!)) {\n _val = '' as unknown as number;\n }\n if (typeof _val !== 'undefined') {\n if (_val < _.min) _val = _.min;\n if (_val > _.max) _val = _.max;\n }\n props.onChange?.(_val);\n }\n\n function mouseMove(e: { movementX: number; movementY: number }) {\n const { movementX, movementY } = e;\n const _val = _.value;\n const val = typeof _val === 'number' && !isNaN(_val) ? _val : Number(_val) || 0;\n\n change(Number(Number(val + (movementX - movementY) * _.step).toFixed(_.precision)));\n }\n\n createEffect(() => {\n if (move()) {\n document.body.addEventListener('mousemove', mouseMove, {\n passive: passiveSupported,\n });\n document.body.addEventListener('mouseup', mouseUp, {\n passive: passiveSupported,\n });\n }\n onCleanup(() => {\n document.body.removeEventListener('mousemove', mouseMove, false);\n document.body.removeEventListener('mouseup', mouseUp, passiveSupported);\n });\n });\n\n return (\n <Input\n {...(_ as InputProps)}\n class={cx('number', props.class)}\n onChange={change}\n css={style + (props.css || '')}\n />\n );\n}\n\ncustomElement<InputNumberProps>(\n 'n-input-number',\n {\n ...defaultInportProps,\n defaultValue: void 0,\n max: void 0,\n min: void 0,\n onChange: void 0,\n step: void 0,\n precision: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n onChange(val?: number | string) {\n el.value = val;\n el.dispatchEvent(\n new CustomEvent('change', {\n detail: val,\n }),\n );\n },\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css']);\n });\n return (\n <>\n <style textContent={inline} />\n <InputNumber {...props} />\n </>\n );\n },\n);\n\nexport default InputNumber;\n"],"names":["style","css","InputNumber","props","move","setMove","createSignal","mouseUp","_","mergeProps","size","value","defaultValue","type","onKeyDown","e","key","mouseMove","movementX","movementY","onMouseDown","stopPropagation","step","precision","max","Number","MAX_SAFE_INTEGER","min","MIN_SAFE_INTEGER","change","val","_val","parseFloat","isNaN","onChange","toFixed","createEffect","document","body","addEventListener","passive","passiveSupported","onCleanup","removeEventListener","Input","cx","class","customElement","defaultInportProps","opt","el","element","dispatchEvent","CustomEvent","detail","clearAttribute","inline"],"mappings":"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"}
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/katex/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare function katexBlock(code: string): string;
2
+ export declare function katexInline(code: string): string;
3
+ export declare function image(lazyPicture?: boolean, pictureViewer?: boolean): (src: string, title: string, alt: string) => string;
4
+ export declare function code(langToolbar?: string[] | null): (sourcecode: string, lang: string) => string;
@@ -0,0 +1 @@
1
+ "use strict";function e(e,n){for(var t in n)Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}function n(e){return`<n-katex display-mode="true">${e}</n-katex>`}function t(e){return`<n-katex>${e}</n-katex>`}function r(e,n){return function(t,r,o){return`<n-img lazy="${e}" disabled="${!n}" role="img" src="${t}" alt="${o}" ${r?`title="${r}"`:""}></n-img>`}}function o(e){return function(n,t){return"treeview"===t?`<n-tree data="${n}" />`:`<n-code class="n-code" toolbar="${e&&!!e.length}" language="${t}">${/<[^>]+>/.test(n)?encodeURIComponent(n):n}</n-code>`}}Object.defineProperty(exports,"__esModule",{value:!0}),e(exports,{code:function(){return o},image:function(){return r},katexBlock:function(){return n},katexInline:function(){return t}});
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["components/md/common.ts"],"sourcesContent":["export function katexBlock(code: string) {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n}\nexport function katexInline(code: string) {\n return `<n-katex>${code}</n-katex>`;\n}\nexport function image(lazyPicture?: boolean, pictureViewer?: boolean) {\n return function (src: string, title: string, alt: string) {\n return `<n-img lazy=\"${lazyPicture}\" disabled=\"${!pictureViewer}\" role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></n-img>`;\n };\n}\nexport function code(langToolbar?: string[] | null) {\n return function (sourcecode: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${sourcecode}\" />`;\n }\n const needEndod = /<[^>]+>/;\n\n return `<n-code class=\"n-code\" toolbar=\"${langToolbar && !!langToolbar.length}\" language=\"${lang}\">${needEndod.test(sourcecode) ? encodeURIComponent(sourcecode) : sourcecode}</n-code>`;\n };\n}\n"],"names":["katexBlock","code","katexInline","image","lazyPicture","pictureViewer","src","title","alt","langToolbar","sourcecode","lang","length","needEndod","test","encodeURIComponent"],"mappings":"gGAAO,SAASA,EAAWC,CAAY,EACrC,MAAO,CAAC,6BAA6B,EAAEA,EAAK,UAAU,CAAC,AACzD,CACO,SAASC,EAAYD,CAAY,EACtC,MAAO,CAAC,SAAS,EAAEA,EAAK,UAAU,CAAC,AACrC,CACO,SAASE,EAAMC,CAAqB,CAAEC,CAAuB,EAClE,OAAO,SAAUC,CAAW,CAAEC,CAAa,CAAEC,CAAW,EACtD,MAAO,CAAC,aAAa,EAAEJ,EAAY,YAAY,EAAE,CAACC,EAAc,kBAAkB,EAAEC,EAAI,OAAO,EAAEE,EAAI,EAAE,EAAED,EAAQ,CAAC,OAAO,EAAEA,EAAM,CAAC,CAAC,CAAG,GAAG,SAAS,CAAC,AACrJ,CACF,CACO,SAASN,EAAKQ,CAA6B,EAChD,OAAO,SAAUC,CAAkB,CAAEC,CAAY,QAC/C,AAAIA,AAAS,aAATA,EACK,CAAC,cAAc,EAAED,EAAW,IAAI,CAAC,CAInC,CAAC,gCAAgC,EAAED,GAAe,CAAC,CAACA,EAAYG,MAAM,CAAC,YAAY,EAAED,EAAK,EAAE,EAAEE,AAFnF,UAE6FC,IAAI,CAACJ,GAAcK,mBAAmBL,GAAcA,EAAW,SAAS,CAAC,AAC1L,CACF,mEATgBT,IAAI,mBAAJA,GALAE,KAAK,mBAALA,GANAH,UAAU,mBAAVA,GAGAE,WAAW,mBAAXA"}
package/lib/md/index.d.ts CHANGED
@@ -34,6 +34,7 @@ export interface MdProps {
34
34
  children?: JSX.Element;
35
35
  /**
36
36
  * 使用 web worker
37
+ * @default true
37
38
  */
38
39
  webWorker?: boolean;
39
40
  }
package/lib/md/index.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return g}});const e=require("solid-js/web"),t=require("solid-js"),r=l(require("@moneko/common/lib/frameCallback")),n=require("@moneko/css"),o=require("solid-element"),a=require("../basic-config"),i=l(require("../md-style")),c=u(require("../theme"));function l(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}require("../code"),require("../img");const d=(0,e.template)("<style> "),f=(0,e.template)("<style>"),h=(0,e.template)('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),p=(0,e.template)('<article part="box">');function m(o){let a,l;let{baseStyle:s}=c.default,m=(0,t.mergeProps)({webWorker:!1,pictureViewer:!0,lazyPicture:!0,text:"",tools:["copy"],getAnchorContainer:()=>window},o);function g(){return new Worker("https://cdn.jsdelivr.net/npm/neko-ui@latest/es/md/worker.js")}let v=m.webWorker?g():void 0;function b(e){l&&(l.innerHTML=e.data)}async function y(e){let{text:t,pictureViewer:r,lazyPicture:n,langToolbar:o,...i}=e,c=(await Promise.resolve().then(()=>u(require("marked-completed")))).default;a||((a=new c.Renderer).katexBlock=e=>`<n-katex display-mode="true">${e}</n-katex>`,a.katexInline=e=>`<n-katex>${e}</n-katex>`),a.image=(e,t,o)=>`<n-img lazy="${n}" disabled="${!r}" role="img" src="${e}" alt="${o}" ${t?`title="${t}"`:""}></n-img>`;let l=!!o?.length;a.code=function(e,t){return"treeview"===t?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${l}" language="${t}">${e}</n-code>`},b({data:c(t,{renderer:a,langToolbar:o,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0,...i})})}(0,t.createEffect)(()=>{m.webWorker&&(v||(v=g()),v.addEventListener("message",b))}),(0,t.createEffect)(()=>{v?v.postMessage(JSON.stringify({text:m.text,langToolbar:m.tools,pictureViewer:m.pictureViewer,lazyPicture:m.lazyPicture})):(0,r.default)(()=>y({text:m.text,langToolbar:m.tools,pictureViewer:m.pictureViewer,lazyPicture:m.lazyPicture}))}),(0,t.onCleanup)(()=>{v&&(v.removeEventListener("message",b),v.terminate())});let w=[],x=[],k=[];function C(e){e.preventDefault(),e.stopPropagation();let t=e.target;t.hash?(l?.querySelector(decodeURIComponent(t.hash))?.scrollIntoView({behavior:"smooth",block:"nearest"}),w.forEach(e=>{e.classList.remove("active")}),t.classList.add("active")):window.open(t.href)}function P(e){e.forEach(e=>{let t;let r=e.target.getAttribute("id"),n=e.target.querySelectorAll("a");if(w.forEach(e=>{e.hash===`#${r}`?t=e:e.hash||n.forEach(r=>{r.href===e.href&&(t=e)})}),t){let r=k.indexOf(t);k.forEach(e=>{e.classList.remove("active")}),e.isIntersecting?k.push(t):-1!==r&&k.splice(r,1),k[0]&&(k[0].classList.add("active"),k[0].offsetParent?.scrollTo({top:k[0].offsetTop}))}})}return(0,t.createEffect)(()=>{let e;l&&m.text.startsWith("[TOC]")&&(w=[...l.querySelectorAll(".n-md-toc a[href]")],x=[...l.querySelectorAll("h1, h2, h3, h4, h5, h6")],e=new IntersectionObserver(P,{rootMargin:"-50px 0px",threshold:.5}),x.forEach(t=>{e.observe(t)}),w.forEach(e=>{e.addEventListener("click",C)})),(0,t.onCleanup)(()=>{e&&(x.forEach(t=>{e.unobserve(t)}),e.disconnect()),w.forEach(e=>{e.removeEventListener("click",C)})})}),[(()=>{let t=d(),r=t.firstChild;return(0,e.effect)(()=>r.data=s()),t})(),(()=>{let e=f();return e.textContent=i.default,e})(),(0,e.createComponent)(t.Show,{get when(){return m.css},get children(){let t=d(),r=t.firstChild;return(0,e.effect)(()=>r.data=(0,n.css)(m.css)),t}}),(0,e.createComponent)(t.Switch,{get children(){return[(0,e.createComponent)(t.Match,{get when(){return(m.children||[]).length>0},get children(){let r=h(),n=r.firstChild;return(0,e.insert)(n,(0,e.createComponent)(t.For,{get each(){return m.children},children:e=>e})),r}}),(0,e.createComponent)(t.Match,{get when(){return m.text},get children(){let t=p(),r=l;return"function"==typeof r?(0,e.use)(r,t):l=t,(0,e.effect)(()=>(0,e.className)(t,(0,n.cx)("n-md-box",m.class))),t}})]}})]}(0,o.customElement)("n-md",{class:void 0,pictureViewer:void 0,lazyPicture:void 0,text:void 0,tools:void 0,getAnchorContainer:void 0,css:void 0,children:void 0,notRender:void 0,webWorker:void 0},(r,n)=>{let o=n.element,i=(0,t.mergeProps)({text:!r.notRender&&o.textContent||o.text,css:o.css,tools:o.tools,getAnchorContainer:o.getAnchorContainer},r);return(0,t.createEffect)(()=>{(0,a.clearAttribute)(o,["css","text"]),o.replaceChildren()}),[(()=>{let e=f();return e.textContent=c.block,e})(),(0,e.createComponent)(m,i)]});const g=m;
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return v}});const e=require("solid-js/web"),t=require("solid-js"),r=u(require("@moneko/common/lib/frameCallback")),o=require("@moneko/css"),n=require("solid-element"),a=require("../basic-config"),c=u(require("../md-style")),i=f(require("../theme")),l=require("./common"),s=require("./worker");function u(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function f(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=n?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(o,a,c):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}require("../code"),require("../img");const h=(0,e.template)("<style> "),p=(0,e.template)("<style>"),m=(0,e.template)('<article class="n-md-box" part="box"><div class="n-md-body" part="body">'),g=(0,e.template)('<article part="box">');function b(n){let a,u;let{baseStyle:d}=i.default,b=(0,t.mergeProps)({webWorker:!1,pictureViewer:!0,lazyPicture:!0,text:"",tools:["copy"],getAnchorContainer:()=>window},n);async function v(e){return e?new Worker(await (0,s.create)()):Promise.resolve(void 0)}let[w,{mutate:y}]=(0,t.createResource)(!1,v);function x(e){u&&(u.innerHTML=e.data)}async function k(e){let{text:t,lazyPicture:r,pictureViewer:o,langToolbar:n,...c}=e,i=(await Promise.resolve().then(()=>f(require("marked-completed")))).default;a||((a=new i.Renderer).katexBlock=l.katexBlock,a.katexInline=l.katexInline),a.image=(0,l.image)(r,o),a.code=(0,l.code)(n),x({data:i(t,{renderer:a,langToolbar:n,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0,...c})})}(0,t.createEffect)(()=>{v(b.webWorker).then(e=>{e&&e.addEventListener("message",x),y(e)})}),(0,t.createEffect)(()=>{if(b.webWorker){let e=w();e&&e.postMessage({text:b.text,langToolbar:b.tools,pictureViewer:b.pictureViewer,lazyPicture:b.lazyPicture})}else(0,r.default)(()=>k({text:b.text,langToolbar:b.tools,pictureViewer:b.pictureViewer,lazyPicture:b.lazyPicture}))}),(0,t.onCleanup)(()=>{if(b.webWorker){let e=w();e&&(e.removeEventListener("message",x),e.terminate()),(0,s.dispose)()}});let C=[],P=[],E=[];function q(e){e.preventDefault(),e.stopPropagation();let t=e.target;t.hash?(u?.querySelector(decodeURIComponent(t.hash))?.scrollIntoView({behavior:"smooth",block:"nearest"}),C.forEach(e=>{e.classList.remove("active")}),t.classList.add("active")):window.open(t.href)}function O(e){e.forEach(e=>{let t;let r=e.target.getAttribute("id"),o=e.target.querySelectorAll("a");if(C.forEach(e=>{e.hash===`#${r}`?t=e:e.hash||o.forEach(r=>{r.href===e.href&&(t=e)})}),t){let r=E.indexOf(t);E.forEach(e=>{e.classList.remove("active")}),e.isIntersecting?E.push(t):-1!==r&&E.splice(r,1),E[0]&&(E[0].classList.add("active"),E[0].offsetParent?.scrollTo({top:E[0].offsetTop}))}})}return(0,t.createEffect)(()=>{let e;u&&b.text.startsWith("[TOC]")&&(C=[...u.querySelectorAll(".n-md-toc a[href]")],P=[...u.querySelectorAll("h1, h2, h3, h4, h5, h6")],e=new IntersectionObserver(O,{rootMargin:"-50px 0px",threshold:.5}),P.forEach(t=>{e.observe(t)}),C.forEach(e=>{e.addEventListener("click",q)})),(0,t.onCleanup)(()=>{e&&(P.forEach(t=>{e.unobserve(t)}),e.disconnect()),C.forEach(e=>{e.removeEventListener("click",q)})})}),[(()=>{let t=h(),r=t.firstChild;return(0,e.effect)(()=>r.data=d()),t})(),(()=>{let e=p();return e.textContent=c.default,e})(),(0,e.createComponent)(t.Show,{get when(){return b.css},get children(){let t=h(),r=t.firstChild;return(0,e.effect)(()=>r.data=(0,o.css)(b.css)),t}}),(0,e.createComponent)(t.Switch,{get children(){return[(0,e.createComponent)(t.Match,{get when(){return(b.children||[]).length>0},get children(){let r=m(),o=r.firstChild;return(0,e.insert)(o,(0,e.createComponent)(t.For,{get each(){return b.children},children:e=>e})),r}}),(0,e.createComponent)(t.Match,{get when(){return b.text},get children(){let t=g(),r=u;return"function"==typeof r?(0,e.use)(r,t):u=t,(0,e.effect)(()=>(0,e.className)(t,(0,o.cx)("n-md-box",b.class))),t}})]}})]}(0,n.customElement)("n-md",{class:void 0,pictureViewer:void 0,lazyPicture:void 0,text:void 0,tools:void 0,getAnchorContainer:void 0,css:void 0,children:void 0,notRender:void 0,webWorker:!0},(r,o)=>{let n=o.element,c=(0,t.mergeProps)({text:!r.notRender&&n.textContent||n.text,css:n.css,tools:n.tools,getAnchorContainer:n.getAnchorContainer},r);return(0,t.createEffect)(()=>{(0,a.clearAttribute)(n,["css","text"]),n.replaceChildren()}),[(()=>{let e=p();return e.textContent=i.block,e})(),(0,e.createComponent)(b,c)]});const v=b;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/md/index.tsx"],"sourcesContent":["import { createEffect, For, Match, mergeProps, onCleanup, Show, Switch } from 'solid-js';\nimport { frameCallback } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport { clearAttribute } from '../basic-config';\nimport mdStyle from '../md-style';\nimport theme, { block } from '../theme';\n\nimport '../code';\nimport '../img';\n\nfunction MD(_props: MdProps) {\n let renderer: marked.Renderer | undefined;\n let ref: HTMLDivElement | undefined;\n const { baseStyle } = theme;\n const props = mergeProps(\n {\n webWorker: false,\n pictureViewer: true,\n lazyPicture: true,\n text: '',\n tools: ['copy'],\n getAnchorContainer: () => window as unknown as HTMLElement,\n },\n _props,\n );\n\n function initWorker() {\n return new Worker('https://cdn.jsdelivr.net/npm/neko-ui@latest/es/md/worker.js');\n }\n // eslint-disable-next-line solid/reactivity\n let worker: Worker | undefined = props.webWorker ? initWorker() : void 0;\n\n function update(e: { data: string }) {\n if (ref) {\n ref.innerHTML = e.data;\n }\n }\n async function postMessage(opt: {\n text: string;\n pictureViewer?: boolean;\n lazyPicture?: boolean;\n langToolbar?: string[];\n }) {\n const { text, pictureViewer, lazyPicture, langToolbar, ...options } = opt;\n const marked = (await import('marked-completed')).default;\n\n if (!renderer) {\n renderer = new marked.Renderer();\n\n renderer.katexBlock = (code: string) => {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n };\n renderer.katexInline = (code: string) => {\n return `<n-katex>${code}</n-katex>`;\n };\n }\n\n renderer.image = (src: string, title: string, alt: string) => {\n return `<n-img lazy=\"${lazyPicture}\" disabled=\"${!pictureViewer}\" role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></n-img>`;\n };\n const toolbar = !!langToolbar?.length;\n\n renderer.code = function (code: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${code}\" />`;\n }\n\n return `<n-code class=\"n-code\" toolbar=\"${toolbar}\" language=\"${lang}\">${code}</n-code>`;\n };\n\n update({\n data: marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n }),\n });\n }\n createEffect(() => {\n if (props.webWorker) {\n if (!worker) {\n worker = initWorker();\n }\n worker.addEventListener('message', update);\n }\n });\n\n createEffect(() => {\n if (worker) {\n worker.postMessage(\n JSON.stringify({\n text: props.text,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n lazyPicture: props.lazyPicture,\n }),\n );\n } else {\n const call = () =>\n postMessage({\n text: props.text,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n lazyPicture: props.lazyPicture,\n });\n\n frameCallback(call);\n }\n });\n onCleanup(() => {\n if (worker) {\n worker.removeEventListener('message', update);\n worker.terminate();\n }\n });\n let list: HTMLAnchorElement[] = [];\n let heading: HTMLHeadingElement[] = [];\n const active: HTMLAnchorElement[] = [];\n\n function handleAnchor(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const a = e.target as HTMLAnchorElement;\n\n if (a.hash) {\n ref?.querySelector(decodeURIComponent(a.hash))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n list.forEach((item) => {\n item.classList.remove('active');\n });\n a.classList.add('active');\n } else {\n window.open(a.href);\n }\n }\n function observerEntry(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const id = entry.target.getAttribute('id');\n const all = entry.target.querySelectorAll('a');\n let a: HTMLAnchorElement | undefined;\n\n list.forEach((l) => {\n if (l.hash === `#${id}`) {\n a = l;\n } else if (!l.hash) {\n all.forEach((e) => {\n if (e.href === l.href) {\n a = l;\n }\n });\n }\n });\n if (a) {\n const idx = active.indexOf(a);\n\n active.forEach((e) => {\n e.classList.remove('active');\n });\n if (entry.isIntersecting) {\n active.push(a);\n } else if (idx !== -1) {\n active.splice(idx, 1);\n }\n if (active[0]) {\n active[0].classList.add('active');\n active[0].offsetParent?.scrollTo({\n top: active[0].offsetTop,\n });\n }\n }\n });\n }\n createEffect(() => {\n let observer: IntersectionObserver;\n\n if (ref && props.text.startsWith('[TOC]')) {\n list = [...ref.querySelectorAll<HTMLAnchorElement>('.n-md-toc a[href]')];\n heading = [...ref.querySelectorAll<HTMLHeadingElement>('h1, h2, h3, h4, h5, h6')];\n observer = new IntersectionObserver(observerEntry, {\n rootMargin: '-50px 0px',\n threshold: 0.5,\n });\n heading.forEach((e) => {\n observer.observe(e);\n });\n list.forEach((e) => {\n e.addEventListener('click', handleAnchor);\n });\n }\n onCleanup(() => {\n if (observer) {\n heading.forEach((e) => {\n observer.unobserve(e);\n });\n observer.disconnect();\n }\n list.forEach((e) => {\n e.removeEventListener('click', handleAnchor);\n });\n });\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={mdStyle} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Switch>\n <Match when={(props.children || []).length > 0}>\n <article class=\"n-md-box\" part=\"box\">\n <div class=\"n-md-body\" part=\"body\">\n <For each={props.children as []}>{(e) => e}</For>\n </div>\n </article>\n </Match>\n <Match when={props.text}>\n <article ref={ref} class={cx('n-md-box', props.class)} part=\"box\" />\n </Match>\n </Switch>\n </>\n );\n}\n\nexport interface MdProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** md内容 */\n text?: string;\n /** 开启图片查看器\n * @since 2.0.8\n * @default true\n */\n pictureViewer?: boolean;\n /** 开启图片懒加载\n * @since 2.8.3\n * @default true\n */\n lazyPicture?: boolean;\n /** 开启代码块工具条\n * @default ['copy']\n */\n tools?: 'copy'[];\n /** 指定滚动的容器\n * @default () => window\n */\n getAnchorContainer?: () => HTMLElement;\n /** 不进行解析\n * @default false\n */\n notRender?: boolean;\n children?: JSX.Element;\n /**\n * 使用 web worker\n */\n webWorker?: boolean;\n}\n\nexport type MdElement = CustomElement<MdProps>;\n\ncustomElement<MdProps>(\n 'n-md',\n {\n class: void 0,\n pictureViewer: void 0,\n lazyPicture: void 0,\n text: void 0,\n tools: void 0,\n getAnchorContainer: void 0,\n css: void 0,\n children: void 0,\n notRender: void 0,\n webWorker: void 0,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n text: (!_.notRender && el.textContent) || el.text,\n css: el.css,\n tools: el.tools,\n getAnchorContainer: el.getAnchorContainer,\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css', 'text']);\n el.replaceChildren();\n });\n return (\n <>\n <style textContent={block} />\n <MD {...props} />\n </>\n );\n },\n);\nexport default MD;\n"],"names":["MD","_props","renderer","ref","baseStyle","theme","props","mergeProps","webWorker","pictureViewer","lazyPicture","text","tools","getAnchorContainer","window","initWorker","Worker","worker","update","e","innerHTML","data","postMessage","opt","langToolbar","options","marked","default","Renderer","katexBlock","code","katexInline","image","src","title","alt","toolbar","length","lang","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","createEffect","addEventListener","JSON","stringify","frameCallback","onCleanup","removeEventListener","terminate","list","heading","active","handleAnchor","preventDefault","stopPropagation","a","target","hash","querySelector","decodeURIComponent","scrollIntoView","behavior","block","forEach","item","classList","remove","add","open","href","observerEntry","entries","entry","id","getAttribute","all","querySelectorAll","l","idx","indexOf","isIntersecting","push","splice","offsetParent","scrollTo","top","offsetTop","observer","startsWith","IntersectionObserver","rootMargin","threshold","observe","unobserve","disconnect","mdStyle","Show","css","Switch","Match","children","For","cx","class","customElement","notRender","_","el","element","textContent","clearAttribute","replaceChildren"],"mappings":"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"}
1
+ {"version":3,"sources":["components/md/index.tsx"],"sourcesContent":["import {\n createEffect,\n createResource,\n For,\n Match,\n mergeProps,\n onCleanup,\n Show,\n Switch,\n} from 'solid-js';\nimport { frameCallback } from '@moneko/common';\nimport { css, cx } from '@moneko/css';\nimport { customElement } from 'solid-element';\n\nimport type { CustomElement } from '..';\nimport { clearAttribute } from '../basic-config';\nimport mdStyle from '../md-style';\nimport theme, { block } from '../theme';\n\nimport { code, image, katexBlock, katexInline } from './common';\nimport { create, dispose, type WorkerMessage } from './worker';\n\nimport '../code';\nimport '../img';\n\nfunction MD(_props: MdProps) {\n let renderer: marked.Renderer | undefined;\n let ref: HTMLDivElement | undefined;\n const { baseStyle } = theme;\n const props = mergeProps(\n {\n webWorker: false,\n pictureViewer: true,\n lazyPicture: true,\n text: '',\n tools: ['copy'],\n getAnchorContainer: () => window as unknown as HTMLElement,\n },\n _props,\n );\n\n async function createWorker(enable: boolean) {\n return enable ? new Worker(await create()) : Promise.resolve(void 0);\n }\n const [worker, { mutate }] = createResource(false, createWorker);\n\n function update(e: { data: string }) {\n if (ref) {\n ref.innerHTML = e.data;\n }\n }\n async function postMessage(opt: WorkerMessage) {\n const { text, lazyPicture, pictureViewer, langToolbar, ...options } = opt;\n const marked = (await import('marked-completed')).default;\n\n if (!renderer) {\n renderer = new marked.Renderer();\n renderer.katexBlock = katexBlock;\n renderer.katexInline = katexInline;\n }\n renderer.image = image(lazyPicture, pictureViewer);\n renderer.code = code(langToolbar);\n update({\n data: marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n }),\n });\n }\n createEffect(() => {\n createWorker(props.webWorker).then((res) => {\n if (res) {\n res.addEventListener('message', update);\n }\n mutate(res);\n });\n });\n\n createEffect(() => {\n if (props.webWorker) {\n const webWorker = worker();\n\n if (webWorker) {\n webWorker.postMessage({\n text: props.text,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n lazyPicture: props.lazyPicture,\n });\n }\n } else {\n const call = () =>\n postMessage({\n text: props.text,\n langToolbar: props.tools,\n pictureViewer: props.pictureViewer,\n lazyPicture: props.lazyPicture,\n });\n\n frameCallback(call);\n }\n });\n onCleanup(() => {\n if (props.webWorker) {\n const webWorker = worker();\n\n if (webWorker) {\n webWorker.removeEventListener('message', update);\n webWorker.terminate();\n }\n dispose();\n }\n });\n let list: HTMLAnchorElement[] = [];\n let heading: HTMLHeadingElement[] = [];\n const active: HTMLAnchorElement[] = [];\n\n function handleAnchor(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n const a = e.target as HTMLAnchorElement;\n\n if (a.hash) {\n ref?.querySelector(decodeURIComponent(a.hash))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n list.forEach((item) => {\n item.classList.remove('active');\n });\n a.classList.add('active');\n } else {\n window.open(a.href);\n }\n }\n function observerEntry(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry) => {\n const id = entry.target.getAttribute('id');\n const all = entry.target.querySelectorAll('a');\n let a: HTMLAnchorElement | undefined;\n\n list.forEach((l) => {\n if (l.hash === `#${id}`) {\n a = l;\n } else if (!l.hash) {\n all.forEach((e) => {\n if (e.href === l.href) {\n a = l;\n }\n });\n }\n });\n if (a) {\n const idx = active.indexOf(a);\n\n active.forEach((e) => {\n e.classList.remove('active');\n });\n if (entry.isIntersecting) {\n active.push(a);\n } else if (idx !== -1) {\n active.splice(idx, 1);\n }\n if (active[0]) {\n active[0].classList.add('active');\n active[0].offsetParent?.scrollTo({\n top: active[0].offsetTop,\n });\n }\n }\n });\n }\n createEffect(() => {\n let observer: IntersectionObserver;\n\n if (ref && props.text.startsWith('[TOC]')) {\n list = [...ref.querySelectorAll<HTMLAnchorElement>('.n-md-toc a[href]')];\n heading = [...ref.querySelectorAll<HTMLHeadingElement>('h1, h2, h3, h4, h5, h6')];\n observer = new IntersectionObserver(observerEntry, {\n rootMargin: '-50px 0px',\n threshold: 0.5,\n });\n heading.forEach((e) => {\n observer.observe(e);\n });\n list.forEach((e) => {\n e.addEventListener('click', handleAnchor);\n });\n }\n onCleanup(() => {\n if (observer) {\n heading.forEach((e) => {\n observer.unobserve(e);\n });\n observer.disconnect();\n }\n list.forEach((e) => {\n e.removeEventListener('click', handleAnchor);\n });\n });\n });\n\n return (\n <>\n <style textContent={baseStyle()} />\n <style textContent={mdStyle} />\n <Show when={props.css}>\n <style textContent={css(props.css)} />\n </Show>\n <Switch>\n <Match when={(props.children || []).length > 0}>\n <article class=\"n-md-box\" part=\"box\">\n <div class=\"n-md-body\" part=\"body\">\n <For each={props.children as []}>{(e) => e}</For>\n </div>\n </article>\n </Match>\n <Match when={props.text}>\n <article ref={ref} class={cx('n-md-box', props.class)} part=\"box\" />\n </Match>\n </Switch>\n </>\n );\n}\n\nexport interface MdProps {\n /** 自定义类名 */\n class?: string;\n /** 自定义样式表 */\n css?: string;\n /** md内容 */\n text?: string;\n /** 开启图片查看器\n * @since 2.0.8\n * @default true\n */\n pictureViewer?: boolean;\n /** 开启图片懒加载\n * @since 2.8.3\n * @default true\n */\n lazyPicture?: boolean;\n /** 开启代码块工具条\n * @default ['copy']\n */\n tools?: 'copy'[];\n /** 指定滚动的容器\n * @default () => window\n */\n getAnchorContainer?: () => HTMLElement;\n /** 不进行解析\n * @default false\n */\n notRender?: boolean;\n children?: JSX.Element;\n /**\n * 使用 web worker\n * @default true\n */\n webWorker?: boolean;\n}\n\nexport type MdElement = CustomElement<MdProps>;\n\ncustomElement<MdProps>(\n 'n-md',\n {\n class: void 0,\n pictureViewer: void 0,\n lazyPicture: void 0,\n text: void 0,\n tools: void 0,\n getAnchorContainer: void 0,\n css: void 0,\n children: void 0,\n notRender: void 0,\n webWorker: true,\n },\n (_, opt) => {\n const el = opt.element;\n const props = mergeProps(\n {\n text: (!_.notRender && el.textContent) || el.text,\n css: el.css,\n tools: el.tools,\n getAnchorContainer: el.getAnchorContainer,\n },\n _,\n );\n\n createEffect(() => {\n clearAttribute(el, ['css', 'text']);\n el.replaceChildren();\n });\n return (\n <>\n <style textContent={block} />\n <MD {...props} />\n </>\n );\n },\n);\nexport default MD;\n"],"names":["MD","_props","renderer","ref","baseStyle","theme","props","mergeProps","webWorker","pictureViewer","lazyPicture","text","tools","getAnchorContainer","window","createWorker","enable","Worker","create","Promise","resolve","worker","mutate","createResource","update","e","innerHTML","data","postMessage","opt","langToolbar","options","marked","default","Renderer","katexBlock","katexInline","image","code","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","createEffect","then","res","addEventListener","frameCallback","onCleanup","removeEventListener","terminate","dispose","list","heading","active","handleAnchor","preventDefault","stopPropagation","a","target","hash","querySelector","decodeURIComponent","scrollIntoView","behavior","block","forEach","item","classList","remove","add","open","href","observerEntry","entries","entry","id","getAttribute","all","querySelectorAll","l","idx","indexOf","isIntersecting","push","splice","offsetParent","scrollTo","top","offsetTop","observer","startsWith","IntersectionObserver","rootMargin","threshold","observe","unobserve","disconnect","mdStyle","Show","css","Switch","Match","children","length","For","cx","class","customElement","notRender","_","el","element","textContent","clearAttribute","replaceChildren"],"mappings":"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"}
@@ -1 +1,9 @@
1
- export {};
1
+ import type { MarkedOptions } from 'marked-completed';
2
+ export interface WorkerMessage extends MarkedOptions {
3
+ text: string;
4
+ id?: string;
5
+ pictureViewer?: boolean;
6
+ lazyPicture?: boolean;
7
+ }
8
+ export declare function create(): Promise<string>;
9
+ export declare function dispose(): boolean;
package/lib/md/worker.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),self.importScripts("https://cdn.jsdelivr.net/npm/marked-completed/marked.min.js"),self.addEventListener("message",function(e){let t;try{let{text:n,pictureViewer:a,lazyPicture:r,langToolbar:s,...l}=JSON.parse(e.data),d=new self.marked.Renderer;d.katexBlock=function(e){return`<n-katex display-mode="true">${e}</n-katex>`},d.katexInline=function(e){return`<n-katex>${e}</n-katex>`},d.image=(e,t,n)=>`<n-img lazy="${r}" disabled="${!a}" role="img" src="${e}" alt="${n}" ${t?`title="${t}"`:""}></n-img>`;let o=!!s?.length;d.code=function(e,t){return"treeview"===t?`<n-tree data="${e}" />`:`<n-code class="n-code" toolbar="${o}" language="${t}">${encodeURIComponent(e)}</n-code>`},t=self.marked(n,{renderer:d,langToolbar:s,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0,...l})}catch(e){t=e}self.postMessage(t)},!1);
2
- //# sourceMappingURL=worker.js.map
1
+ "use strict";let e,t;function r(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}Object.defineProperty(exports,"__esModule",{value:!0}),r(exports,{create:function(){return u},dispose:function(){return s}});const n=require("./common");function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var i=o?Object.getOwnPropertyDescriptor(e,c):null;i&&(i.get||i.set)?Object.defineProperty(n,c,i):n[c]=e[c]}return n.default=e,r&&r.set(e,n),n}async function c(){let e=(await Promise.resolve().then(()=>o(require("marked-completed?raw")))).default;return URL.createObjectURL(new Blob([e],{type:"application/javascript"}))}function i(){return URL.createObjectURL(new Blob([`(${(function(){let e;self.importScripts("MARKED_URL"),self.addEventListener("message",function(t){let r;try{e||((e=new self.marked.Renderer).katexBlock("'"),e.katexInline("'")),e.image(..."'"),e.code(..."'"),r=self.marked(t.data.text,Object.assign({renderer:e,headerPrefix:"# ",breaks:!0,pedantic:!1,smartLists:!0,smartypants:!0,xhtml:!0},t.data))}catch(e){r=e.message}self.postMessage(r)},!1)}).toString().replace("MARKED_URL",e).replace('katexBlock("\'")',`katexBlock=${n.katexBlock}`).replace('katexInline("\'")',`katexInline=${n.katexInline}`).replace('image(..."\'")',`image=(${n.image})(t.data.lazyPicture, t.data.pictureViewer)`).replace('code(..."\'")',`code=(${n.code})(t.data.langToolbar)`)})(self)`],{type:"application/javascript"}))}let l=0;async function u(){return l++,e||(e=await c()),t||(t=i()),t}function s(){let r=--l<=0;return r&&(URL.revokeObjectURL(e),e=null,URL.revokeObjectURL(t),t=null),r}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/md/worker.ts"],"sourcesContent":["import type { MarkedOptions } from 'marked-completed';\n\nself.importScripts('https://cdn.jsdelivr.net/npm/marked-completed/marked.min.js');\n\nfunction onMessage(e: MessageEvent<string>) {\n let result;\n\n try {\n const { text, pictureViewer, lazyPicture, langToolbar, ...options } = JSON.parse(e.data) as {\n text: string;\n pictureViewer?: boolean;\n lazyPicture?: boolean;\n langToolbar?: string[];\n } & MarkedOptions;\n const renderer = new self.marked.Renderer();\n\n renderer.katexBlock = function (code: string) {\n return `<n-katex display-mode=\"true\">${code}</n-katex>`;\n };\n renderer.katexInline = function (code: string) {\n return `<n-katex>${code}</n-katex>`;\n };\n renderer.image = (src: string, title: string, alt: string) => {\n return `<n-img lazy=\"${lazyPicture}\" disabled=\"${!pictureViewer}\" role=\"img\" src=\"${src}\" alt=\"${alt}\" ${title ? `title=\"${title}\"` : ''}></n-img>`;\n };\n const toolbar = !!langToolbar?.length;\n\n renderer.code = function (code: string, lang: string) {\n if (lang === 'treeview') {\n return `<n-tree data=\"${code}\" />`;\n }\n\n return `<n-code class=\"n-code\" toolbar=\"${toolbar}\" language=\"${lang}\">${encodeURIComponent(code)}</n-code>`;\n };\n\n result = self.marked(text, {\n renderer: renderer,\n langToolbar: langToolbar,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n ...options,\n });\n } catch (error) {\n result = error;\n }\n self.postMessage(result);\n}\n\nself.addEventListener('message', onMessage, false);\n"],"names":["self","importScripts","addEventListener","e","result","text","pictureViewer","lazyPicture","langToolbar","options","JSON","parse","data","renderer","marked","Renderer","katexBlock","code","katexInline","image","src","title","alt","toolbar","length","lang","encodeURIComponent","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","error","postMessage"],"mappings":"oEAEAA,KAAKC,aAAa,CAAC,+DAkDnBD,KAAKE,gBAAgB,CAAC,UAhDtB,SAAmBC,CAAuB,EACxC,IAAIC,EAEJ,GAAI,CACF,GAAM,CAAEC,KAAAA,CAAI,CAAEC,cAAAA,CAAa,CAAEC,YAAAA,CAAW,CAAEC,YAAAA,CAAW,CAAE,GAAGC,EAAS,CAAGC,KAAKC,KAAK,CAACR,EAAES,IAAI,EAMjFC,EAAW,IAAIb,KAAKc,MAAM,CAACC,QAAQ,AAEzCF,CAAAA,EAASG,UAAU,CAAG,SAAUC,CAAY,EAC1C,MAAO,CAAC,6BAA6B,EAAEA,EAAK,UAAU,CAAC,AACzD,EACAJ,EAASK,WAAW,CAAG,SAAUD,CAAY,EAC3C,MAAO,CAAC,SAAS,EAAEA,EAAK,UAAU,CAAC,AACrC,EACAJ,EAASM,KAAK,CAAG,CAACC,EAAaC,EAAeC,IACrC,CAAC,aAAa,EAAEf,EAAY,YAAY,EAAE,CAACD,EAAc,kBAAkB,EAAEc,EAAI,OAAO,EAAEE,EAAI,EAAE,EAAED,EAAQ,CAAC,OAAO,EAAEA,EAAM,CAAC,CAAC,CAAG,GAAG,SAAS,CAAC,CAErJ,IAAME,EAAU,CAAC,CAACf,GAAagB,MAE/BX,CAAAA,EAASI,IAAI,CAAG,SAAUA,CAAY,CAAEQ,CAAY,QAClD,AAAIA,AAAS,aAATA,EACK,CAAC,cAAc,EAAER,EAAK,IAAI,CAAC,CAG7B,CAAC,gCAAgC,EAAEM,EAAQ,YAAY,EAAEE,EAAK,EAAE,EAAEC,mBAAmBT,GAAM,SAAS,CAAC,AAC9G,EAEAb,EAASJ,KAAKc,MAAM,CAACT,EAAM,CACzBQ,SAAUA,EACVL,YAAaA,EACbmB,aAAc,KACdC,OAAQ,CAAA,EACRC,SAAU,CAAA,EACVC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,MAAO,CAAA,EACP,GAAGvB,CAAO,AACZ,EACF,CAAE,MAAOwB,EAAO,CACd7B,EAAS6B,CACX,CACAjC,KAAKkC,WAAW,CAAC9B,EACnB,EAE4C,CAAA"}
1
+ {"version":3,"sources":["components/md/worker.ts"],"sourcesContent":["import type { MarkedOptions, Renderer } from 'marked-completed';\n\nimport { code, image, katexBlock, katexInline } from './common';\n\nexport interface WorkerMessage extends MarkedOptions {\n text: string;\n id?: string;\n pictureViewer?: boolean;\n lazyPicture?: boolean;\n}\n\nlet MARKED_URL: string | null, WORKER_URL: string | null;\n\nasync function createMarked() {\n const markedRaw = (await import('marked-completed?raw')).default;\n\n return URL.createObjectURL(\n new Blob([markedRaw], {\n type: 'application/javascript',\n }),\n );\n}\nfunction createURL() {\n function worker() {\n self.importScripts('MARKED_URL');\n let renderer: Renderer;\n\n function onMessage(t: MessageEvent<WorkerMessage>) {\n let result: string;\n\n try {\n if (!renderer) {\n renderer = new self.marked.Renderer();\n renderer.katexBlock(\"'\");\n renderer.katexInline(\"'\");\n }\n renderer.image(...(\"'\" as unknown as [string, string, string]));\n renderer.code(...(\"'\" as unknown as [string, string, false]));\n result = self.marked(\n t.data.text,\n Object.assign(\n {\n renderer: renderer,\n headerPrefix: '# ',\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n },\n t.data,\n ),\n );\n } catch (error) {\n result = (error as Error).message;\n }\n self.postMessage(result);\n }\n self.addEventListener('message', onMessage, false);\n }\n\n return URL.createObjectURL(\n new Blob(\n [\n `(${worker.toString().replace('MARKED_URL', MARKED_URL!).replace(`katexBlock(\"'\")`, `katexBlock=${katexBlock}`).replace(`katexInline(\"'\")`, `katexInline=${katexInline}`).replace(`image(...\"'\")`, `image=(${image})(t.data.lazyPicture, t.data.pictureViewer)`).replace(`code(...\"'\")`, `code=(${code})(t.data.langToolbar)`)})(self)`,\n ],\n {\n type: 'application/javascript',\n },\n ),\n );\n}\nlet count = 0;\n\nexport async function create() {\n count++;\n if (!MARKED_URL) {\n MARKED_URL = await createMarked();\n }\n if (!WORKER_URL) {\n WORKER_URL = createURL();\n }\n return WORKER_URL;\n}\n\nexport function dispose() {\n count--;\n const empty = count <= 0;\n\n if (empty) {\n URL.revokeObjectURL(MARKED_URL!);\n MARKED_URL = null;\n URL.revokeObjectURL(WORKER_URL!);\n WORKER_URL = null;\n }\n return empty;\n}\n"],"names":["MARKED_URL","WORKER_URL","create","dispose","createMarked","markedRaw","default","URL","createObjectURL","Blob","type","createURL","worker","renderer","self","importScripts","addEventListener","t","result","marked","Renderer","katexBlock","katexInline","image","code","data","text","Object","assign","headerPrefix","breaks","pedantic","smartLists","smartypants","xhtml","error","message","postMessage","toString","replace","count","empty","revokeObjectURL"],"mappings":"iBAWIA,EAA2BC,uJA+DTC,MAAM,mBAANA,GAWNC,OAAO,mBAAPA,qBAnFqC,ulBAWrD,eAAeC,IACb,IAAMC,EAAY,AAAC,CAAA,MAAM,6BAAA,QAAO,yBAAsB,EAAGC,OAAO,CAEhE,OAAOC,IAAIC,eAAe,CACxB,IAAIC,KAAK,CAACJ,EAAU,CAAE,CACpBK,KAAM,wBACR,GAEJ,CACA,SAASC,IAuCP,OAAOJ,IAAIC,eAAe,CACxB,IAAIC,KACF,CACE,CAAC,CAAC,EAAEG,AAzCV,CAAA,eAEMC,EADJC,KAAKC,aAAa,CAAC,cAkCnBD,KAAKE,gBAAgB,CAAC,UA/BtB,SAAmBC,CAA8B,EAC/C,IAAIC,EAEJ,GAAI,CACGL,IAEHA,AADAA,CAAAA,EAAW,IAAIC,KAAKK,MAAM,CAACC,QAAQ,AAAC,EAC3BC,UAAU,CAAC,KACpBR,EAASS,WAAW,CAAC,MAEvBT,EAASU,KAAK,IAAK,KACnBV,EAASW,IAAI,IAAK,KAClBN,EAASJ,KAAKK,MAAM,CAClBF,EAAEQ,IAAI,CAACC,IAAI,CACXC,OAAOC,MAAM,CACX,CACEf,SAAUA,EACVgB,aAAc,KACdC,OAAQ,CAAA,EACRC,SAAU,CAAA,EACVC,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,MAAO,CAAA,CACT,EACAjB,EAAEQ,IAAI,EAGZ,CAAE,MAAOU,EAAO,CACdjB,EAAS,AAACiB,EAAgBC,OAAO,AACnC,CACAtB,KAAKuB,WAAW,CAACnB,EACnB,EAC4C,CAAA,EAC9C,CAAA,EAKiBoB,QAAQ,GAAGC,OAAO,CAAC,aAAcvC,GAAauC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAElB,YAAU,CAAC,CAAC,EAAEkB,OAAO,CAAC,oBAAoB,CAAC,YAAY,EAAEjB,aAAW,CAAC,CAAC,EAAEiB,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAEhB,OAAK,CAAC,2CAA2C,CAAC,EAAEgB,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAEf,MAAI,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,CACxU,CACD,CACEd,KAAM,wBACR,GAGN,CACA,IAAI8B,EAAQ,EAEL,eAAetC,IAQpB,OAPAsC,IACKxC,GACHA,CAAAA,EAAa,MAAMI,GAAa,EAE7BH,GACHA,CAAAA,EAAaU,GAAU,EAElBV,CACT,CAEO,SAASE,IAEd,IAAMsC,EAAQD,EAAAA,GAAS,EAQvB,OANIC,IACFlC,IAAImC,eAAe,CAAC1C,GACpBA,EAAa,KACbO,IAAImC,eAAe,CAACzC,GACpBA,EAAa,MAERwC,CACT"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return r}});const o=require("@moneko/css"),r=(0,o.css)`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return t}});const o=require("@moneko/css"),r=(0,o.css)`
2
2
  :host,
3
3
  :root {
4
4
  --table-heading-bg: var(--border-color);
@@ -566,5 +566,4 @@
566
566
  }
567
567
  }
568
568
  }
569
- `;
570
- //# sourceMappingURL=index.js.map
569
+ `,t=r;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/md-style/index.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nconst mdStyle = css`\n :host,\n :root {\n --table-heading-bg: var(--border-color);\n }\n\n .n-photo-header > span,\n .n-md-body,\n .n-md-toc {\n backdrop-filter: blur(10px);\n }\n\n .n-md-box:not(.site-doc-main) {\n position: relative;\n display: flex;\n margin: 0 auto;\n max-inline-size: 1280px;\n flex-direction: row-reverse;\n gap: 16px;\n }\n\n .n-md-toc,\n .n-md-body {\n border-radius: var(--border-radius);\n background-color: var(--component-bg);\n box-shadow: 0 2px 8px 0 var(--primary-shadow);\n }\n\n .n-md-body {\n overflow: hidden;\n margin: 0 auto 24px;\n padding: 24px;\n color: var(--text-color);\n max-inline-size: 100%;\n box-sizing: border-box;\n overflow-wrap: break-word;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color;\n flex: 1;\n }\n\n .n-md-body .n-md-body,\n .n-md-body n-md {\n overflow: visible;\n margin: 0;\n padding: 0;\n background-color: unset;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n .n-md-body:has(div:only-child:empty) {\n margin: 0;\n padding: 0;\n background-color: unset;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n a {\n position: relative;\n text-decoration: none;\n color: var(--text-color);\n }\n\n a:visited {\n color: var(--text-secondary);\n }\n\n a:hover {\n color: var(--primary-hover, #80b3ff);\n }\n\n p {\n padding: 0;\n font-size: var(--font-size);\n line-height: 1.8;\n vertical-align: baseline;\n word-wrap: break-word;\n word-break: break-word;\n\n /* content-visibility: auto;\n contain-intrinsic-size: 32px; */\n margin-block-end: 1em;\n }\n\n ol {\n margin: 0;\n padding: 0 0 0 24px;\n font-size: var(--font-size);\n }\n\n .n-md-toc {\n position: sticky;\n inset-block-start: 24px;\n inset-inline-end: 0;\n z-index: 10;\n display: block;\n overflow-y: auto;\n margin: 0 0 24px;\n padding: 16px;\n max-inline-size: 200px;\n block-size: fit-content;\n max-block-size: calc(100vb - 132px);\n box-sizing: border-box;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: border-color, background-color, box-shadow;\n }\n\n .n-md-toc li,\n .n-md-toc ol {\n display: grid;\n inline-size: fit-content;\n max-inline-size: 100%;\n font-size: var(--font-size-sm);\n list-style: none;\n }\n\n .n-md-toc li a {\n overflow: hidden;\n max-inline-size: 100%;\n font-size: var(--font-size-sm);\n text-overflow: ellipsis;\n text-decoration: none;\n white-space: nowrap;\n color: var(--text-color);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: color;\n }\n\n .n-md-toc .active,\n .n-md-toc .active a {\n color: var(--primary-color, #5794ff);\n text-shadow: 0 1px var(--primary-shadow);\n }\n\n .n-md-toc a[href^='http'],\n .n-md-toc a[href^='\\/\\/'],\n .n-md-body table a[href^='http'] {\n &:not(:has(img, n-img))::after {\n content: ' ⎋';\n opacity: 0.3;\n }\n }\n\n a[href^='mailto:']::after {\n content: ' 📧';\n opacity: 0.4;\n }\n\n a[href]:has(img, n-img)::before {\n content: none !important;\n }\n\n a[href]:not(.site-pagination-link)::before {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 2px;\n background-color: var(--primary-hover, #80b3ff);\n transform: scaleX(0);\n transform-origin: center;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: transform, background-color;\n opacity: 0.5;\n content: '';\n }\n\n a:hover::before {\n transform: scaleX(1);\n }\n\n th img[src*='browser-logos'] {\n display: block;\n inline-size: 32px;\n block-size: 32px;\n }\n\n h1::before,\n h2::before,\n h3::before,\n h4::before,\n h5::before,\n h6::before {\n color: var(--primary-color, #5794ff);\n content: attr(data-prefix);\n }\n\n h1[data-prefix]::before,\n h2[data-prefix]::before,\n h3[data-prefix]::before,\n h4[data-prefix]::before,\n h5[data-prefix]::before,\n h6[data-prefix]::before {\n color: var(--primary-color, #5794ff);\n content: attr(data-prefix) !important;\n }\n\n code:not([class]),\n mark {\n border-radius: var(--border-radius);\n padding: 2px 7px;\n font-size: 90%;\n color: var(--primary-heading);\n background-color: var(--text-selection);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color, color;\n }\n\n [data-prefix] code,\n [data-prefix] mark {\n font-size: 60%;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5 {\n margin-block: 1em;\n font-weight: 500;\n color: var(--text-heading);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: border-color, background-color, box-shadow, color;\n }\n\n table,\n tr th,\n tr td,\n blockquote,\n blockquote::after,\n blockquote::before,\n blockquote p {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n\n dl {\n padding: 0;\n margin-block-end: 1em;\n }\n\n h1 {\n font-size: 1.6em;\n line-height: 54px;\n }\n\n h2 {\n font-size: 1.5em;\n line-height: 42px;\n counter-increment: section;\n }\n\n h2::before {\n content: counter(section) '. ';\n }\n\n h1,\n h2 {\n border-block-end: 1px dotted var(--border-color);\n padding-block-end: 10px;\n }\n\n h3 {\n font-size: 1.4em;\n line-height: 30px;\n }\n\n h4 {\n font-size: 1.3em;\n line-height: 28px;\n }\n\n h5 {\n font-size: 1.2em;\n list-style: none;\n }\n\n hr {\n margin: 16px 0;\n border: 0 none;\n padding: 0;\n block-size: 2px;\n text-align: start;\n color: var(--text-color);\n background-color: var(--border-color);\n }\n\n p img,\n p n-img {\n position: relative;\n display: flex;\n overflow: hidden;\n margin: auto;\n max-inline-size: 100%;\n inline-size: fit-content;\n cursor: pointer;\n }\n\n n-img::part(img) {\n min-inline-size: 24px;\n }\n\n ul {\n font-size: var(--font-size);\n }\n\n dl dt {\n margin-block-start: 16px;\n padding: 10px 0;\n font-size: 1em;\n font-weight: bold;\n font-style: italic;\n }\n\n dl dd {\n margin-block-end: 16px;\n margin-inline-start: 0;\n padding: 0 16px;\n }\n\n table {\n overflow: hidden;\n margin-block-end: 16px;\n border-block-end: 1px solid var(--table-heading-bg);\n inline-size: 100%;\n max-inline-size: 100%;\n border-spacing: 0;\n transition-property: border-color;\n word-break: break-all;\n }\n\n table:last-child {\n margin-block-end: 0;\n }\n\n table tbody tr:nth-child(2n) {\n background-color: var(--primary-details-bg);\n }\n\n table tbody tr:hover {\n background-color: var(--primary-selection);\n }\n\n table tr th {\n font-weight: 500;\n min-inline-size: 54px;\n color: var(--text-heading);\n background-color: var(--table-heading-bg);\n transition-property: background-color, color;\n }\n\n table tr th,\n table td {\n padding: 8px 16px;\n }\n\n tr:first-child th:first-child {\n border-start-start-radius: var(--border-radius);\n }\n\n tr:first-child th:last-child {\n border-start-end-radius: var(--border-radius);\n }\n\n blockquote {\n position: relative;\n margin: 30px 48px;\n border-radius: var(--border-radius);\n padding: 16px;\n font-weight: 500;\n background-color: var(--primary-selection);\n transition-property: background-color;\n }\n\n blockquote::before,\n blockquote::after {\n position: absolute;\n font-size: 56px;\n font-family: sans-serif;\n color: var(--primary-active);\n transition-property: color;\n content: '❞';\n line-height: 1;\n }\n\n blockquote::before {\n inset-block-start: -8px;\n inset-inline-start: 0;\n transform: translateX(-44px) rotate(180deg);\n }\n\n blockquote::after {\n inset-inline-end: 0;\n inset-block-end: -8px;\n transform: translateX(44px);\n }\n\n blockquote.n-tip {\n margin: 16px 0 16px 8px;\n border-inline-start: 4px solid var(--primary-color, #5794ff);\n }\n\n blockquote.n-tip::after {\n content: none;\n }\n\n blockquote.n-tip::before {\n inset-block-start: 18px;\n inset-inline-start: -12px;\n border-radius: 100%;\n inline-size: 20px;\n block-size: 20px;\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: #fff;\n background-color: var(--primary-color, #5794ff);\n transform: none;\n content: '!';\n line-height: 20px;\n }\n\n blockquote cite {\n font-size: var(--font-size);\n color: var(--cite-color, #bfbfbf);\n line-height: 20px;\n }\n\n blockquote cite::before {\n content: '\\\\2014 \\\\00A0';\n }\n\n blockquote p {\n margin: auto 0;\n font-size: var(--font-size);\n line-height: 24px;\n transition-property: color;\n }\n\n details {\n overflow: hidden;\n border-inline-start: 5px solid var(--primary-hover, #5794ff);\n border-radius: var(--border-radius);\n padding: 12px 24px;\n background: var(--primary-details-bg);\n box-sizing: border-box;\n user-select: none;\n box-shadow: 0 2px 8px 0 var(--primary-shadow, rgb(0 0 0 / 5%));\n }\n\n details,\n details summary {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color, transform, border-color;\n }\n\n details:not(:last-of-type) {\n margin-block-end: 16px;\n }\n\n details > summary,\n details > summary ~ * {\n font-size: var(--font-size);\n font-weight: normal;\n font-style: normal;\n line-height: 1.4;\n transition-property: background-color, transform, border-color, margin;\n }\n\n details > summary:not(:last-of-type) details > summary ~ *:not(:last-of-type) {\n margin-block-end: 16px;\n }\n\n details > summary {\n font-weight: 500;\n outline: none;\n cursor: pointer;\n transform: translateX(-18px);\n }\n\n details > summary::-webkit-details-marker,\n details > summary::marker {\n display: none;\n color: transparent;\n }\n\n details > summary::before {\n display: inline-block;\n margin-inline-end: 4px;\n inline-size: 14px;\n font-weight: lighter;\n text-align: center;\n opacity: 0.5;\n content: '⛌';\n transform: rotate(45deg);\n }\n\n details[open] {\n user-select: auto;\n }\n\n details[open] > details {\n margin-block-start: 10px;\n }\n\n details[open] > summary {\n margin-block-end: 10px;\n }\n\n details[open] > summary::before {\n transform: rotate(0);\n }\n\n .katex-display {\n overflow-x: auto;\n }\n\n .n-photo-header {\n display: flex;\n flex-wrap: wrap;\n padding: 16px;\n gap: 16px;\n }\n\n .n-photo-header > span {\n border-radius: 8px;\n padding: 4px 10px;\n font-size: 14px;\n font-weight: lighter;\n background-color: rgb(0 0 0 / 20%);\n }\n\n .n-code {\n display: block;\n margin-block-end: 16px;\n }\n\n .n-code:last-child {\n margin-block-end: 0;\n }\n\n @media screen and (width <= 1100px) {\n .n-md-box,\n .n-md-box:not(.site-doc-main),\n .n-md-body {\n max-inline-size: auto;\n }\n\n .n-md-toc {\n position: fixed;\n inset-inline-end: 16px;\n transform: translateX(100%);\n transition: transform var(--transition-duration) var(--transition-timing-function);\n\n &:hover {\n transform: translateX(0);\n }\n }\n }\n`;\n\nexport default mdStyle;\n"],"names":["css"],"mappings":"kGA4jBA,+CAAA,qBA5jBoB,eA4jBpB,EA1jBgBA,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwjBpB,CAAC"}
1
+ {"version":3,"sources":["components/md-style/index.ts"],"sourcesContent":["import { css } from '@moneko/css';\n\nconst mdStyle = css`\n :host,\n :root {\n --table-heading-bg: var(--border-color);\n }\n\n .n-photo-header > span,\n .n-md-body,\n .n-md-toc {\n backdrop-filter: blur(10px);\n }\n\n .n-md-box:not(.site-doc-main) {\n position: relative;\n display: flex;\n margin: 0 auto;\n max-inline-size: 1280px;\n flex-direction: row-reverse;\n gap: 16px;\n }\n\n .n-md-toc,\n .n-md-body {\n border-radius: var(--border-radius);\n background-color: var(--component-bg);\n box-shadow: 0 2px 8px 0 var(--primary-shadow);\n }\n\n .n-md-body {\n overflow: hidden;\n margin: 0 auto 24px;\n padding: 24px;\n color: var(--text-color);\n max-inline-size: 100%;\n box-sizing: border-box;\n overflow-wrap: break-word;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color;\n flex: 1;\n }\n\n .n-md-body .n-md-body,\n .n-md-body n-md {\n overflow: visible;\n margin: 0;\n padding: 0;\n background-color: unset;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n .n-md-body:has(div:only-child:empty) {\n margin: 0;\n padding: 0;\n background-color: unset;\n backdrop-filter: none;\n box-shadow: none;\n }\n\n a {\n position: relative;\n text-decoration: none;\n color: var(--text-color);\n }\n\n a:visited {\n color: var(--text-secondary);\n }\n\n a:hover {\n color: var(--primary-hover, #80b3ff);\n }\n\n p {\n padding: 0;\n font-size: var(--font-size);\n line-height: 1.8;\n vertical-align: baseline;\n word-wrap: break-word;\n word-break: break-word;\n\n /* content-visibility: auto;\n contain-intrinsic-size: 32px; */\n margin-block-end: 1em;\n }\n\n ol {\n margin: 0;\n padding: 0 0 0 24px;\n font-size: var(--font-size);\n }\n\n .n-md-toc {\n position: sticky;\n inset-block-start: 24px;\n inset-inline-end: 0;\n z-index: 10;\n display: block;\n overflow-y: auto;\n margin: 0 0 24px;\n padding: 16px;\n max-inline-size: 200px;\n block-size: fit-content;\n max-block-size: calc(100vb - 132px);\n box-sizing: border-box;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: border-color, background-color, box-shadow;\n }\n\n .n-md-toc li,\n .n-md-toc ol {\n display: grid;\n inline-size: fit-content;\n max-inline-size: 100%;\n font-size: var(--font-size-sm);\n list-style: none;\n }\n\n .n-md-toc li a {\n overflow: hidden;\n max-inline-size: 100%;\n font-size: var(--font-size-sm);\n text-overflow: ellipsis;\n text-decoration: none;\n white-space: nowrap;\n color: var(--text-color);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: color;\n }\n\n .n-md-toc .active,\n .n-md-toc .active a {\n color: var(--primary-color, #5794ff);\n text-shadow: 0 1px var(--primary-shadow);\n }\n\n .n-md-toc a[href^='http'],\n .n-md-toc a[href^='\\/\\/'],\n .n-md-body table a[href^='http'] {\n &:not(:has(img, n-img))::after {\n content: ' ⎋';\n opacity: 0.3;\n }\n }\n\n a[href^='mailto:']::after {\n content: ' 📧';\n opacity: 0.4;\n }\n\n a[href]:has(img, n-img)::before {\n content: none !important;\n }\n\n a[href]:not(.site-pagination-link)::before {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 2px;\n background-color: var(--primary-hover, #80b3ff);\n transform: scaleX(0);\n transform-origin: center;\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: transform, background-color;\n opacity: 0.5;\n content: '';\n }\n\n a:hover::before {\n transform: scaleX(1);\n }\n\n th img[src*='browser-logos'] {\n display: block;\n inline-size: 32px;\n block-size: 32px;\n }\n\n h1::before,\n h2::before,\n h3::before,\n h4::before,\n h5::before,\n h6::before {\n color: var(--primary-color, #5794ff);\n content: attr(data-prefix);\n }\n\n h1[data-prefix]::before,\n h2[data-prefix]::before,\n h3[data-prefix]::before,\n h4[data-prefix]::before,\n h5[data-prefix]::before,\n h6[data-prefix]::before {\n color: var(--primary-color, #5794ff);\n content: attr(data-prefix) !important;\n }\n\n code:not([class]),\n mark {\n border-radius: var(--border-radius);\n padding: 2px 7px;\n font-size: 90%;\n color: var(--primary-heading);\n background-color: var(--text-selection);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color, color;\n }\n\n [data-prefix] code,\n [data-prefix] mark {\n font-size: 60%;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5 {\n margin-block: 1em;\n font-weight: 500;\n color: var(--text-heading);\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: border-color, background-color, box-shadow, color;\n }\n\n table,\n tr th,\n tr td,\n blockquote,\n blockquote::after,\n blockquote::before,\n blockquote p {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n }\n\n dl {\n padding: 0;\n margin-block-end: 1em;\n }\n\n h1 {\n font-size: 1.6em;\n line-height: 54px;\n }\n\n h2 {\n font-size: 1.5em;\n line-height: 42px;\n counter-increment: section;\n }\n\n h2::before {\n content: counter(section) '. ';\n }\n\n h1,\n h2 {\n border-block-end: 1px dotted var(--border-color);\n padding-block-end: 10px;\n }\n\n h3 {\n font-size: 1.4em;\n line-height: 30px;\n }\n\n h4 {\n font-size: 1.3em;\n line-height: 28px;\n }\n\n h5 {\n font-size: 1.2em;\n list-style: none;\n }\n\n hr {\n margin: 16px 0;\n border: 0 none;\n padding: 0;\n block-size: 2px;\n text-align: start;\n color: var(--text-color);\n background-color: var(--border-color);\n }\n\n p img,\n p n-img {\n position: relative;\n display: flex;\n overflow: hidden;\n margin: auto;\n max-inline-size: 100%;\n inline-size: fit-content;\n cursor: pointer;\n }\n\n n-img::part(img) {\n min-inline-size: 24px;\n }\n\n ul {\n font-size: var(--font-size);\n }\n\n dl dt {\n margin-block-start: 16px;\n padding: 10px 0;\n font-size: 1em;\n font-weight: bold;\n font-style: italic;\n }\n\n dl dd {\n margin-block-end: 16px;\n margin-inline-start: 0;\n padding: 0 16px;\n }\n\n table {\n overflow: hidden;\n margin-block-end: 16px;\n border-block-end: 1px solid var(--table-heading-bg);\n inline-size: 100%;\n max-inline-size: 100%;\n border-spacing: 0;\n transition-property: border-color;\n word-break: break-all;\n }\n\n table:last-child {\n margin-block-end: 0;\n }\n\n table tbody tr:nth-child(2n) {\n background-color: var(--primary-details-bg);\n }\n\n table tbody tr:hover {\n background-color: var(--primary-selection);\n }\n\n table tr th {\n font-weight: 500;\n min-inline-size: 54px;\n color: var(--text-heading);\n background-color: var(--table-heading-bg);\n transition-property: background-color, color;\n }\n\n table tr th,\n table td {\n padding: 8px 16px;\n }\n\n tr:first-child th:first-child {\n border-start-start-radius: var(--border-radius);\n }\n\n tr:first-child th:last-child {\n border-start-end-radius: var(--border-radius);\n }\n\n blockquote {\n position: relative;\n margin: 30px 48px;\n border-radius: var(--border-radius);\n padding: 16px;\n font-weight: 500;\n background-color: var(--primary-selection);\n transition-property: background-color;\n }\n\n blockquote::before,\n blockquote::after {\n position: absolute;\n font-size: 56px;\n font-family: sans-serif;\n color: var(--primary-active);\n transition-property: color;\n content: '❞';\n line-height: 1;\n }\n\n blockquote::before {\n inset-block-start: -8px;\n inset-inline-start: 0;\n transform: translateX(-44px) rotate(180deg);\n }\n\n blockquote::after {\n inset-inline-end: 0;\n inset-block-end: -8px;\n transform: translateX(44px);\n }\n\n blockquote.n-tip {\n margin: 16px 0 16px 8px;\n border-inline-start: 4px solid var(--primary-color, #5794ff);\n }\n\n blockquote.n-tip::after {\n content: none;\n }\n\n blockquote.n-tip::before {\n inset-block-start: 18px;\n inset-inline-start: -12px;\n border-radius: 100%;\n inline-size: 20px;\n block-size: 20px;\n font-size: 14px;\n font-weight: bold;\n text-align: center;\n color: #fff;\n background-color: var(--primary-color, #5794ff);\n transform: none;\n content: '!';\n line-height: 20px;\n }\n\n blockquote cite {\n font-size: var(--font-size);\n color: var(--cite-color, #bfbfbf);\n line-height: 20px;\n }\n\n blockquote cite::before {\n content: '\\\\2014 \\\\00A0';\n }\n\n blockquote p {\n margin: auto 0;\n font-size: var(--font-size);\n line-height: 24px;\n transition-property: color;\n }\n\n details {\n overflow: hidden;\n border-inline-start: 5px solid var(--primary-hover, #5794ff);\n border-radius: var(--border-radius);\n padding: 12px 24px;\n background: var(--primary-details-bg);\n box-sizing: border-box;\n user-select: none;\n box-shadow: 0 2px 8px 0 var(--primary-shadow, rgb(0 0 0 / 5%));\n }\n\n details,\n details summary {\n transition-duration: var(--transition-duration);\n transition-timing-function: var(--transition-timing-function);\n transition-property: background-color, transform, border-color;\n }\n\n details:not(:last-of-type) {\n margin-block-end: 16px;\n }\n\n details > summary,\n details > summary ~ * {\n font-size: var(--font-size);\n font-weight: normal;\n font-style: normal;\n line-height: 1.4;\n transition-property: background-color, transform, border-color, margin;\n }\n\n details > summary:not(:last-of-type) details > summary ~ *:not(:last-of-type) {\n margin-block-end: 16px;\n }\n\n details > summary {\n font-weight: 500;\n outline: none;\n cursor: pointer;\n transform: translateX(-18px);\n }\n\n details > summary::-webkit-details-marker,\n details > summary::marker {\n display: none;\n color: transparent;\n }\n\n details > summary::before {\n display: inline-block;\n margin-inline-end: 4px;\n inline-size: 14px;\n font-weight: lighter;\n text-align: center;\n opacity: 0.5;\n content: '⛌';\n transform: rotate(45deg);\n }\n\n details[open] {\n user-select: auto;\n }\n\n details[open] > details {\n margin-block-start: 10px;\n }\n\n details[open] > summary {\n margin-block-end: 10px;\n }\n\n details[open] > summary::before {\n transform: rotate(0);\n }\n\n .katex-display {\n overflow-x: auto;\n }\n\n .n-photo-header {\n display: flex;\n flex-wrap: wrap;\n padding: 16px;\n gap: 16px;\n }\n\n .n-photo-header > span {\n border-radius: 8px;\n padding: 4px 10px;\n font-size: 14px;\n font-weight: lighter;\n background-color: rgb(0 0 0 / 20%);\n }\n\n .n-code {\n display: block;\n margin-block-end: 16px;\n }\n\n .n-code:last-child {\n margin-block-end: 0;\n }\n\n @media screen and (width <= 1100px) {\n .n-md-box,\n .n-md-box:not(.site-doc-main),\n .n-md-body {\n max-inline-size: auto;\n }\n\n .n-md-toc {\n position: fixed;\n inset-inline-end: 16px;\n transform: translateX(100%);\n transition: transform var(--transition-duration) var(--transition-timing-function);\n\n &:hover {\n transform: translateX(0);\n }\n }\n }\n`;\n\nexport default mdStyle;\n"],"names":["mdStyle","css"],"mappings":"kGA4jBA,+CAAA,qBA5jBoB,eAEdA,EAAUC,GAAAA,KAAG,CAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwjBpB,CAAC,CAED,EAAeD"}