luna-plus 0.0.5

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 (459) hide show
  1. package/README.md +242 -0
  2. package/dist/Affix/Affix.svelte +97 -0
  3. package/dist/Affix/Affix.svelte.d.ts +14 -0
  4. package/dist/Affix/index.d.ts +4 -0
  5. package/dist/Affix/index.js +3 -0
  6. package/dist/Affix/types.d.ts +11 -0
  7. package/dist/Affix/types.js +1 -0
  8. package/dist/Alert/Alert.svelte +97 -0
  9. package/dist/Alert/Alert.svelte.d.ts +16 -0
  10. package/dist/Alert/index.d.ts +4 -0
  11. package/dist/Alert/index.js +3 -0
  12. package/dist/Alert/types.d.ts +23 -0
  13. package/dist/Alert/types.js +1 -0
  14. package/dist/Autocomplete/Autocomplete.svelte +163 -0
  15. package/dist/Autocomplete/Autocomplete.svelte.d.ts +20 -0
  16. package/dist/Autocomplete/index.d.ts +3 -0
  17. package/dist/Autocomplete/index.js +3 -0
  18. package/dist/Avatar/Avatar.svelte +97 -0
  19. package/dist/Avatar/Avatar.svelte.d.ts +14 -0
  20. package/dist/Avatar/index.d.ts +4 -0
  21. package/dist/Avatar/index.js +3 -0
  22. package/dist/Avatar/types.d.ts +26 -0
  23. package/dist/Avatar/types.js +1 -0
  24. package/dist/Backtop/Backtop.svelte +60 -0
  25. package/dist/Backtop/Backtop.svelte.d.ts +13 -0
  26. package/dist/Backtop/index.d.ts +4 -0
  27. package/dist/Backtop/index.js +3 -0
  28. package/dist/Backtop/types.d.ts +18 -0
  29. package/dist/Backtop/types.js +1 -0
  30. package/dist/Badge/Badge.svelte +68 -0
  31. package/dist/Badge/Badge.svelte.d.ts +13 -0
  32. package/dist/Badge/index.d.ts +4 -0
  33. package/dist/Badge/index.js +3 -0
  34. package/dist/Badge/types.d.ts +20 -0
  35. package/dist/Badge/types.js +1 -0
  36. package/dist/Breadcrumb/Breadcrumb.svelte +66 -0
  37. package/dist/Breadcrumb/Breadcrumb.svelte.d.ts +6 -0
  38. package/dist/Breadcrumb/BreadcrumbContext.d.ts +4 -0
  39. package/dist/Breadcrumb/BreadcrumbContext.js +1 -0
  40. package/dist/Breadcrumb/BreadcrumbItem.svelte +56 -0
  41. package/dist/Breadcrumb/BreadcrumbItem.svelte.d.ts +12 -0
  42. package/dist/Breadcrumb/index.d.ts +4 -0
  43. package/dist/Breadcrumb/index.js +3 -0
  44. package/dist/Breadcrumb/types.d.ts +10 -0
  45. package/dist/Breadcrumb/types.js +1 -0
  46. package/dist/Button/Button.svelte +61 -0
  47. package/dist/Button/Button.svelte.d.ts +4 -0
  48. package/dist/Button/index.d.ts +4 -0
  49. package/dist/Button/index.js +3 -0
  50. package/dist/Button/types.d.ts +42 -0
  51. package/dist/Button/types.js +1 -0
  52. package/dist/Calendar/Calendar.svelte +115 -0
  53. package/dist/Calendar/Calendar.svelte.d.ts +7 -0
  54. package/dist/Calendar/index.d.ts +3 -0
  55. package/dist/Calendar/index.js +3 -0
  56. package/dist/Card/Card.svelte +59 -0
  57. package/dist/Card/Card.svelte.d.ts +4 -0
  58. package/dist/Card/index.d.ts +4 -0
  59. package/dist/Card/index.js +4 -0
  60. package/dist/Card/types.d.ts +26 -0
  61. package/dist/Card/types.js +1 -0
  62. package/dist/Carousel/Carousel.svelte +206 -0
  63. package/dist/Carousel/Carousel.svelte.d.ts +19 -0
  64. package/dist/Carousel/CarouselContext.d.ts +6 -0
  65. package/dist/Carousel/CarouselContext.js +1 -0
  66. package/dist/Carousel/CarouselItem.svelte +42 -0
  67. package/dist/Carousel/CarouselItem.svelte.d.ts +11 -0
  68. package/dist/Carousel/index.d.ts +5 -0
  69. package/dist/Carousel/index.js +4 -0
  70. package/dist/Carousel/types.d.ts +43 -0
  71. package/dist/Carousel/types.js +1 -0
  72. package/dist/Cascader/Cascader.svelte +219 -0
  73. package/dist/Cascader/Cascader.svelte.d.ts +4 -0
  74. package/dist/Cascader/index.d.ts +4 -0
  75. package/dist/Cascader/index.js +3 -0
  76. package/dist/Cascader/types.d.ts +19 -0
  77. package/dist/Cascader/types.js +1 -0
  78. package/dist/Checkbox/Checkbox.svelte +55 -0
  79. package/dist/Checkbox/Checkbox.svelte.d.ts +15 -0
  80. package/dist/Checkbox/CheckboxGroup.svelte +43 -0
  81. package/dist/Checkbox/CheckboxGroup.svelte.d.ts +12 -0
  82. package/dist/Checkbox/index.d.ts +4 -0
  83. package/dist/Checkbox/index.js +3 -0
  84. package/dist/Checkbox/types.d.ts +24 -0
  85. package/dist/Checkbox/types.js +1 -0
  86. package/dist/Collapse/Collapse.svelte +62 -0
  87. package/dist/Collapse/Collapse.svelte.d.ts +11 -0
  88. package/dist/Collapse/CollapseContext.d.ts +6 -0
  89. package/dist/Collapse/CollapseContext.js +1 -0
  90. package/dist/Collapse/CollapseItem.svelte +175 -0
  91. package/dist/Collapse/CollapseItem.svelte.d.ts +11 -0
  92. package/dist/Collapse/index.d.ts +5 -0
  93. package/dist/Collapse/index.js +4 -0
  94. package/dist/Collapse/types.d.ts +27 -0
  95. package/dist/Collapse/types.js +1 -0
  96. package/dist/ColorPicker/ColorPicker.svelte +157 -0
  97. package/dist/ColorPicker/ColorPicker.svelte.d.ts +12 -0
  98. package/dist/ColorPicker/index.d.ts +4 -0
  99. package/dist/ColorPicker/index.js +3 -0
  100. package/dist/ColorPicker/types.d.ts +17 -0
  101. package/dist/ColorPicker/types.js +1 -0
  102. package/dist/Container/Aside.svelte +20 -0
  103. package/dist/Container/Aside.svelte.d.ts +9 -0
  104. package/dist/Container/Container.svelte +19 -0
  105. package/dist/Container/Container.svelte.d.ts +9 -0
  106. package/dist/Container/Footer.svelte +20 -0
  107. package/dist/Container/Footer.svelte.d.ts +9 -0
  108. package/dist/Container/Header.svelte +20 -0
  109. package/dist/Container/Header.svelte.d.ts +9 -0
  110. package/dist/Container/Main.svelte +18 -0
  111. package/dist/Container/Main.svelte.d.ts +8 -0
  112. package/dist/Container/index.d.ts +14 -0
  113. package/dist/Container/index.js +13 -0
  114. package/dist/Container/types.d.ts +46 -0
  115. package/dist/Container/types.js +1 -0
  116. package/dist/DatePicker/DatePicker.svelte +278 -0
  117. package/dist/DatePicker/DatePicker.svelte.d.ts +17 -0
  118. package/dist/DatePicker/index.d.ts +4 -0
  119. package/dist/DatePicker/index.js +3 -0
  120. package/dist/DatePicker/types.d.ts +29 -0
  121. package/dist/DatePicker/types.js +1 -0
  122. package/dist/DateTimePicker/DateTimePicker.svelte +500 -0
  123. package/dist/DateTimePicker/DateTimePicker.svelte.d.ts +4 -0
  124. package/dist/DateTimePicker/index.d.ts +4 -0
  125. package/dist/DateTimePicker/index.js +3 -0
  126. package/dist/DateTimePicker/types.d.ts +21 -0
  127. package/dist/DateTimePicker/types.js +1 -0
  128. package/dist/Descriptions/Descriptions.svelte +69 -0
  129. package/dist/Descriptions/Descriptions.svelte.d.ts +15 -0
  130. package/dist/Descriptions/DescriptionsContext.d.ts +8 -0
  131. package/dist/Descriptions/DescriptionsContext.js +1 -0
  132. package/dist/Descriptions/DescriptionsItem.svelte +59 -0
  133. package/dist/Descriptions/DescriptionsItem.svelte.d.ts +13 -0
  134. package/dist/Descriptions/index.d.ts +5 -0
  135. package/dist/Descriptions/index.js +4 -0
  136. package/dist/Descriptions/types.d.ts +41 -0
  137. package/dist/Descriptions/types.js +1 -0
  138. package/dist/Dialog/Dialog.svelte +151 -0
  139. package/dist/Dialog/Dialog.svelte.d.ts +20 -0
  140. package/dist/Dialog/index.d.ts +4 -0
  141. package/dist/Dialog/index.js +3 -0
  142. package/dist/Dialog/types.d.ts +32 -0
  143. package/dist/Dialog/types.js +1 -0
  144. package/dist/Divider/Divider.svelte +47 -0
  145. package/dist/Divider/Divider.svelte.d.ts +11 -0
  146. package/dist/Divider/index.d.ts +4 -0
  147. package/dist/Divider/index.js +3 -0
  148. package/dist/Divider/types.d.ts +20 -0
  149. package/dist/Divider/types.js +1 -0
  150. package/dist/Drawer/Drawer.svelte +141 -0
  151. package/dist/Drawer/Drawer.svelte.d.ts +26 -0
  152. package/dist/Drawer/index.d.ts +4 -0
  153. package/dist/Drawer/index.js +3 -0
  154. package/dist/Drawer/types.d.ts +40 -0
  155. package/dist/Drawer/types.js +1 -0
  156. package/dist/Dropdown/Dropdown.svelte +222 -0
  157. package/dist/Dropdown/Dropdown.svelte.d.ts +4 -0
  158. package/dist/Dropdown/DropdownContext.d.ts +7 -0
  159. package/dist/Dropdown/DropdownContext.js +8 -0
  160. package/dist/Dropdown/DropdownItem.svelte +51 -0
  161. package/dist/Dropdown/DropdownItem.svelte.d.ts +4 -0
  162. package/dist/Dropdown/DropdownMenu.svelte +13 -0
  163. package/dist/Dropdown/DropdownMenu.svelte.d.ts +4 -0
  164. package/dist/Dropdown/index.d.ts +5 -0
  165. package/dist/Dropdown/index.js +5 -0
  166. package/dist/Dropdown/types.d.ts +68 -0
  167. package/dist/Dropdown/types.js +1 -0
  168. package/dist/Empty/Empty.svelte +40 -0
  169. package/dist/Empty/Empty.svelte.d.ts +11 -0
  170. package/dist/Empty/index.d.ts +4 -0
  171. package/dist/Empty/index.js +3 -0
  172. package/dist/Empty/types.d.ts +14 -0
  173. package/dist/Empty/types.js +1 -0
  174. package/dist/Form/Form.svelte +88 -0
  175. package/dist/Form/Form.svelte.d.ts +15 -0
  176. package/dist/Form/FormContext.d.ts +19 -0
  177. package/dist/Form/FormContext.js +1 -0
  178. package/dist/Form/FormInternals.d.ts +40 -0
  179. package/dist/Form/FormInternals.js +152 -0
  180. package/dist/Form/FormItem.svelte +191 -0
  181. package/dist/Form/FormItem.svelte.d.ts +8 -0
  182. package/dist/Form/index.d.ts +3 -0
  183. package/dist/Form/index.js +2 -0
  184. package/dist/Form/types.d.ts +61 -0
  185. package/dist/Form/types.js +1 -0
  186. package/dist/Icon/Icon.svelte +59 -0
  187. package/dist/Icon/Icon.svelte.d.ts +11 -0
  188. package/dist/Icon/index.d.ts +5 -0
  189. package/dist/Icon/index.js +15 -0
  190. package/dist/Icon/types.d.ts +14 -0
  191. package/dist/Icon/types.js +1 -0
  192. package/dist/Image/Image.svelte +134 -0
  193. package/dist/Image/Image.svelte.d.ts +20 -0
  194. package/dist/Image/index.d.ts +4 -0
  195. package/dist/Image/index.js +3 -0
  196. package/dist/Image/types.d.ts +32 -0
  197. package/dist/Image/types.js +1 -0
  198. package/dist/Input/Input.svelte +177 -0
  199. package/dist/Input/Input.svelte.d.ts +4 -0
  200. package/dist/Input/index.d.ts +4 -0
  201. package/dist/Input/index.js +3 -0
  202. package/dist/Input/types.d.ts +72 -0
  203. package/dist/Input/types.js +1 -0
  204. package/dist/InputNumber/InputNumber.svelte +110 -0
  205. package/dist/InputNumber/InputNumber.svelte.d.ts +18 -0
  206. package/dist/InputNumber/index.d.ts +4 -0
  207. package/dist/InputNumber/index.js +3 -0
  208. package/dist/InputNumber/types.d.ts +29 -0
  209. package/dist/InputNumber/types.js +1 -0
  210. package/dist/InputTag/InputTag.svelte +160 -0
  211. package/dist/InputTag/InputTag.svelte.d.ts +4 -0
  212. package/dist/InputTag/index.d.ts +4 -0
  213. package/dist/InputTag/index.js +3 -0
  214. package/dist/InputTag/types.d.ts +21 -0
  215. package/dist/InputTag/types.js +1 -0
  216. package/dist/Link/Link.svelte +38 -0
  217. package/dist/Link/Link.svelte.d.ts +15 -0
  218. package/dist/Link/index.d.ts +4 -0
  219. package/dist/Link/index.js +3 -0
  220. package/dist/Link/types.d.ts +26 -0
  221. package/dist/Link/types.js +1 -0
  222. package/dist/Loading/Loading.svelte +56 -0
  223. package/dist/Loading/Loading.svelte.d.ts +14 -0
  224. package/dist/Loading/index.d.ts +4 -0
  225. package/dist/Loading/index.js +3 -0
  226. package/dist/Loading/types.d.ts +20 -0
  227. package/dist/Loading/types.js +1 -0
  228. package/dist/Menu/Menu.svelte +301 -0
  229. package/dist/Menu/Menu.svelte.d.ts +4 -0
  230. package/dist/Menu/types.d.ts +35 -0
  231. package/dist/Menu/types.js +1 -0
  232. package/dist/Message/Message.svelte +60 -0
  233. package/dist/Message/Message.svelte.d.ts +13 -0
  234. package/dist/Message/MessageQueue.svelte +65 -0
  235. package/dist/Message/MessageQueue.svelte.d.ts +10 -0
  236. package/dist/Message/index.d.ts +4 -0
  237. package/dist/Message/index.js +3 -0
  238. package/dist/Message/message.d.ts +19 -0
  239. package/dist/Message/message.js +95 -0
  240. package/dist/Message/types.d.ts +28 -0
  241. package/dist/Message/types.js +1 -0
  242. package/dist/MessageBox/MessageBox.svelte +133 -0
  243. package/dist/MessageBox/MessageBox.svelte.d.ts +7 -0
  244. package/dist/MessageBox/index.d.ts +4 -0
  245. package/dist/MessageBox/index.js +3 -0
  246. package/dist/MessageBox/messageBox.d.ts +13 -0
  247. package/dist/MessageBox/messageBox.js +32 -0
  248. package/dist/MessageBox/types.d.ts +23 -0
  249. package/dist/MessageBox/types.js +1 -0
  250. package/dist/Notification/Notification.svelte +142 -0
  251. package/dist/Notification/Notification.svelte.d.ts +7 -0
  252. package/dist/Notification/index.d.ts +4 -0
  253. package/dist/Notification/index.js +3 -0
  254. package/dist/Notification/notification.d.ts +11 -0
  255. package/dist/Notification/notification.js +19 -0
  256. package/dist/Notification/types.d.ts +26 -0
  257. package/dist/Notification/types.js +1 -0
  258. package/dist/Pagination/Pagination.svelte +413 -0
  259. package/dist/Pagination/Pagination.svelte.d.ts +21 -0
  260. package/dist/Pagination/index.d.ts +4 -0
  261. package/dist/Pagination/index.js +3 -0
  262. package/dist/Pagination/types.d.ts +32 -0
  263. package/dist/Pagination/types.js +1 -0
  264. package/dist/PinInput/PinInput.svelte +175 -0
  265. package/dist/PinInput/PinInput.svelte.d.ts +4 -0
  266. package/dist/PinInput/index.d.ts +4 -0
  267. package/dist/PinInput/index.js +3 -0
  268. package/dist/PinInput/types.d.ts +31 -0
  269. package/dist/PinInput/types.js +1 -0
  270. package/dist/Popconfirm/Popconfirm.svelte +293 -0
  271. package/dist/Popconfirm/Popconfirm.svelte.d.ts +4 -0
  272. package/dist/Popconfirm/index.d.ts +2 -0
  273. package/dist/Popconfirm/index.js +1 -0
  274. package/dist/Popconfirm/types.d.ts +53 -0
  275. package/dist/Popconfirm/types.js +1 -0
  276. package/dist/Popover/Popover.svelte +245 -0
  277. package/dist/Popover/Popover.svelte.d.ts +7 -0
  278. package/dist/Popover/index.d.ts +4 -0
  279. package/dist/Popover/index.js +3 -0
  280. package/dist/Popover/types.d.ts +24 -0
  281. package/dist/Popover/types.js +1 -0
  282. package/dist/Progress/Progress.svelte +33 -0
  283. package/dist/Progress/Progress.svelte.d.ts +11 -0
  284. package/dist/Progress/index.d.ts +4 -0
  285. package/dist/Progress/index.js +3 -0
  286. package/dist/Progress/types.d.ts +17 -0
  287. package/dist/Progress/types.js +1 -0
  288. package/dist/Radio/Radio.svelte +66 -0
  289. package/dist/Radio/Radio.svelte.d.ts +15 -0
  290. package/dist/Radio/RadioGroup.svelte +40 -0
  291. package/dist/Radio/RadioGroup.svelte.d.ts +13 -0
  292. package/dist/Radio/index.d.ts +4 -0
  293. package/dist/Radio/index.js +3 -0
  294. package/dist/Radio/types.d.ts +24 -0
  295. package/dist/Radio/types.js +1 -0
  296. package/dist/Rating/Rating.svelte +226 -0
  297. package/dist/Rating/Rating.svelte.d.ts +27 -0
  298. package/dist/Rating/index.d.ts +4 -0
  299. package/dist/Rating/index.js +3 -0
  300. package/dist/Rating/types.d.ts +43 -0
  301. package/dist/Rating/types.js +1 -0
  302. package/dist/Result/Result.svelte +58 -0
  303. package/dist/Result/Result.svelte.d.ts +14 -0
  304. package/dist/Result/index.d.ts +4 -0
  305. package/dist/Result/index.js +3 -0
  306. package/dist/Result/types.d.ts +20 -0
  307. package/dist/Result/types.js +1 -0
  308. package/dist/Segmented/Segmented.svelte +49 -0
  309. package/dist/Segmented/Segmented.svelte.d.ts +12 -0
  310. package/dist/Segmented/index.d.ts +4 -0
  311. package/dist/Segmented/index.js +3 -0
  312. package/dist/Segmented/types.d.ts +29 -0
  313. package/dist/Segmented/types.js +1 -0
  314. package/dist/Select/Option.svelte +30 -0
  315. package/dist/Select/Option.svelte.d.ts +9 -0
  316. package/dist/Select/OptionGroup.svelte +33 -0
  317. package/dist/Select/OptionGroup.svelte.d.ts +10 -0
  318. package/dist/Select/Select.svelte +245 -0
  319. package/dist/Select/Select.svelte.d.ts +4 -0
  320. package/dist/Select/index.d.ts +4 -0
  321. package/dist/Select/index.js +3 -0
  322. package/dist/Select/types.d.ts +41 -0
  323. package/dist/Select/types.js +1 -0
  324. package/dist/Skeleton/Skeleton.svelte +44 -0
  325. package/dist/Skeleton/Skeleton.svelte.d.ts +13 -0
  326. package/dist/Skeleton/SkeletonItem.svelte +14 -0
  327. package/dist/Skeleton/SkeletonItem.svelte.d.ts +8 -0
  328. package/dist/Skeleton/index.d.ts +5 -0
  329. package/dist/Skeleton/index.js +4 -0
  330. package/dist/Skeleton/types.d.ts +27 -0
  331. package/dist/Skeleton/types.js +1 -0
  332. package/dist/Slider/Slider.svelte +342 -0
  333. package/dist/Slider/Slider.svelte.d.ts +18 -0
  334. package/dist/Slider/index.d.ts +4 -0
  335. package/dist/Slider/index.js +3 -0
  336. package/dist/Slider/types.d.ts +28 -0
  337. package/dist/Slider/types.js +1 -0
  338. package/dist/Space/Space.svelte +89 -0
  339. package/dist/Space/Space.svelte.d.ts +17 -0
  340. package/dist/Space/index.d.ts +4 -0
  341. package/dist/Space/index.js +3 -0
  342. package/dist/Space/types.d.ts +32 -0
  343. package/dist/Space/types.js +1 -0
  344. package/dist/Statistic/Countdown.svelte +108 -0
  345. package/dist/Statistic/Countdown.svelte.d.ts +14 -0
  346. package/dist/Statistic/Statistic.svelte +63 -0
  347. package/dist/Statistic/Statistic.svelte.d.ts +15 -0
  348. package/dist/Statistic/index.d.ts +5 -0
  349. package/dist/Statistic/index.js +4 -0
  350. package/dist/Statistic/types.d.ts +41 -0
  351. package/dist/Statistic/types.js +1 -0
  352. package/dist/Steps/Step.svelte +58 -0
  353. package/dist/Steps/Step.svelte.d.ts +14 -0
  354. package/dist/Steps/Steps.svelte +60 -0
  355. package/dist/Steps/Steps.svelte.d.ts +15 -0
  356. package/dist/Steps/StepsContext.d.ts +12 -0
  357. package/dist/Steps/StepsContext.js +1 -0
  358. package/dist/Steps/index.d.ts +5 -0
  359. package/dist/Steps/index.js +4 -0
  360. package/dist/Steps/types.d.ts +41 -0
  361. package/dist/Steps/types.js +1 -0
  362. package/dist/Switch/Switch.svelte +122 -0
  363. package/dist/Switch/Switch.svelte.d.ts +22 -0
  364. package/dist/Switch/index.d.ts +4 -0
  365. package/dist/Switch/index.js +3 -0
  366. package/dist/Switch/types.d.ts +37 -0
  367. package/dist/Switch/types.js +1 -0
  368. package/dist/Table/Table.svelte +700 -0
  369. package/dist/Table/Table.svelte.d.ts +11 -0
  370. package/dist/Table/index.d.ts +4 -0
  371. package/dist/Table/index.js +3 -0
  372. package/dist/Table/types.d.ts +180 -0
  373. package/dist/Table/types.js +1 -0
  374. package/dist/Tabs/TabPane.svelte +37 -0
  375. package/dist/Tabs/TabPane.svelte.d.ts +13 -0
  376. package/dist/Tabs/Tabs.svelte +251 -0
  377. package/dist/Tabs/Tabs.svelte.d.ts +13 -0
  378. package/dist/Tabs/TabsContext.d.ts +11 -0
  379. package/dist/Tabs/TabsContext.js +1 -0
  380. package/dist/Tabs/index.d.ts +3 -0
  381. package/dist/Tabs/index.js +2 -0
  382. package/dist/Tabs/types.d.ts +39 -0
  383. package/dist/Tabs/types.js +1 -0
  384. package/dist/Tag/Tag.svelte +39 -0
  385. package/dist/Tag/Tag.svelte.d.ts +13 -0
  386. package/dist/Tag/index.d.ts +4 -0
  387. package/dist/Tag/index.js +3 -0
  388. package/dist/Tag/types.d.ts +22 -0
  389. package/dist/Tag/types.js +1 -0
  390. package/dist/Textarea/Textarea.svelte +76 -0
  391. package/dist/Textarea/Textarea.svelte.d.ts +16 -0
  392. package/dist/Textarea/index.d.ts +4 -0
  393. package/dist/Textarea/index.js +3 -0
  394. package/dist/Textarea/types.d.ts +25 -0
  395. package/dist/Textarea/types.js +1 -0
  396. package/dist/TimePicker/TimePicker.svelte +364 -0
  397. package/dist/TimePicker/TimePicker.svelte.d.ts +14 -0
  398. package/dist/TimePicker/index.d.ts +3 -0
  399. package/dist/TimePicker/index.js +3 -0
  400. package/dist/TimePicker/types.d.ts +21 -0
  401. package/dist/TimePicker/types.js +1 -0
  402. package/dist/Timeline/Timeline.svelte +18 -0
  403. package/dist/Timeline/Timeline.svelte.d.ts +8 -0
  404. package/dist/Timeline/TimelineItem.svelte +67 -0
  405. package/dist/Timeline/TimelineItem.svelte.d.ts +18 -0
  406. package/dist/Timeline/index.d.ts +5 -0
  407. package/dist/Timeline/index.js +4 -0
  408. package/dist/Timeline/types.d.ts +39 -0
  409. package/dist/Timeline/types.js +1 -0
  410. package/dist/Tooltip/OverflowTooltip.svelte +81 -0
  411. package/dist/Tooltip/OverflowTooltip.svelte.d.ts +4 -0
  412. package/dist/Tooltip/Tooltip.svelte +77 -0
  413. package/dist/Tooltip/Tooltip.svelte.d.ts +16 -0
  414. package/dist/Tooltip/index.d.ts +6 -0
  415. package/dist/Tooltip/index.js +5 -0
  416. package/dist/Tooltip/types.d.ts +51 -0
  417. package/dist/Tooltip/types.js +1 -0
  418. package/dist/Transfer/Transfer.svelte +145 -0
  419. package/dist/Transfer/Transfer.svelte.d.ts +14 -0
  420. package/dist/Transfer/index.d.ts +4 -0
  421. package/dist/Transfer/index.js +3 -0
  422. package/dist/Transfer/types.d.ts +16 -0
  423. package/dist/Transfer/types.js +1 -0
  424. package/dist/Tree/Tree.svelte +148 -0
  425. package/dist/Tree/Tree.svelte.d.ts +17 -0
  426. package/dist/Tree/TreeNode.svelte +133 -0
  427. package/dist/Tree/TreeNode.svelte.d.ts +19 -0
  428. package/dist/Tree/index.d.ts +4 -0
  429. package/dist/Tree/index.js +3 -0
  430. package/dist/Tree/types.d.ts +65 -0
  431. package/dist/Tree/types.js +1 -0
  432. package/dist/TreeSelect/TreeSelect.svelte +716 -0
  433. package/dist/TreeSelect/TreeSelect.svelte.d.ts +4 -0
  434. package/dist/TreeSelect/index.d.ts +4 -0
  435. package/dist/TreeSelect/index.js +3 -0
  436. package/dist/TreeSelect/types.d.ts +98 -0
  437. package/dist/TreeSelect/types.js +1 -0
  438. package/dist/Upload/Upload.svelte +396 -0
  439. package/dist/Upload/Upload.svelte.d.ts +28 -0
  440. package/dist/Upload/index.d.ts +4 -0
  441. package/dist/Upload/index.js +3 -0
  442. package/dist/Upload/types.d.ts +67 -0
  443. package/dist/Upload/types.js +1 -0
  444. package/dist/Watermark/Watermark.svelte +174 -0
  445. package/dist/Watermark/Watermark.svelte.d.ts +20 -0
  446. package/dist/Watermark/index.d.ts +4 -0
  447. package/dist/Watermark/index.js +3 -0
  448. package/dist/Watermark/types.d.ts +32 -0
  449. package/dist/Watermark/types.js +1 -0
  450. package/dist/index.d.ts +140 -0
  451. package/dist/index.js +85 -0
  452. package/dist/utils/floating.d.ts +28 -0
  453. package/dist/utils/floating.js +140 -0
  454. package/dist/utils/index.d.ts +3 -0
  455. package/dist/utils/index.js +34 -0
  456. package/dist/utils/portal.d.ts +9 -0
  457. package/dist/utils/portal.js +33 -0
  458. package/package.json +115 -0
  459. package/styles/index.css +1 -0
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ interface ProgressProps {
3
+ percentage?: number
4
+ status?: 'primary' | 'success' | 'warning' | 'danger' | 'info'
5
+ showText?: boolean
6
+ strokeWidth?: number
7
+ color?: string
8
+ class?: string
9
+ }
10
+
11
+ let { percentage = 0, status = 'primary', showText = true, strokeWidth = 6, color, class: cls = '', ...attrs }: ProgressProps = $props()
12
+
13
+ const pct = $derived(Math.max(0, Math.min(100, Math.round(percentage))))
14
+
15
+ const classes = $derived(cls ? `lm-progress ${cls}` : 'lm-progress')
16
+
17
+ const innerStyle = $derived.by(() => {
18
+ const styles = [`width: ${pct}%`, `height: ${strokeWidth}px`]
19
+ if (color) styles.push(`background-color: ${color}`)
20
+ return styles.join('; ')
21
+ })
22
+
23
+ const trackStyle = $derived(`height: ${strokeWidth}px`)
24
+ </script>
25
+
26
+ <div {...attrs} class={classes}>
27
+ <div class="lm-progress__track" style={trackStyle}>
28
+ <div class={'lm-progress__bar lm-progress__bar--' + status} style={innerStyle}></div>
29
+ </div>
30
+ {#if showText}
31
+ <span class="lm-progress__text">{pct}%</span>
32
+ {/if}
33
+ </div>
@@ -0,0 +1,11 @@
1
+ interface ProgressProps {
2
+ percentage?: number;
3
+ status?: 'primary' | 'success' | 'warning' | 'danger' | 'info';
4
+ showText?: boolean;
5
+ strokeWidth?: number;
6
+ color?: string;
7
+ class?: string;
8
+ }
9
+ declare const Progress: import("svelte").Component<ProgressProps, {}, "">;
10
+ type Progress = ReturnType<typeof Progress>;
11
+ export default Progress;
@@ -0,0 +1,4 @@
1
+ import Progress from './Progress.svelte';
2
+ export { Progress };
3
+ export type { ProgressProps, ProgressStatus } from './types';
4
+ export default Progress;
@@ -0,0 +1,3 @@
1
+ import Progress from './Progress.svelte';
2
+ export { Progress };
3
+ export default Progress;
@@ -0,0 +1,17 @@
1
+ /** Progress 状态 */
2
+ export type ProgressStatus = 'primary' | 'success' | 'warning' | 'danger' | 'info';
3
+ /** Progress 属性 */
4
+ export interface ProgressProps {
5
+ /** 百分比 */
6
+ percentage?: number;
7
+ /** 状态 */
8
+ status?: ProgressStatus;
9
+ /** 是否显示文字 */
10
+ showText?: boolean;
11
+ /** 进度条宽度 */
12
+ strokeWidth?: number;
13
+ /** 自定义颜色 */
14
+ color?: string;
15
+ /** 自定义类名 */
16
+ class?: string;
17
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,66 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+
4
+ interface RadioProps {
5
+ checked?: boolean;
6
+ value?: string | number;
7
+ disabled?: boolean;
8
+ size?: "small" | "medium" | "large";
9
+ label?: string;
10
+ name?: string;
11
+ children?: Snippet;
12
+ onchange?: (value: string | number) => void;
13
+ class?: string;
14
+ }
15
+
16
+ let {
17
+ checked = $bindable(false),
18
+ value,
19
+ disabled = false,
20
+ size = "medium",
21
+ label,
22
+ name,
23
+ children,
24
+ onchange,
25
+ class: cls = "",
26
+ ...attrs
27
+ }: RadioProps = $props();
28
+
29
+ const classes = $derived(
30
+ `lm-radio lm-radio--${size}${checked ? " is-checked" : ""}${disabled ? " is-disabled" : ""}${cls ? ` ${cls}` : ""}`,
31
+ );
32
+
33
+ const handleInputChange = (e: Event): void => {
34
+ if (disabled) return;
35
+ if ((e.currentTarget as HTMLInputElement).checked) {
36
+ checked = true;
37
+ if (value !== undefined) onchange?.(value);
38
+ }
39
+ };
40
+ </script>
41
+
42
+ <label class={classes}>
43
+ <span class="lm-radio__input">
44
+ <input
45
+ {...attrs}
46
+ type="radio"
47
+ class="lm-radio__original"
48
+ {value}
49
+ {name}
50
+ {disabled}
51
+ {checked}
52
+ onchange={handleInputChange}
53
+ />
54
+ <span class="lm-radio__inner"></span>
55
+ </span>
56
+
57
+ {#if children || label}
58
+ <span class="lm-radio__label">
59
+ {#if children}
60
+ {@render children()}
61
+ {:else if label}
62
+ {label}
63
+ {/if}
64
+ </span>
65
+ {/if}
66
+ </label>
@@ -0,0 +1,15 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface RadioProps {
3
+ checked?: boolean;
4
+ value?: string | number;
5
+ disabled?: boolean;
6
+ size?: 'small' | 'medium' | 'large';
7
+ label?: string;
8
+ name?: string;
9
+ children?: Snippet;
10
+ onchange?: (value: string | number) => void;
11
+ class?: string;
12
+ }
13
+ declare const Radio: import("svelte").Component<RadioProps, {}, "checked">;
14
+ type Radio = ReturnType<typeof Radio>;
15
+ export default Radio;
@@ -0,0 +1,40 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+
4
+ interface RadioGroupProps {
5
+ modelValue?: string | number;
6
+ disabled?: boolean;
7
+ size?: "small" | "medium" | "large";
8
+ name?: string;
9
+ children?: Snippet;
10
+ onchange?: (value: string | number) => void;
11
+ class?: string;
12
+ }
13
+
14
+ let {
15
+ modelValue = $bindable(),
16
+ disabled = false,
17
+ size = "medium",
18
+ name,
19
+ children,
20
+ onchange,
21
+ class: cls = "",
22
+ ...attrs
23
+ }: RadioGroupProps = $props();
24
+
25
+ const classes = $derived(
26
+ `lm-radio-group lm-radio-group--${size}${disabled ? " is-disabled" : ""}${cls ? ` ${cls}` : ""}`,
27
+ );
28
+
29
+ const handleChange = (value: string | number): void => {
30
+ if (disabled) return;
31
+ modelValue = value;
32
+ onchange?.(value);
33
+ };
34
+ </script>
35
+
36
+ <div class={classes} role="radiogroup" {...attrs}>
37
+ {#if children}
38
+ {@render children()}
39
+ {/if}
40
+ </div>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from "svelte";
2
+ interface RadioGroupProps {
3
+ modelValue?: string | number;
4
+ disabled?: boolean;
5
+ size?: "small" | "medium" | "large";
6
+ name?: string;
7
+ children?: Snippet;
8
+ onchange?: (value: string | number) => void;
9
+ class?: string;
10
+ }
11
+ declare const RadioGroup: import("svelte").Component<RadioGroupProps, {}, "modelValue">;
12
+ type RadioGroup = ReturnType<typeof RadioGroup>;
13
+ export default RadioGroup;
@@ -0,0 +1,4 @@
1
+ import Radio from './Radio.svelte';
2
+ export { Radio };
3
+ export type { RadioProps, RadioSize } from './types';
4
+ export default Radio;
@@ -0,0 +1,3 @@
1
+ import Radio from './Radio.svelte';
2
+ export { Radio };
3
+ export default Radio;
@@ -0,0 +1,24 @@
1
+ import type { Snippet } from 'svelte';
2
+ /** Radio 尺寸 */
3
+ export type RadioSize = 'small' | 'medium' | 'large';
4
+ /** Radio 属性 */
5
+ export interface RadioProps {
6
+ /** 是否选中 */
7
+ checked?: boolean;
8
+ /** 值 */
9
+ value?: string | number;
10
+ /** 是否禁用 */
11
+ disabled?: boolean;
12
+ /** 尺寸 */
13
+ size?: RadioSize;
14
+ /** 标签文字 */
15
+ label?: string;
16
+ /** 原生 name 属性 */
17
+ name?: string;
18
+ /** 子内容 */
19
+ children?: Snippet;
20
+ /** 变化回调 */
21
+ onchange?: (value: string | number) => void;
22
+ /** 自定义类名 */
23
+ class?: string;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,226 @@
1
+ <script lang="ts">
2
+ interface RatingProps {
3
+ modelValue?: number
4
+ max?: number
5
+ size?: number
6
+ allowHalf?: boolean
7
+ disabled?: boolean
8
+ readonly?: boolean
9
+ clearable?: boolean
10
+ lowThreshold?: number
11
+ highThreshold?: number
12
+ colors?: string[]
13
+ voidColor?: string
14
+ disabledVoidColor?: string
15
+ showText?: boolean
16
+ showScore?: boolean
17
+ texts?: string[]
18
+ scoreTemplate?: string
19
+ precision?: number
20
+ class?: string
21
+ rounded?: boolean
22
+ iconPath?: string
23
+ }
24
+
25
+ const DEFAULT_ICON_PATH =
26
+ 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'
27
+
28
+ const VIEW_BOX = '0 0 24 24'
29
+
30
+ let {
31
+ modelValue = $bindable(0),
32
+ max = 5,
33
+ size = 20,
34
+ allowHalf = false,
35
+ disabled = false,
36
+ readonly = false,
37
+ clearable = false,
38
+ lowThreshold = 2,
39
+ highThreshold = 4,
40
+ colors = [],
41
+ voidColor = '#C6D1DE',
42
+ disabledVoidColor = '#EFF2F7',
43
+ showText = false,
44
+ showScore = false,
45
+ texts = ['极差', '失望', '一般', '满意', '惊喜'],
46
+ scoreTemplate = '{value}',
47
+ precision = 1,
48
+ class: extraClass = '',
49
+ rounded = true,
50
+ iconPath = DEFAULT_ICON_PATH,
51
+ ...rest
52
+ }: RatingProps = $props()
53
+
54
+ let hoverValue = $state<number | null>(null)
55
+
56
+ $effect(() => {
57
+ if (modelValue > max) modelValue = max
58
+ else if (modelValue < 0) modelValue = 0
59
+ })
60
+
61
+ const displayValue = $derived(hoverValue ?? modelValue)
62
+ const hasCustomColors = $derived(colors.length > 0)
63
+ const step = $derived(allowHalf ? Math.min(precision, 0.5) : precision)
64
+
65
+ /** 星星索引数组(静态缓存) */
66
+ const starIndices = $derived(Array.from({ length: max }, (_, i) => i))
67
+
68
+ const activeColor = $derived.by(() => {
69
+ if (!hasCustomColors) return null
70
+ if (colors.length >= 3) {
71
+ if (displayValue <= lowThreshold) return colors[0]
72
+ if (displayValue >= highThreshold) return colors[2]
73
+ return colors[1]
74
+ }
75
+ return colors[0]
76
+ })
77
+
78
+ const displayText = $derived.by(() => {
79
+ if (showText) return texts[Math.ceil(displayValue) - 1] || ''
80
+ if (showScore) return scoreTemplate.replace('{value}', displayValue.toFixed(precision))
81
+ return ''
82
+ })
83
+
84
+ /** 精确到步长 */
85
+ const precise = (val: number): number => {
86
+ const factor = 1 / step
87
+ return Math.round(val * factor) / factor
88
+ }
89
+
90
+ /** 设置值 */
91
+ const setValue = (value: number): void => {
92
+ if (disabled || readonly) return
93
+ const v = precise(Math.min(max, Math.max(0, value)))
94
+ modelValue = clearable && v === modelValue ? 0 : v
95
+ }
96
+
97
+ /** 计算填充比例 */
98
+ const fillRatio = (index: number): number => {
99
+ const star = index + 1
100
+ if (displayValue >= star) return 1
101
+ if (allowHalf && displayValue > star - 1 && displayValue >= star - 0.5) return 0.5
102
+ return 0
103
+ }
104
+
105
+ /** 悬停处理 */
106
+ const onHover = (index: number, e: MouseEvent): void => {
107
+ if (disabled || readonly) return
108
+ let v = index + 1
109
+ if (allowHalf) {
110
+ const rect = (e.currentTarget as HTMLElement).getBoundingClientRect()
111
+ if (e.clientX - rect.left < rect.width / 2) v = index + 0.5
112
+ }
113
+ hoverValue = v
114
+ }
115
+
116
+ /** 离开处理 */
117
+ const onLeave = (): void => {
118
+ if (!disabled && !readonly) hoverValue = null
119
+ }
120
+
121
+ /** 点击处理 */
122
+ const onClick = (index: number, e: MouseEvent): void => {
123
+ if (disabled || readonly) return
124
+ let v = index + 1
125
+ if (allowHalf) {
126
+ const rect = (e.currentTarget as HTMLElement).getBoundingClientRect()
127
+ if (e.clientX - rect.left < rect.width / 2) v = index + 0.5
128
+ }
129
+ setValue(v)
130
+ }
131
+
132
+ /** 键盘处理 */
133
+ const onKeydown = (e: KeyboardEvent): void => {
134
+ if (disabled || readonly) return
135
+ let v = modelValue
136
+ switch (e.key) {
137
+ case 'ArrowRight':
138
+ case 'ArrowUp':
139
+ v = Math.min(max, precise(modelValue + step))
140
+ e.preventDefault()
141
+ break
142
+ case 'ArrowLeft':
143
+ case 'ArrowDown':
144
+ v = Math.max(0, precise(modelValue - step))
145
+ e.preventDefault()
146
+ break
147
+ case 'Home':
148
+ v = 0
149
+ e.preventDefault()
150
+ break
151
+ case 'End':
152
+ v = max
153
+ e.preventDefault()
154
+ break
155
+ default:
156
+ return
157
+ }
158
+ setValue(v)
159
+ }
160
+
161
+ const classes = $derived(
162
+ `lm-rating${disabled ? ' lm-rating--disabled' : ''}${readonly ? ' lm-rating--readonly' : ''}${allowHalf ? ' lm-rating--half' : ''}${!disabled && !readonly ? ' lm-rating--interactive' : ''}${rounded ? ' lm-rating--rounded' : ''}${extraClass ? ` ${extraClass}` : ''}`
163
+ )
164
+
165
+ /** 根元素样式(缓存避免重复计算) */
166
+ const rootStyle = $derived.by(() => {
167
+ const styles: string[] = []
168
+ if (hasCustomColors && activeColor) styles.push(`--rating-fill-color:${activeColor}`)
169
+ styles.push(`--rating-void-color:${disabled ? disabledVoidColor : voidColor}`)
170
+ styles.push(`font-size:${size}px`)
171
+ return styles.join(';')
172
+ })
173
+
174
+ const reset = (): void => setValue(0)
175
+ export { reset }
176
+ </script>
177
+
178
+ <div
179
+ class={classes}
180
+ role="slider"
181
+ aria-valuemin={0}
182
+ aria-valuemax={max}
183
+ aria-valuenow={modelValue}
184
+ aria-readonly={readonly}
185
+ aria-disabled={disabled}
186
+ tabindex={disabled ? undefined : 0}
187
+ onkeydown={onKeydown}
188
+ onmouseleave={onLeave}
189
+ style={rootStyle}
190
+ {...rest}
191
+ >
192
+ {#each starIndices as index (index)}
193
+ {@const ratio = fillRatio(index)}
194
+ {@const isFull = ratio === 1}
195
+ {@const isHalf = ratio === 0.5}
196
+ {@const isEmpty = ratio === 0}
197
+ <button
198
+ type="button"
199
+ class="lm-rating__item"
200
+ aria-label="Rate {index + 1}"
201
+ disabled={disabled || readonly}
202
+ onmousemove={(e: MouseEvent) => onHover(index, e)}
203
+ onclick={(e: MouseEvent) => onClick(index, e)}
204
+ >
205
+ <span
206
+ class="lm-rating__icon-wrapper {rounded ? 'is-rounded' : ''}"
207
+ data-ratio={ratio}
208
+ data-full={isFull ? 'true' : undefined}
209
+ data-half={isHalf ? 'true' : undefined}
210
+ data-empty={isEmpty ? 'true' : undefined}
211
+ >
212
+ <svg viewBox={VIEW_BOX} class="lm-rating__icon lm-rating__icon--void" aria-hidden="true" focusable="false">
213
+ <path d={iconPath} />
214
+ </svg>
215
+ <span class="lm-rating__icon-fill" data-ratio={ratio} data-half={isHalf ? 'true' : undefined} data-full={isFull ? 'true' : undefined}>
216
+ <svg viewBox={VIEW_BOX} class="lm-rating__icon lm-rating__icon--filled" aria-hidden="true" focusable="false">
217
+ <path d={iconPath} fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
218
+ </svg>
219
+ </span>
220
+ </span>
221
+ </button>
222
+ {/each}
223
+ {#if displayText}
224
+ <span class="lm-rating__text">{displayText}</span>
225
+ {/if}
226
+ </div>
@@ -0,0 +1,27 @@
1
+ interface RatingProps {
2
+ modelValue?: number;
3
+ max?: number;
4
+ size?: number;
5
+ allowHalf?: boolean;
6
+ disabled?: boolean;
7
+ readonly?: boolean;
8
+ clearable?: boolean;
9
+ lowThreshold?: number;
10
+ highThreshold?: number;
11
+ colors?: string[];
12
+ voidColor?: string;
13
+ disabledVoidColor?: string;
14
+ showText?: boolean;
15
+ showScore?: boolean;
16
+ texts?: string[];
17
+ scoreTemplate?: string;
18
+ precision?: number;
19
+ class?: string;
20
+ rounded?: boolean;
21
+ iconPath?: string;
22
+ }
23
+ declare const Rating: import("svelte").Component<RatingProps, {
24
+ reset: () => void;
25
+ }, "modelValue">;
26
+ type Rating = ReturnType<typeof Rating>;
27
+ export default Rating;
@@ -0,0 +1,4 @@
1
+ import Rating from './Rating.svelte';
2
+ export { Rating };
3
+ export type { RatingProps } from './types';
4
+ export default Rating;
@@ -0,0 +1,3 @@
1
+ import Rating from './Rating.svelte';
2
+ export { Rating };
3
+ export default Rating;
@@ -0,0 +1,43 @@
1
+ /** Rating 属性 */
2
+ export interface RatingProps {
3
+ /** 绑定值 */
4
+ modelValue?: number;
5
+ /** 最大值 */
6
+ max?: number;
7
+ /** 尺寸 */
8
+ size?: number;
9
+ /** 是否允许半选 */
10
+ allowHalf?: boolean;
11
+ /** 是否禁用 */
12
+ disabled?: boolean;
13
+ /** 是否只读 */
14
+ readonly?: boolean;
15
+ /** 是否可清空 */
16
+ clearable?: boolean;
17
+ /** 低分阈值 */
18
+ lowThreshold?: number;
19
+ /** 高分阈值 */
20
+ highThreshold?: number;
21
+ /** 颜色数组 */
22
+ colors?: string[];
23
+ /** 未选中颜色 */
24
+ voidColor?: string;
25
+ /** 禁用时未选中颜色 */
26
+ disabledVoidColor?: string;
27
+ /** 是否显示文字 */
28
+ showText?: boolean;
29
+ /** 是否显示分数 */
30
+ showScore?: boolean;
31
+ /** 文字数组 */
32
+ texts?: string[];
33
+ /** 分数模板 */
34
+ scoreTemplate?: string;
35
+ /** 精度 */
36
+ precision?: number;
37
+ /** 自定义类名 */
38
+ class?: string;
39
+ /** 是否圆角 */
40
+ rounded?: boolean;
41
+ /** 自定义图标路径 */
42
+ iconPath?: string;
43
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+ import type { ResultStatus } from './types'
4
+ import type { IconNode } from 'lucide'
5
+ import Icon from '../Icon/Icon.svelte'
6
+ import { CheckCircle, AlertTriangle, XCircle, Info } from 'lucide'
7
+
8
+ interface ResultProps {
9
+ status?: ResultStatus
10
+ title?: string
11
+ subTitle?: string
12
+ icon?: Snippet
13
+ extra?: Snippet
14
+ children?: Snippet
15
+ class?: string
16
+ }
17
+
18
+ let { status = 'info', title = '', subTitle = '', icon, extra, children, class: cls = '', ...attrs }: ResultProps = $props()
19
+
20
+ const iconMap: Record<ResultStatus, IconNode> = {
21
+ success: CheckCircle,
22
+ warning: AlertTriangle,
23
+ error: XCircle,
24
+ info: Info,
25
+ }
26
+
27
+ const classes = $derived(`lm-result lm-result--${status}${cls ? ` ${cls}` : ''}`)
28
+ </script>
29
+
30
+ <div class={classes} {...attrs}>
31
+ <div class="lm-result__icon">
32
+ {#if icon}
33
+ {@render icon()}
34
+ {:else}
35
+ <Icon icon={iconMap[status]} size={48} />
36
+ {/if}
37
+ </div>
38
+
39
+ {#if title}
40
+ <div class="lm-result__title">{title}</div>
41
+ {/if}
42
+
43
+ {#if subTitle}
44
+ <div class="lm-result__subtitle">{subTitle}</div>
45
+ {/if}
46
+
47
+ {#if extra}
48
+ <div class="lm-result__extra">
49
+ {@render extra()}
50
+ </div>
51
+ {/if}
52
+
53
+ {#if children}
54
+ <div class="lm-result__content">
55
+ {@render children()}
56
+ </div>
57
+ {/if}
58
+ </div>
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { ResultStatus } from './types';
3
+ interface ResultProps {
4
+ status?: ResultStatus;
5
+ title?: string;
6
+ subTitle?: string;
7
+ icon?: Snippet;
8
+ extra?: Snippet;
9
+ children?: Snippet;
10
+ class?: string;
11
+ }
12
+ declare const Result: import("svelte").Component<ResultProps, {}, "">;
13
+ type Result = ReturnType<typeof Result>;
14
+ export default Result;
@@ -0,0 +1,4 @@
1
+ import Result from './Result.svelte';
2
+ export { Result };
3
+ export type { ResultProps, ResultStatus } from './types';
4
+ export default Result;
@@ -0,0 +1,3 @@
1
+ import Result from './Result.svelte';
2
+ export { Result };
3
+ export default Result;
@@ -0,0 +1,20 @@
1
+ import type { Snippet } from 'svelte';
2
+ /** Result 状态类型 */
3
+ export type ResultStatus = 'success' | 'warning' | 'info' | 'error';
4
+ /** Result 属性 */
5
+ export interface ResultProps {
6
+ /** 状态类型 */
7
+ status?: ResultStatus;
8
+ /** 标题 */
9
+ title?: string;
10
+ /** 副标题 */
11
+ subTitle?: string;
12
+ /** 图标插槽 */
13
+ icon?: Snippet;
14
+ /** 额外内容插槽 */
15
+ extra?: Snippet;
16
+ /** 子内容 */
17
+ children?: Snippet;
18
+ /** 自定义类名 */
19
+ class?: string;
20
+ }
@@ -0,0 +1 @@
1
+ export {};