lumen-plus 0.0.1

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 (434) hide show
  1. package/dist/components/Affix/Affix.svelte +97 -0
  2. package/dist/components/Affix/Affix.svelte.d.ts +14 -0
  3. package/dist/components/Affix/index.d.ts +4 -0
  4. package/dist/components/Affix/index.js +3 -0
  5. package/dist/components/Affix/types.d.ts +11 -0
  6. package/dist/components/Affix/types.js +1 -0
  7. package/dist/components/Alert/Alert.svelte +77 -0
  8. package/dist/components/Alert/Alert.svelte.d.ts +16 -0
  9. package/dist/components/Alert/index.d.ts +4 -0
  10. package/dist/components/Alert/index.js +3 -0
  11. package/dist/components/Alert/types.d.ts +23 -0
  12. package/dist/components/Alert/types.js +1 -0
  13. package/dist/components/Autocomplete/Autocomplete.svelte +163 -0
  14. package/dist/components/Autocomplete/Autocomplete.svelte.d.ts +20 -0
  15. package/dist/components/Autocomplete/index.d.ts +3 -0
  16. package/dist/components/Autocomplete/index.js +3 -0
  17. package/dist/components/Avatar/Avatar.svelte +50 -0
  18. package/dist/components/Avatar/Avatar.svelte.d.ts +14 -0
  19. package/dist/components/Avatar/index.d.ts +4 -0
  20. package/dist/components/Avatar/index.js +3 -0
  21. package/dist/components/Avatar/types.d.ts +26 -0
  22. package/dist/components/Avatar/types.js +1 -0
  23. package/dist/components/Backtop/Backtop.svelte +60 -0
  24. package/dist/components/Backtop/Backtop.svelte.d.ts +13 -0
  25. package/dist/components/Backtop/index.d.ts +4 -0
  26. package/dist/components/Backtop/index.js +3 -0
  27. package/dist/components/Backtop/types.d.ts +18 -0
  28. package/dist/components/Backtop/types.js +1 -0
  29. package/dist/components/Badge/Badge.svelte +53 -0
  30. package/dist/components/Badge/Badge.svelte.d.ts +13 -0
  31. package/dist/components/Badge/index.d.ts +4 -0
  32. package/dist/components/Badge/index.js +3 -0
  33. package/dist/components/Badge/types.d.ts +20 -0
  34. package/dist/components/Badge/types.js +1 -0
  35. package/dist/components/Breadcrumb/Breadcrumb.svelte +35 -0
  36. package/dist/components/Breadcrumb/Breadcrumb.svelte.d.ts +6 -0
  37. package/dist/components/Breadcrumb/index.d.ts +4 -0
  38. package/dist/components/Breadcrumb/index.js +3 -0
  39. package/dist/components/Breadcrumb/types.d.ts +10 -0
  40. package/dist/components/Breadcrumb/types.js +1 -0
  41. package/dist/components/Button/Button.svelte +61 -0
  42. package/dist/components/Button/Button.svelte.d.ts +5 -0
  43. package/dist/components/Button/index.d.ts +4 -0
  44. package/dist/components/Button/index.js +3 -0
  45. package/dist/components/Button/types.d.ts +42 -0
  46. package/dist/components/Button/types.js +1 -0
  47. package/dist/components/Calendar/Calendar.svelte +115 -0
  48. package/dist/components/Calendar/Calendar.svelte.d.ts +7 -0
  49. package/dist/components/Calendar/index.d.ts +3 -0
  50. package/dist/components/Calendar/index.js +3 -0
  51. package/dist/components/Card/Card.svelte +59 -0
  52. package/dist/components/Card/Card.svelte.d.ts +4 -0
  53. package/dist/components/Card/index.d.ts +4 -0
  54. package/dist/components/Card/index.js +4 -0
  55. package/dist/components/Card/types.d.ts +26 -0
  56. package/dist/components/Card/types.js +1 -0
  57. package/dist/components/Carousel/Carousel.svelte +158 -0
  58. package/dist/components/Carousel/Carousel.svelte.d.ts +19 -0
  59. package/dist/components/Carousel/CarouselContext.d.ts +6 -0
  60. package/dist/components/Carousel/CarouselContext.js +1 -0
  61. package/dist/components/Carousel/CarouselItem.svelte +26 -0
  62. package/dist/components/Carousel/CarouselItem.svelte.d.ts +11 -0
  63. package/dist/components/Carousel/index.d.ts +5 -0
  64. package/dist/components/Carousel/index.js +4 -0
  65. package/dist/components/Carousel/types.d.ts +43 -0
  66. package/dist/components/Carousel/types.js +1 -0
  67. package/dist/components/Cascader/Cascader.svelte +191 -0
  68. package/dist/components/Cascader/Cascader.svelte.d.ts +4 -0
  69. package/dist/components/Cascader/index.d.ts +4 -0
  70. package/dist/components/Cascader/index.js +3 -0
  71. package/dist/components/Cascader/types.d.ts +19 -0
  72. package/dist/components/Cascader/types.js +1 -0
  73. package/dist/components/Checkbox/Checkbox.svelte +55 -0
  74. package/dist/components/Checkbox/Checkbox.svelte.d.ts +16 -0
  75. package/dist/components/Checkbox/index.d.ts +4 -0
  76. package/dist/components/Checkbox/index.js +3 -0
  77. package/dist/components/Checkbox/types.d.ts +24 -0
  78. package/dist/components/Checkbox/types.js +1 -0
  79. package/dist/components/Collapse/Collapse.svelte +48 -0
  80. package/dist/components/Collapse/Collapse.svelte.d.ts +11 -0
  81. package/dist/components/Collapse/CollapseContext.d.ts +6 -0
  82. package/dist/components/Collapse/CollapseContext.js +1 -0
  83. package/dist/components/Collapse/CollapseItem.svelte +133 -0
  84. package/dist/components/Collapse/CollapseItem.svelte.d.ts +11 -0
  85. package/dist/components/Collapse/index.d.ts +5 -0
  86. package/dist/components/Collapse/index.js +4 -0
  87. package/dist/components/Collapse/types.d.ts +27 -0
  88. package/dist/components/Collapse/types.js +1 -0
  89. package/dist/components/ColorPicker/ColorPicker.svelte +112 -0
  90. package/dist/components/ColorPicker/ColorPicker.svelte.d.ts +12 -0
  91. package/dist/components/ColorPicker/index.d.ts +4 -0
  92. package/dist/components/ColorPicker/index.js +3 -0
  93. package/dist/components/ColorPicker/types.d.ts +17 -0
  94. package/dist/components/ColorPicker/types.js +1 -0
  95. package/dist/components/Container/Aside.svelte +20 -0
  96. package/dist/components/Container/Aside.svelte.d.ts +9 -0
  97. package/dist/components/Container/Container.svelte +19 -0
  98. package/dist/components/Container/Container.svelte.d.ts +9 -0
  99. package/dist/components/Container/Footer.svelte +20 -0
  100. package/dist/components/Container/Footer.svelte.d.ts +9 -0
  101. package/dist/components/Container/Header.svelte +20 -0
  102. package/dist/components/Container/Header.svelte.d.ts +9 -0
  103. package/dist/components/Container/Main.svelte +18 -0
  104. package/dist/components/Container/Main.svelte.d.ts +8 -0
  105. package/dist/components/Container/index.d.ts +6 -0
  106. package/dist/components/Container/index.js +5 -0
  107. package/dist/components/Container/types.d.ts +46 -0
  108. package/dist/components/Container/types.js +1 -0
  109. package/dist/components/DatePicker/DatePicker.svelte +206 -0
  110. package/dist/components/DatePicker/DatePicker.svelte.d.ts +17 -0
  111. package/dist/components/DatePicker/index.d.ts +4 -0
  112. package/dist/components/DatePicker/index.js +3 -0
  113. package/dist/components/DatePicker/types.d.ts +29 -0
  114. package/dist/components/DatePicker/types.js +1 -0
  115. package/dist/components/DateTimePicker/DateTimePicker.svelte +387 -0
  116. package/dist/components/DateTimePicker/DateTimePicker.svelte.d.ts +4 -0
  117. package/dist/components/DateTimePicker/index.d.ts +4 -0
  118. package/dist/components/DateTimePicker/index.js +3 -0
  119. package/dist/components/DateTimePicker/types.d.ts +21 -0
  120. package/dist/components/DateTimePicker/types.js +1 -0
  121. package/dist/components/Descriptions/Descriptions.svelte +69 -0
  122. package/dist/components/Descriptions/Descriptions.svelte.d.ts +15 -0
  123. package/dist/components/Descriptions/DescriptionsContext.d.ts +8 -0
  124. package/dist/components/Descriptions/DescriptionsContext.js +1 -0
  125. package/dist/components/Descriptions/DescriptionsItem.svelte +59 -0
  126. package/dist/components/Descriptions/DescriptionsItem.svelte.d.ts +13 -0
  127. package/dist/components/Descriptions/index.d.ts +5 -0
  128. package/dist/components/Descriptions/index.js +4 -0
  129. package/dist/components/Descriptions/types.d.ts +41 -0
  130. package/dist/components/Descriptions/types.js +1 -0
  131. package/dist/components/Dialog/Dialog.svelte +122 -0
  132. package/dist/components/Dialog/Dialog.svelte.d.ts +20 -0
  133. package/dist/components/Dialog/index.d.ts +4 -0
  134. package/dist/components/Dialog/index.js +3 -0
  135. package/dist/components/Dialog/types.d.ts +32 -0
  136. package/dist/components/Dialog/types.js +1 -0
  137. package/dist/components/Divider/Divider.svelte +23 -0
  138. package/dist/components/Divider/Divider.svelte.d.ts +11 -0
  139. package/dist/components/Divider/index.d.ts +4 -0
  140. package/dist/components/Divider/index.js +3 -0
  141. package/dist/components/Divider/types.d.ts +20 -0
  142. package/dist/components/Divider/types.js +1 -0
  143. package/dist/components/Drawer/Drawer.svelte +141 -0
  144. package/dist/components/Drawer/Drawer.svelte.d.ts +26 -0
  145. package/dist/components/Drawer/index.d.ts +4 -0
  146. package/dist/components/Drawer/index.js +3 -0
  147. package/dist/components/Drawer/types.d.ts +40 -0
  148. package/dist/components/Drawer/types.js +1 -0
  149. package/dist/components/Dropdown/Dropdown.svelte +387 -0
  150. package/dist/components/Dropdown/Dropdown.svelte.d.ts +4 -0
  151. package/dist/components/Dropdown/DropdownContext.d.ts +7 -0
  152. package/dist/components/Dropdown/DropdownContext.js +8 -0
  153. package/dist/components/Dropdown/DropdownItem.svelte +50 -0
  154. package/dist/components/Dropdown/DropdownItem.svelte.d.ts +4 -0
  155. package/dist/components/Dropdown/DropdownMenu.svelte +16 -0
  156. package/dist/components/Dropdown/DropdownMenu.svelte.d.ts +4 -0
  157. package/dist/components/Dropdown/index.d.ts +5 -0
  158. package/dist/components/Dropdown/index.js +5 -0
  159. package/dist/components/Dropdown/types.d.ts +81 -0
  160. package/dist/components/Dropdown/types.js +1 -0
  161. package/dist/components/Empty/Empty.svelte +40 -0
  162. package/dist/components/Empty/Empty.svelte.d.ts +11 -0
  163. package/dist/components/Empty/index.d.ts +4 -0
  164. package/dist/components/Empty/index.js +3 -0
  165. package/dist/components/Empty/types.d.ts +14 -0
  166. package/dist/components/Empty/types.js +1 -0
  167. package/dist/components/Form/Form.svelte +88 -0
  168. package/dist/components/Form/Form.svelte.d.ts +15 -0
  169. package/dist/components/Form/FormContext.d.ts +19 -0
  170. package/dist/components/Form/FormContext.js +1 -0
  171. package/dist/components/Form/FormInternals.d.ts +40 -0
  172. package/dist/components/Form/FormInternals.js +152 -0
  173. package/dist/components/Form/FormItem.svelte +191 -0
  174. package/dist/components/Form/FormItem.svelte.d.ts +8 -0
  175. package/dist/components/Form/index.d.ts +3 -0
  176. package/dist/components/Form/index.js +2 -0
  177. package/dist/components/Form/types.d.ts +61 -0
  178. package/dist/components/Form/types.js +1 -0
  179. package/dist/components/Icon/Icon.svelte +43 -0
  180. package/dist/components/Icon/Icon.svelte.d.ts +12 -0
  181. package/dist/components/Icon/index.d.ts +5 -0
  182. package/dist/components/Icon/index.js +15 -0
  183. package/dist/components/Icon/types.d.ts +14 -0
  184. package/dist/components/Icon/types.js +1 -0
  185. package/dist/components/Image/Image.svelte +134 -0
  186. package/dist/components/Image/Image.svelte.d.ts +20 -0
  187. package/dist/components/Image/index.d.ts +4 -0
  188. package/dist/components/Image/index.js +3 -0
  189. package/dist/components/Image/types.d.ts +32 -0
  190. package/dist/components/Image/types.js +1 -0
  191. package/dist/components/Input/Input.svelte +177 -0
  192. package/dist/components/Input/Input.svelte.d.ts +4 -0
  193. package/dist/components/Input/index.d.ts +4 -0
  194. package/dist/components/Input/index.js +3 -0
  195. package/dist/components/Input/types.d.ts +72 -0
  196. package/dist/components/Input/types.js +1 -0
  197. package/dist/components/InputNumber/InputNumber.svelte +110 -0
  198. package/dist/components/InputNumber/InputNumber.svelte.d.ts +18 -0
  199. package/dist/components/InputNumber/index.d.ts +4 -0
  200. package/dist/components/InputNumber/index.js +3 -0
  201. package/dist/components/InputNumber/types.d.ts +29 -0
  202. package/dist/components/InputNumber/types.js +1 -0
  203. package/dist/components/InputTag/InputTag.svelte +160 -0
  204. package/dist/components/InputTag/InputTag.svelte.d.ts +4 -0
  205. package/dist/components/InputTag/index.d.ts +4 -0
  206. package/dist/components/InputTag/index.js +3 -0
  207. package/dist/components/InputTag/types.d.ts +21 -0
  208. package/dist/components/InputTag/types.js +1 -0
  209. package/dist/components/Link/Link.svelte +38 -0
  210. package/dist/components/Link/Link.svelte.d.ts +15 -0
  211. package/dist/components/Link/index.d.ts +4 -0
  212. package/dist/components/Link/index.js +3 -0
  213. package/dist/components/Link/types.d.ts +26 -0
  214. package/dist/components/Link/types.js +1 -0
  215. package/dist/components/Loading/Loading.svelte +56 -0
  216. package/dist/components/Loading/Loading.svelte.d.ts +15 -0
  217. package/dist/components/Loading/index.d.ts +4 -0
  218. package/dist/components/Loading/index.js +3 -0
  219. package/dist/components/Loading/types.d.ts +20 -0
  220. package/dist/components/Loading/types.js +1 -0
  221. package/dist/components/Menu/Menu.svelte +283 -0
  222. package/dist/components/Menu/Menu.svelte.d.ts +4 -0
  223. package/dist/components/Menu/index.d.ts +4 -0
  224. package/dist/components/Menu/index.js +3 -0
  225. package/dist/components/Menu/types.d.ts +18 -0
  226. package/dist/components/Menu/types.js +1 -0
  227. package/dist/components/Message/MessageBox.svelte +56 -0
  228. package/dist/components/Message/MessageBox.svelte.d.ts +10 -0
  229. package/dist/components/Message/index.d.ts +15 -0
  230. package/dist/components/Message/index.js +102 -0
  231. package/dist/components/Message/types.d.ts +28 -0
  232. package/dist/components/Message/types.js +1 -0
  233. package/dist/components/MessageBox/MessageBox.svelte +85 -0
  234. package/dist/components/MessageBox/MessageBox.svelte.d.ts +7 -0
  235. package/dist/components/MessageBox/index.d.ts +4 -0
  236. package/dist/components/MessageBox/index.js +3 -0
  237. package/dist/components/MessageBox/types.d.ts +21 -0
  238. package/dist/components/MessageBox/types.js +1 -0
  239. package/dist/components/Notification/Notification.svelte +90 -0
  240. package/dist/components/Notification/Notification.svelte.d.ts +7 -0
  241. package/dist/components/Notification/index.d.ts +4 -0
  242. package/dist/components/Notification/index.js +3 -0
  243. package/dist/components/Notification/types.d.ts +24 -0
  244. package/dist/components/Notification/types.js +1 -0
  245. package/dist/components/Pagination/Pagination.svelte +180 -0
  246. package/dist/components/Pagination/Pagination.svelte.d.ts +21 -0
  247. package/dist/components/Pagination/index.d.ts +4 -0
  248. package/dist/components/Pagination/index.js +3 -0
  249. package/dist/components/Pagination/types.d.ts +35 -0
  250. package/dist/components/Pagination/types.js +1 -0
  251. package/dist/components/PinInput/PinInput.svelte +175 -0
  252. package/dist/components/PinInput/PinInput.svelte.d.ts +4 -0
  253. package/dist/components/PinInput/index.d.ts +4 -0
  254. package/dist/components/PinInput/index.js +3 -0
  255. package/dist/components/PinInput/types.d.ts +31 -0
  256. package/dist/components/PinInput/types.js +1 -0
  257. package/dist/components/Popconfirm/Popconfirm.svelte +228 -0
  258. package/dist/components/Popconfirm/Popconfirm.svelte.d.ts +24 -0
  259. package/dist/components/Popconfirm/index.d.ts +4 -0
  260. package/dist/components/Popconfirm/index.js +3 -0
  261. package/dist/components/Popconfirm/types.d.ts +21 -0
  262. package/dist/components/Popconfirm/types.js +1 -0
  263. package/dist/components/Popover/Popover.svelte +176 -0
  264. package/dist/components/Popover/Popover.svelte.d.ts +7 -0
  265. package/dist/components/Popover/index.d.ts +4 -0
  266. package/dist/components/Popover/index.js +3 -0
  267. package/dist/components/Popover/types.d.ts +24 -0
  268. package/dist/components/Popover/types.js +1 -0
  269. package/dist/components/Progress/Progress.svelte +33 -0
  270. package/dist/components/Progress/Progress.svelte.d.ts +11 -0
  271. package/dist/components/Progress/index.d.ts +4 -0
  272. package/dist/components/Progress/index.js +3 -0
  273. package/dist/components/Progress/types.d.ts +17 -0
  274. package/dist/components/Progress/types.js +1 -0
  275. package/dist/components/Radio/Radio.svelte +48 -0
  276. package/dist/components/Radio/Radio.svelte.d.ts +15 -0
  277. package/dist/components/Radio/index.d.ts +4 -0
  278. package/dist/components/Radio/index.js +3 -0
  279. package/dist/components/Radio/types.d.ts +24 -0
  280. package/dist/components/Radio/types.js +1 -0
  281. package/dist/components/Rating/Rating.svelte +226 -0
  282. package/dist/components/Rating/Rating.svelte.d.ts +27 -0
  283. package/dist/components/Rating/index.d.ts +4 -0
  284. package/dist/components/Rating/index.js +3 -0
  285. package/dist/components/Rating/types.d.ts +43 -0
  286. package/dist/components/Rating/types.js +1 -0
  287. package/dist/components/Result/Result.svelte +58 -0
  288. package/dist/components/Result/Result.svelte.d.ts +14 -0
  289. package/dist/components/Result/index.d.ts +4 -0
  290. package/dist/components/Result/index.js +3 -0
  291. package/dist/components/Result/types.d.ts +20 -0
  292. package/dist/components/Result/types.js +1 -0
  293. package/dist/components/Segmented/Segmented.svelte +49 -0
  294. package/dist/components/Segmented/Segmented.svelte.d.ts +12 -0
  295. package/dist/components/Segmented/index.d.ts +4 -0
  296. package/dist/components/Segmented/index.js +3 -0
  297. package/dist/components/Segmented/types.d.ts +29 -0
  298. package/dist/components/Segmented/types.js +1 -0
  299. package/dist/components/Select/Select.svelte +215 -0
  300. package/dist/components/Select/Select.svelte.d.ts +4 -0
  301. package/dist/components/Select/index.d.ts +4 -0
  302. package/dist/components/Select/index.js +3 -0
  303. package/dist/components/Select/types.d.ts +41 -0
  304. package/dist/components/Select/types.js +1 -0
  305. package/dist/components/Skeleton/Skeleton.svelte +44 -0
  306. package/dist/components/Skeleton/Skeleton.svelte.d.ts +13 -0
  307. package/dist/components/Skeleton/SkeletonItem.svelte +14 -0
  308. package/dist/components/Skeleton/SkeletonItem.svelte.d.ts +8 -0
  309. package/dist/components/Skeleton/index.d.ts +5 -0
  310. package/dist/components/Skeleton/index.js +4 -0
  311. package/dist/components/Skeleton/types.d.ts +27 -0
  312. package/dist/components/Skeleton/types.js +1 -0
  313. package/dist/components/Slider/Slider.svelte +292 -0
  314. package/dist/components/Slider/Slider.svelte.d.ts +18 -0
  315. package/dist/components/Slider/index.d.ts +4 -0
  316. package/dist/components/Slider/index.js +3 -0
  317. package/dist/components/Slider/types.d.ts +28 -0
  318. package/dist/components/Slider/types.js +1 -0
  319. package/dist/components/Space/Space.svelte +59 -0
  320. package/dist/components/Space/Space.svelte.d.ts +18 -0
  321. package/dist/components/Space/index.d.ts +4 -0
  322. package/dist/components/Space/index.js +3 -0
  323. package/dist/components/Space/types.d.ts +32 -0
  324. package/dist/components/Space/types.js +1 -0
  325. package/dist/components/Statistic/Countdown.svelte +108 -0
  326. package/dist/components/Statistic/Countdown.svelte.d.ts +14 -0
  327. package/dist/components/Statistic/Statistic.svelte +63 -0
  328. package/dist/components/Statistic/Statistic.svelte.d.ts +15 -0
  329. package/dist/components/Statistic/index.d.ts +5 -0
  330. package/dist/components/Statistic/index.js +4 -0
  331. package/dist/components/Statistic/types.d.ts +41 -0
  332. package/dist/components/Statistic/types.js +1 -0
  333. package/dist/components/Steps/Step.svelte +58 -0
  334. package/dist/components/Steps/Step.svelte.d.ts +14 -0
  335. package/dist/components/Steps/Steps.svelte +60 -0
  336. package/dist/components/Steps/Steps.svelte.d.ts +15 -0
  337. package/dist/components/Steps/StepsContext.d.ts +12 -0
  338. package/dist/components/Steps/StepsContext.js +1 -0
  339. package/dist/components/Steps/index.d.ts +5 -0
  340. package/dist/components/Steps/index.js +4 -0
  341. package/dist/components/Steps/types.d.ts +41 -0
  342. package/dist/components/Steps/types.js +1 -0
  343. package/dist/components/Switch/Switch.svelte +122 -0
  344. package/dist/components/Switch/Switch.svelte.d.ts +22 -0
  345. package/dist/components/Switch/index.d.ts +4 -0
  346. package/dist/components/Switch/index.js +3 -0
  347. package/dist/components/Switch/styles/index.scss +1 -0
  348. package/dist/components/Switch/styles/switch.scss +194 -0
  349. package/dist/components/Switch/types.d.ts +37 -0
  350. package/dist/components/Switch/types.js +1 -0
  351. package/dist/components/Table/Table.svelte +575 -0
  352. package/dist/components/Table/Table.svelte.d.ts +11 -0
  353. package/dist/components/Table/index.d.ts +4 -0
  354. package/dist/components/Table/index.js +3 -0
  355. package/dist/components/Table/types.d.ts +180 -0
  356. package/dist/components/Table/types.js +1 -0
  357. package/dist/components/Tabs/TabPane.svelte +37 -0
  358. package/dist/components/Tabs/TabPane.svelte.d.ts +13 -0
  359. package/dist/components/Tabs/Tabs.svelte +251 -0
  360. package/dist/components/Tabs/Tabs.svelte.d.ts +13 -0
  361. package/dist/components/Tabs/TabsContext.d.ts +11 -0
  362. package/dist/components/Tabs/TabsContext.js +1 -0
  363. package/dist/components/Tabs/index.d.ts +3 -0
  364. package/dist/components/Tabs/index.js +2 -0
  365. package/dist/components/Tabs/types.d.ts +39 -0
  366. package/dist/components/Tabs/types.js +1 -0
  367. package/dist/components/Tag/Tag.svelte +39 -0
  368. package/dist/components/Tag/Tag.svelte.d.ts +13 -0
  369. package/dist/components/Tag/index.d.ts +4 -0
  370. package/dist/components/Tag/index.js +3 -0
  371. package/dist/components/Tag/types.d.ts +22 -0
  372. package/dist/components/Tag/types.js +1 -0
  373. package/dist/components/Textarea/Textarea.svelte +76 -0
  374. package/dist/components/Textarea/Textarea.svelte.d.ts +16 -0
  375. package/dist/components/Textarea/index.d.ts +4 -0
  376. package/dist/components/Textarea/index.js +3 -0
  377. package/dist/components/Textarea/types.d.ts +25 -0
  378. package/dist/components/Textarea/types.js +1 -0
  379. package/dist/components/TimePicker/TimePicker.svelte +297 -0
  380. package/dist/components/TimePicker/TimePicker.svelte.d.ts +14 -0
  381. package/dist/components/TimePicker/index.d.ts +3 -0
  382. package/dist/components/TimePicker/index.js +3 -0
  383. package/dist/components/Timeline/Timeline.svelte +18 -0
  384. package/dist/components/Timeline/Timeline.svelte.d.ts +8 -0
  385. package/dist/components/Timeline/TimelineItem.svelte +67 -0
  386. package/dist/components/Timeline/TimelineItem.svelte.d.ts +18 -0
  387. package/dist/components/Timeline/index.d.ts +5 -0
  388. package/dist/components/Timeline/index.js +4 -0
  389. package/dist/components/Timeline/types.d.ts +39 -0
  390. package/dist/components/Timeline/types.js +1 -0
  391. package/dist/components/Tooltip/OverflowTooltip.svelte +81 -0
  392. package/dist/components/Tooltip/OverflowTooltip.svelte.d.ts +4 -0
  393. package/dist/components/Tooltip/Tooltip.svelte +51 -0
  394. package/dist/components/Tooltip/Tooltip.svelte.d.ts +16 -0
  395. package/dist/components/Tooltip/index.d.ts +6 -0
  396. package/dist/components/Tooltip/index.js +5 -0
  397. package/dist/components/Tooltip/types.d.ts +51 -0
  398. package/dist/components/Tooltip/types.js +1 -0
  399. package/dist/components/Transfer/Transfer.svelte +145 -0
  400. package/dist/components/Transfer/Transfer.svelte.d.ts +14 -0
  401. package/dist/components/Transfer/index.d.ts +4 -0
  402. package/dist/components/Transfer/index.js +3 -0
  403. package/dist/components/Transfer/types.d.ts +16 -0
  404. package/dist/components/Transfer/types.js +1 -0
  405. package/dist/components/Tree/Tree.svelte +148 -0
  406. package/dist/components/Tree/Tree.svelte.d.ts +17 -0
  407. package/dist/components/Tree/TreeNode.svelte +133 -0
  408. package/dist/components/Tree/TreeNode.svelte.d.ts +19 -0
  409. package/dist/components/Tree/index.d.ts +4 -0
  410. package/dist/components/Tree/index.js +3 -0
  411. package/dist/components/Tree/types.d.ts +65 -0
  412. package/dist/components/Tree/types.js +1 -0
  413. package/dist/components/TreeSelect/TreeSelect.svelte +656 -0
  414. package/dist/components/TreeSelect/TreeSelect.svelte.d.ts +4 -0
  415. package/dist/components/TreeSelect/index.d.ts +4 -0
  416. package/dist/components/TreeSelect/index.js +3 -0
  417. package/dist/components/TreeSelect/types.d.ts +98 -0
  418. package/dist/components/TreeSelect/types.js +1 -0
  419. package/dist/components/Upload/Upload.svelte +323 -0
  420. package/dist/components/Upload/Upload.svelte.d.ts +28 -0
  421. package/dist/components/Upload/index.d.ts +4 -0
  422. package/dist/components/Upload/index.js +3 -0
  423. package/dist/components/Upload/types.d.ts +67 -0
  424. package/dist/components/Upload/types.js +1 -0
  425. package/dist/components/Watermark/Watermark.svelte +174 -0
  426. package/dist/components/Watermark/Watermark.svelte.d.ts +20 -0
  427. package/dist/components/Watermark/index.d.ts +4 -0
  428. package/dist/components/Watermark/index.js +3 -0
  429. package/dist/components/Watermark/types.d.ts +32 -0
  430. package/dist/components/Watermark/types.js +1 -0
  431. package/dist/index.d.ts +64 -0
  432. package/dist/index.js +64 -0
  433. package/dist/theme/index.css +9737 -0
  434. package/package.json +51 -0
@@ -0,0 +1,283 @@
1
+ <script lang="ts">
2
+ import Icon from '../Icon'
3
+ import { ChevronRight, ChevronDown } from 'lucide'
4
+ import { onMount, onDestroy } from 'svelte'
5
+ import { slide, fade, scale } from 'svelte/transition'
6
+ import type { MenuItem, MenuProps } from './types'
7
+
8
+ type Props = MenuProps
9
+
10
+ let {
11
+ items = [],
12
+ activeId,
13
+ mode = 'vertical',
14
+ collapsed = false,
15
+ accordion = false,
16
+ class: cls = '',
17
+ onselect,
18
+ ...attrs
19
+ }: Props = $props()
20
+
21
+ // 展开的子菜单 ID 集合
22
+ let openIds = $state(new Set<string | number>())
23
+ // 悬停的菜单项 ID 集合(用于水平模式和折叠模式的弹出菜单)
24
+ let hoverIds = $state(new Set<string | number>())
25
+ // 悬停关闭定时器
26
+ const closeTimers = new Map<string | number, ReturnType<typeof setTimeout>>()
27
+ // 菜单根元素引用
28
+ let menuRef: HTMLElement | null = $state(null)
29
+
30
+ // 获取菜单项 ID
31
+ const getItemId = (item: MenuItem): string | number => item.id ?? item.label
32
+
33
+ // 构建父级映射表
34
+ const buildParentMap = (list: MenuItem[]): Map<string | number, string | number> => {
35
+ const map = new Map<string | number, string | number>()
36
+ const walk = (items: MenuItem[], parentId?: string | number): void => {
37
+ for (const item of items) {
38
+ const id = getItemId(item)
39
+ if (parentId !== undefined) map.set(id, parentId)
40
+ if (item.children?.length) walk(item.children, id)
41
+ }
42
+ }
43
+ walk(list)
44
+ return map
45
+ }
46
+
47
+ // 获取祖先 ID 列表
48
+ const getAncestorIds = (id: string | number, parentMap: Map<string | number, string | number>): (string | number)[] => {
49
+ const result: (string | number)[] = []
50
+ let current: string | number | undefined = id
51
+ while (current !== undefined) {
52
+ const parent = parentMap.get(current)
53
+ if (parent === undefined) break
54
+ result.push(parent)
55
+ current = parent
56
+ }
57
+ return result
58
+ }
59
+
60
+ // 判断是否选中
61
+ const isActive = (item: MenuItem): boolean => activeId === getItemId(item)
62
+
63
+ // 判断是否展开(垂直模式)
64
+ const isOpen = (item: MenuItem): boolean => openIds.has(getItemId(item))
65
+
66
+ // 判断是否悬停(水平/折叠模式)
67
+ const isHover = (item: MenuItem): boolean => hoverIds.has(getItemId(item))
68
+
69
+ // 判断子级是否有选中项
70
+ const hasActiveChild = (item: MenuItem): boolean => {
71
+ if (!item.children) return false
72
+ return item.children.some((child) => isActive(child) || hasActiveChild(child))
73
+ }
74
+
75
+ // 判断是否应该显示子菜单
76
+ const shouldShowSubmenu = (item: MenuItem): boolean => {
77
+ if (!item.children?.length) return false
78
+ if (mode === 'horizontal' || collapsed) return isHover(item)
79
+ return isOpen(item)
80
+ }
81
+
82
+ // 切换子菜单展开/收起
83
+ const toggleSubmenu = (id: string | number): void => {
84
+ const next = new Set(openIds)
85
+ if (next.has(id)) {
86
+ next.delete(id)
87
+ } else {
88
+ if (accordion) next.clear()
89
+ next.add(id)
90
+ }
91
+ openIds = next
92
+ }
93
+
94
+ // 处理菜单项点击
95
+ const handleItemClick = (item: MenuItem, e: MouseEvent | KeyboardEvent): void => {
96
+ e.stopPropagation()
97
+ if (item.disabled) return
98
+
99
+ const id = getItemId(item)
100
+
101
+ if (item.children?.length) {
102
+ // 有子菜单:垂直非折叠模式下切换展开
103
+ if (mode === 'vertical' && !collapsed) {
104
+ toggleSubmenu(id)
105
+ }
106
+ } else {
107
+ // 无子菜单:触发回调,由外部控制选中状态
108
+ onselect?.(id, item)
109
+ // 水平或折叠模式下关闭弹出菜单
110
+ if (mode === 'horizontal' || collapsed) {
111
+ hoverIds = new Set()
112
+ }
113
+ }
114
+ }
115
+
116
+ // 处理箭头点击
117
+ const handleArrowClick = (item: MenuItem, e: MouseEvent | KeyboardEvent): void => {
118
+ e.stopPropagation()
119
+ if (item.disabled || !item.children?.length) return
120
+ if (mode !== 'vertical' || collapsed) return
121
+ toggleSubmenu(getItemId(item))
122
+ }
123
+
124
+ // 处理鼠标进入
125
+ const handleMouseEnter = (item: MenuItem): void => {
126
+ if (!(mode === 'horizontal' || collapsed) || !item.children?.length) return
127
+ const id = getItemId(item)
128
+ const timer = closeTimers.get(id)
129
+ if (timer) {
130
+ clearTimeout(timer)
131
+ closeTimers.delete(id)
132
+ }
133
+ hoverIds = new Set(hoverIds).add(id)
134
+ }
135
+
136
+ // 处理鼠标离开
137
+ const handleMouseLeave = (item: MenuItem): void => {
138
+ if (!(mode === 'horizontal' || collapsed) || !item.children?.length) return
139
+ const id = getItemId(item)
140
+ const timer = setTimeout(() => {
141
+ const next = new Set(hoverIds)
142
+ next.delete(id)
143
+ hoverIds = next
144
+ closeTimers.delete(id)
145
+ }, 150)
146
+ closeTimers.set(id, timer)
147
+ }
148
+
149
+ // 处理键盘事件
150
+ const handleKeydown = (item: MenuItem, e: KeyboardEvent): void => {
151
+ if (e.key === 'Enter' || e.key === ' ') {
152
+ e.preventDefault()
153
+ handleItemClick(item, e)
154
+ }
155
+ }
156
+
157
+ // 处理点击外部
158
+ const handleClickOutside = (e: MouseEvent): void => {
159
+ if (mode === 'vertical' && !collapsed) return
160
+ if (menuRef && !menuRef.contains(e.target as Node)) {
161
+ hoverIds = new Set()
162
+ }
163
+ }
164
+
165
+ // 用于追踪上一次处理过的 activeId,避免重复处理
166
+ let lastProcessedActiveId: string | number | undefined = undefined
167
+
168
+ // 初始化展开状态
169
+ const expandToActive = () => {
170
+ if (mode !== 'vertical' || collapsed || activeId === undefined) return
171
+ if (activeId === lastProcessedActiveId) return
172
+ lastProcessedActiveId = activeId
173
+
174
+ const parentMap = buildParentMap(items)
175
+ const ancestors = getAncestorIds(activeId, parentMap)
176
+ if (ancestors.length > 0) {
177
+ // 合并现有展开项和新的祖先项
178
+ const next = accordion ? new Set(ancestors) : new Set([...openIds, ...ancestors])
179
+ openIds = next
180
+ }
181
+ }
182
+
183
+ onMount(() => {
184
+ expandToActive()
185
+ document.addEventListener('click', handleClickOutside)
186
+ })
187
+
188
+ onDestroy(() => {
189
+ document.removeEventListener('click', handleClickOutside)
190
+ closeTimers.forEach((t) => clearTimeout(t))
191
+ })
192
+
193
+ // CSS 类
194
+ const classes = $derived(
195
+ `lm-menu lm-menu--${mode}${collapsed ? ' is-collapsed' : ''}${cls ? ` ${cls}` : ''}`
196
+ )
197
+
198
+ // 箭头图标
199
+ const ArrowIcon = $derived(mode === 'horizontal' ? ChevronDown : ChevronRight)
200
+ </script>
201
+
202
+ {#snippet menuItem(item: MenuItem, depth: number = 0)}
203
+ {@const hasChildren = !!item.children?.length}
204
+ {@const showSubmenu = shouldShowSubmenu(item)}
205
+ {@const iconSize = depth === 0 ? 18 : 16}
206
+ <li
207
+ class="lm-menu__item"
208
+ class:is-active={isActive(item)}
209
+ class:has-active-child={hasActiveChild(item)}
210
+ class:is-disabled={item.disabled}
211
+ class:has-submenu={hasChildren}
212
+ class:is-open={isOpen(item) || isHover(item)}
213
+ onmouseenter={() => handleMouseEnter(item)}
214
+ onmouseleave={() => handleMouseLeave(item)}
215
+ >
216
+ <div
217
+ class="lm-menu__item-content"
218
+ role="menuitem"
219
+ tabindex={item.disabled ? -1 : 0}
220
+ aria-haspopup={hasChildren ? 'true' : undefined}
221
+ aria-expanded={hasChildren ? showSubmenu : undefined}
222
+ onclick={(e: MouseEvent) => handleItemClick(item, e)}
223
+ onkeydown={(e: KeyboardEvent) => handleKeydown(item, e)}
224
+ >
225
+ {#if item.icon}
226
+ <span class="lm-menu__item-icon">
227
+ <Icon icon={item.icon} size={iconSize} />
228
+ </span>
229
+ {/if}
230
+ <span class="lm-menu__item-label">{item.label}</span>
231
+ {#if hasChildren}
232
+ <button
233
+ type="button"
234
+ class="lm-menu__item-arrow"
235
+ class:is-open={showSubmenu}
236
+ tabindex={mode === 'vertical' && !collapsed ? 0 : -1}
237
+ aria-label="Toggle submenu"
238
+ onclick={(e: MouseEvent) => handleArrowClick(item, e)}
239
+ >
240
+ <Icon icon={ArrowIcon} size={14} />
241
+ </button>
242
+ {/if}
243
+ </div>
244
+
245
+ {#if hasChildren && showSubmenu}
246
+ {#if mode === 'horizontal' || collapsed}
247
+ <ul
248
+ class="lm-menu__popup{depth > 0 ? ' lm-menu__popup--nested' : ''}"
249
+ role="menu"
250
+ transition:scale|global={{ duration: 150, start: 0.95, opacity: 0 }}
251
+ >
252
+ {#each item.children as child (getItemId(child))}
253
+ {@render menuItem(child, depth + 1)}
254
+ {/each}
255
+ </ul>
256
+ {:else}
257
+ <ul
258
+ class="lm-menu__submenu"
259
+ role="menu"
260
+ transition:slide|global={{ duration: 200 }}
261
+ >
262
+ {#each item.children as child (getItemId(child))}
263
+ {@render menuItem(child, depth + 1)}
264
+ {/each}
265
+ </ul>
266
+ {/if}
267
+ {/if}
268
+ </li>
269
+ {/snippet}
270
+
271
+ <nav bind:this={menuRef} class={classes} role="menu" {...attrs}>
272
+ <ul class="lm-menu__list" role="menubar">
273
+ {#each items as item (getItemId(item))}
274
+ {#if item.group && (items.indexOf(item) === 0 || items[items.indexOf(item) - 1]?.group !== item.group)}
275
+ <li class="lm-menu__group" role="presentation">
276
+ {#if !collapsed}{item.group}{/if}
277
+ </li>
278
+ {/if}
279
+ {@render menuItem(item, 0)}
280
+ {/each}
281
+ </ul>
282
+ </nav>
283
+
@@ -0,0 +1,4 @@
1
+ import type { MenuProps } from './types';
2
+ declare const Menu: import("svelte").Component<MenuProps, {}, "">;
3
+ type Menu = ReturnType<typeof Menu>;
4
+ export default Menu;
@@ -0,0 +1,4 @@
1
+ import Menu from './Menu.svelte';
2
+ export { Menu };
3
+ export type { MenuProps, MenuItem } from './types';
4
+ export default Menu;
@@ -0,0 +1,3 @@
1
+ import Menu from './Menu.svelte';
2
+ export { Menu };
3
+ export default Menu;
@@ -0,0 +1,18 @@
1
+ import type { IconNode } from 'lucide';
2
+ export interface MenuItem {
3
+ id?: string | number;
4
+ label: string;
5
+ icon?: IconNode;
6
+ children?: MenuItem[];
7
+ disabled?: boolean;
8
+ group?: string;
9
+ }
10
+ export interface MenuProps {
11
+ items?: MenuItem[];
12
+ activeId?: string | number;
13
+ mode?: 'vertical' | 'horizontal';
14
+ collapsed?: boolean;
15
+ accordion?: boolean;
16
+ class?: string;
17
+ onselect?: (id: string | number, item: MenuItem) => void;
18
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ <script lang="ts">
2
+ import Icon from '../Icon'
3
+ import { CheckCircle, AlertTriangle, XCircle, Info, X } from 'lucide'
4
+ import type { IconNode } from 'lucide'
5
+ import type { MessageItem, MessageType, CloseMessageFn } from './types'
6
+
7
+ interface Props {
8
+ messages: MessageItem[]
9
+ onClose: CloseMessageFn
10
+ }
11
+
12
+ let { messages = $bindable([]), onClose }: Props = $props()
13
+
14
+ export const setMessages = (next: MessageItem[]): void => {
15
+ messages = next
16
+ }
17
+
18
+ /** 图标映射(静态,避免重复创建) */
19
+ const ICON_MAP: Record<MessageType, IconNode> = {
20
+ success: CheckCircle,
21
+ warning: AlertTriangle,
22
+ error: XCircle,
23
+ info: Info,
24
+ }
25
+
26
+ /** 根据消息类型获取对应图标 */
27
+ const getIcon = (type?: MessageType): IconNode => ICON_MAP[type || 'info']
28
+
29
+ /** 计算每个消息的偏移量 */
30
+ const getOffset = (index: number): number => {
31
+ const baseOffset = messages[0]?.offset ?? 20
32
+ let offset = baseOffset
33
+ for (let i = 0; i < index; i++) {
34
+ if (messages[i]?.visible) {
35
+ offset += 60
36
+ }
37
+ }
38
+ return offset
39
+ }
40
+ </script>
41
+
42
+ {#each messages as message, index (message.id)}
43
+ {#if message.visible}
44
+ <div class="lm-message lm-message--{message.type}" class:is-center={message.center} class:is-closable={message.showClose} style="top: {getOffset(index)}px;">
45
+ <Icon icon={getIcon(message.type)} size={16} class="lm-message__icon" />
46
+ <div class="lm-message__content">
47
+ {message.message}
48
+ </div>
49
+ {#if message.showClose}
50
+ <button type="button" class="lm-message__close" onclick={() => onClose(message.id)} aria-label="Close">
51
+ <Icon icon={X} size={14} />
52
+ </button>
53
+ {/if}
54
+ </div>
55
+ {/if}
56
+ {/each}
@@ -0,0 +1,10 @@
1
+ import type { MessageItem, CloseMessageFn } from './types';
2
+ interface Props {
3
+ messages: MessageItem[];
4
+ onClose: CloseMessageFn;
5
+ }
6
+ declare const MessageBox: import("svelte").Component<Props, {
7
+ setMessages: (next: MessageItem[]) => void;
8
+ }, "messages">;
9
+ type MessageBox = ReturnType<typeof MessageBox>;
10
+ export default MessageBox;
@@ -0,0 +1,15 @@
1
+ import type { MessageOptions, MessageItem, MessageType, CloseMessageFn } from './types';
2
+ /** 移除消息 */
3
+ declare const removeMessage: CloseMessageFn;
4
+ /** Message 主函数 */
5
+ declare const Message: {
6
+ (options: MessageOptions | string): void;
7
+ success(message: string, options?: Omit<MessageOptions, "message" | "type">): void;
8
+ warning(message: string, options?: Omit<MessageOptions, "message" | "type">): void;
9
+ error(message: string, options?: Omit<MessageOptions, "message" | "type">): void;
10
+ info(message: string, options?: Omit<MessageOptions, "message" | "type">): void;
11
+ closeAll(): void;
12
+ };
13
+ export { Message, removeMessage };
14
+ export type { MessageOptions, MessageItem, MessageType, CloseMessageFn };
15
+ export default Message;
@@ -0,0 +1,102 @@
1
+ import { mount, unmount } from 'svelte';
2
+ import MessageBox from './MessageBox.svelte';
3
+ /** 消息队列 */
4
+ let messages = [];
5
+ /** 消息容器 DOM 元素 */
6
+ let messageContainer = null;
7
+ /** MessageBox 组件实例(mount() 返回 exports) */
8
+ let messageBoxInstance = null;
9
+ /** 消息 ID 计数器 */
10
+ let idCounter = 0;
11
+ /** 更新消息列表 */
12
+ const updateMessages = (newMessages) => {
13
+ messages = newMessages;
14
+ if (messageBoxInstance) {
15
+ messageBoxInstance.setMessages?.(messages);
16
+ }
17
+ };
18
+ /** 移除消息 */
19
+ const removeMessage = (id) => {
20
+ const index = messages.findIndex((m) => m.id === id);
21
+ if (index > -1) {
22
+ const message = messages[index];
23
+ message.visible = false;
24
+ updateMessages([...messages]);
25
+ setTimeout(() => {
26
+ updateMessages(messages.filter((m) => m.id !== id));
27
+ message.onClose?.();
28
+ // 如果没有消息了,清理实例
29
+ if (messages.length === 0 && messageBoxInstance && messageContainer) {
30
+ unmount(messageBoxInstance);
31
+ document.body.removeChild(messageContainer);
32
+ messageContainer = null;
33
+ messageBoxInstance = null;
34
+ }
35
+ }, 300);
36
+ }
37
+ };
38
+ /** 创建容器和实例 */
39
+ const ensureInstance = () => {
40
+ if (!messageContainer) {
41
+ messageContainer = document.createElement('div');
42
+ messageContainer.className = 'lm-message-container';
43
+ document.body.appendChild(messageContainer);
44
+ messageBoxInstance = mount(MessageBox, {
45
+ target: messageContainer,
46
+ props: {
47
+ messages,
48
+ onClose: removeMessage,
49
+ },
50
+ });
51
+ }
52
+ };
53
+ /** 添加消息 */
54
+ const addMessage = (options) => {
55
+ ensureInstance();
56
+ const id = ++idCounter;
57
+ const item = {
58
+ id,
59
+ type: 'info',
60
+ duration: 3000,
61
+ showClose: false,
62
+ center: false,
63
+ offset: 20,
64
+ visible: true,
65
+ ...options,
66
+ };
67
+ updateMessages([...messages, item]);
68
+ // 自动关闭
69
+ if (item.duration && item.duration > 0) {
70
+ setTimeout(() => {
71
+ removeMessage(id);
72
+ }, item.duration);
73
+ }
74
+ };
75
+ /** Message 主函数 */
76
+ const Message = (options) => {
77
+ const opts = typeof options === 'string' ? { message: options } : options;
78
+ addMessage(opts);
79
+ };
80
+ /** 显示成功消息 */
81
+ Message.success = (message, options) => {
82
+ addMessage({ ...options, message, type: 'success' });
83
+ };
84
+ /** 显示警告消息 */
85
+ Message.warning = (message, options) => {
86
+ addMessage({ ...options, message, type: 'warning' });
87
+ };
88
+ /** 显示错误消息 */
89
+ Message.error = (message, options) => {
90
+ addMessage({ ...options, message, type: 'error' });
91
+ };
92
+ /** 显示信息消息 */
93
+ Message.info = (message, options) => {
94
+ addMessage({ ...options, message, type: 'info' });
95
+ };
96
+ /** 关闭所有消息 */
97
+ Message.closeAll = () => {
98
+ messages.forEach((m) => removeMessage(m.id));
99
+ };
100
+ // 导出
101
+ export { Message, removeMessage };
102
+ export default Message;
@@ -0,0 +1,28 @@
1
+ /** 消息类型 */
2
+ export type MessageType = 'success' | 'warning' | 'error' | 'info';
3
+ /** 消息配置选项 */
4
+ export interface MessageOptions {
5
+ /** 消息内容 */
6
+ message: string;
7
+ /** 消息类型 */
8
+ type?: MessageType;
9
+ /** 显示时间(毫秒),设为 0 则不会自动关闭 */
10
+ duration?: number;
11
+ /** 是否显示关闭按钮 */
12
+ showClose?: boolean;
13
+ /** 文字是否居中 */
14
+ center?: boolean;
15
+ /** 距离顶部的偏移量 */
16
+ offset?: number;
17
+ /** 关闭时的回调函数 */
18
+ onClose?: () => void;
19
+ }
20
+ /** 消息项(内部使用) */
21
+ export interface MessageItem extends MessageOptions {
22
+ /** 消息唯一标识 */
23
+ id: number;
24
+ /** 是否可见 */
25
+ visible: boolean;
26
+ }
27
+ /** 关闭消息的回调函数类型 */
28
+ export type CloseMessageFn = (id: number) => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,85 @@
1
+ <script lang="ts">
2
+ import Dialog from '../../Dialog/src'
3
+ import Icon from '../Icon'
4
+ import { CheckCircle, AlertTriangle, XCircle, Info, X } from 'lucide'
5
+ import type { IconNode } from 'lucide'
6
+ import type { MessageBoxOptions, MessageBoxType } from './types'
7
+
8
+ interface Props {
9
+ zIndex?: number
10
+ showClose?: boolean
11
+ }
12
+
13
+ let { zIndex = 1000, showClose = false }: Props = $props()
14
+
15
+ let visible = $state(false)
16
+ let options = $state<MessageBoxOptions | null>(null)
17
+
18
+ const ICON_MAP: Record<MessageBoxType, IconNode> = {
19
+ success: CheckCircle,
20
+ warning: AlertTriangle,
21
+ error: XCircle,
22
+ info: Info,
23
+ }
24
+
25
+ const getIcon = (type?: MessageBoxType): IconNode => ICON_MAP[type || 'info']
26
+
27
+ const show = (opts: MessageBoxOptions): void => {
28
+ options = opts
29
+ visible = true
30
+ }
31
+
32
+ const hide = (): void => {
33
+ visible = false
34
+ options = null
35
+ }
36
+
37
+ const handleOk = (): void => {
38
+ options?.onOk?.()
39
+ hide()
40
+ }
41
+
42
+ const handleCancel = (): void => {
43
+ options?.onCancel?.()
44
+ hide()
45
+ }
46
+
47
+ $effect(() => {
48
+ const handler = (event: CustomEvent<MessageBoxOptions>): void => {
49
+ show(event.detail)
50
+ }
51
+ window.addEventListener('lumen-messagebox', handler as EventListener)
52
+ return () => window.removeEventListener('lumen-messagebox', handler as EventListener)
53
+ })
54
+ </script>
55
+
56
+ {#if visible && options}
57
+ <div class="lm-messagebox__wrapper" style="z-index: {zIndex};">
58
+ <Dialog bind:visible class="lm-messagebox" {showClose}>
59
+ <div class="lm-messagebox__header">
60
+ {#if options.type}
61
+ <Icon icon={getIcon(options.type)} class="lm-messagebox__icon" />
62
+ {/if}
63
+ {#if options.title}
64
+ <h3 class="lm-messagebox__title">{options.title}</h3>
65
+ {/if}
66
+ <button type="button" class="lm-messagebox__close" onclick={hide} aria-label="Close">
67
+ <Icon icon={X} size={18} />
68
+ </button>
69
+ </div>
70
+ <div class="lm-messagebox__body">
71
+ {options.content}
72
+ </div>
73
+ <div class="lm-messagebox__footer">
74
+ {#if options.cancelText !== undefined}
75
+ <button class="lm-button lm-button--default" onclick={handleCancel}>
76
+ {options.cancelText || 'Cancel'}
77
+ </button>
78
+ {/if}
79
+ <button class="lm-button lm-button--primary" onclick={handleOk}>
80
+ {options.okText || 'OK'}
81
+ </button>
82
+ </div>
83
+ </Dialog>
84
+ </div>
85
+ {/if}
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ zIndex?: number;
3
+ showClose?: boolean;
4
+ }
5
+ declare const MessageBox: import("svelte").Component<Props, {}, "">;
6
+ type MessageBox = ReturnType<typeof MessageBox>;
7
+ export default MessageBox;
@@ -0,0 +1,4 @@
1
+ import MessageBox from './MessageBox.svelte';
2
+ export { MessageBox };
3
+ export type { MessageBoxOptions, MessageBoxType, CloseMessageBoxFn } from './types';
4
+ export default MessageBox;
@@ -0,0 +1,3 @@
1
+ import MessageBox from './MessageBox.svelte';
2
+ export { MessageBox };
3
+ export default MessageBox;
@@ -0,0 +1,21 @@
1
+ /** 消息框类型 */
2
+ export type MessageBoxType = 'info' | 'success' | 'warning' | 'error';
3
+ /** 消息框配置选项 */
4
+ export interface MessageBoxOptions {
5
+ /** 标题 */
6
+ title?: string;
7
+ /** 内容 */
8
+ content: string;
9
+ /** 类型 */
10
+ type?: MessageBoxType;
11
+ /** 确认按钮文字 */
12
+ okText?: string;
13
+ /** 取消按钮文字 */
14
+ cancelText?: string;
15
+ /** 确认回调 */
16
+ onOk?: () => void;
17
+ /** 取消回调 */
18
+ onCancel?: () => void;
19
+ }
20
+ /** 关闭消息框的回调函数类型 */
21
+ export type CloseMessageBoxFn = () => void;
@@ -0,0 +1 @@
1
+ export {};