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,76 @@
1
+ <script lang="ts">
2
+ import Icon from '../Icon/Icon.svelte'
3
+ import { X } from 'lucide'
4
+
5
+ interface TextareaProps {
6
+ value?: string
7
+ rows?: number
8
+ autosize?: boolean
9
+ placeholder?: string
10
+ disabled?: boolean
11
+ readonly?: boolean
12
+ clearable?: boolean
13
+ maxlength?: number
14
+ oninput?: (value: string) => void
15
+ onchange?: (value: string) => void
16
+ class?: string
17
+ }
18
+
19
+ let {
20
+ value = $bindable(''),
21
+ rows = 3,
22
+ autosize = false,
23
+ placeholder,
24
+ disabled = false,
25
+ readonly = false,
26
+ clearable = false,
27
+ maxlength,
28
+ oninput,
29
+ onchange,
30
+ class: cls = '',
31
+ ...attrs
32
+ }: TextareaProps = $props()
33
+
34
+ let textareaRef: HTMLTextAreaElement | null = $state(null)
35
+
36
+ const classes = $derived(`lm-textarea${disabled ? ' is-disabled' : ''}${readonly ? ' is-readonly' : ''}${cls ? ` ${cls}` : ''}`)
37
+
38
+ const handleInput = (e: Event): void => {
39
+ value = (e.target as HTMLTextAreaElement).value
40
+ if (autosize && textareaRef) {
41
+ textareaRef.style.height = 'auto'
42
+ textareaRef.style.height = `${textareaRef.scrollHeight}px`
43
+ }
44
+ oninput?.(value)
45
+ }
46
+
47
+ const handleChange = (): void => {
48
+ onchange?.(value)
49
+ }
50
+
51
+ const handleClear = (): void => {
52
+ value = ''
53
+ onchange?.(value)
54
+ }
55
+ </script>
56
+
57
+ <div class={classes}>
58
+ <textarea
59
+ bind:this={textareaRef}
60
+ class="lm-textarea__input"
61
+ bind:value
62
+ rows={autosize ? 1 : rows}
63
+ {placeholder}
64
+ {disabled}
65
+ {readonly}
66
+ {maxlength}
67
+ oninput={handleInput}
68
+ onchange={handleChange}
69
+ {...attrs}
70
+ ></textarea>
71
+ {#if clearable && value && !readonly && !disabled}
72
+ <button type="button" class="lm-textarea__clear" aria-label="Clear" onclick={handleClear}>
73
+ <Icon icon={X} size={16} />
74
+ </button>
75
+ {/if}
76
+ </div>
@@ -0,0 +1,16 @@
1
+ interface TextareaProps {
2
+ value?: string;
3
+ rows?: number;
4
+ autosize?: boolean;
5
+ placeholder?: string;
6
+ disabled?: boolean;
7
+ readonly?: boolean;
8
+ clearable?: boolean;
9
+ maxlength?: number;
10
+ oninput?: (value: string) => void;
11
+ onchange?: (value: string) => void;
12
+ class?: string;
13
+ }
14
+ declare const Textarea: import("svelte").Component<TextareaProps, {}, "value">;
15
+ type Textarea = ReturnType<typeof Textarea>;
16
+ export default Textarea;
@@ -0,0 +1,4 @@
1
+ import Textarea from './Textarea.svelte';
2
+ export { Textarea };
3
+ export type { TextareaProps } from './types';
4
+ export default Textarea;
@@ -0,0 +1,3 @@
1
+ import Textarea from './Textarea.svelte';
2
+ export { Textarea };
3
+ export default Textarea;
@@ -0,0 +1,25 @@
1
+ /** Textarea 属性 */
2
+ export interface TextareaProps {
3
+ /** 绑定值 */
4
+ value?: string;
5
+ /** 行数 */
6
+ rows?: number;
7
+ /** 是否自适应高度 */
8
+ autosize?: boolean;
9
+ /** 占位符 */
10
+ placeholder?: string;
11
+ /** 是否禁用 */
12
+ disabled?: boolean;
13
+ /** 是否只读 */
14
+ readonly?: boolean;
15
+ /** 是否可清空 */
16
+ clearable?: boolean;
17
+ /** 最大长度 */
18
+ maxlength?: number;
19
+ /** 输入事件 */
20
+ oninput?: (value: string) => void;
21
+ /** 变化事件 */
22
+ onchange?: (value: string) => void;
23
+ /** 自定义类名 */
24
+ class?: string;
25
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,364 @@
1
+ <script lang="ts">
2
+ import { createDropdownTransition } from "../utils";
3
+ import { onMount, tick } from "svelte";
4
+ import Icon from "../Icon/Icon.svelte";
5
+ import { Clock, X, ChevronDown } from "lucide";
6
+
7
+ interface Props {
8
+ modelValue?: string;
9
+ placeholder?: string;
10
+ disabled?: boolean;
11
+ clearable?: boolean;
12
+ readonly?: boolean;
13
+ format?: string;
14
+ size?: "small" | "default" | "large";
15
+ showMenuArrow?: boolean;
16
+ class?: string;
17
+ }
18
+
19
+ let {
20
+ modelValue = $bindable(""),
21
+ placeholder = "选择时间",
22
+ disabled = false,
23
+ clearable = false,
24
+ readonly = false,
25
+ format = "HH:mm:ss",
26
+ size = "default",
27
+ showMenuArrow = true,
28
+ class: cls = "",
29
+ ...attrs
30
+ }: Props = $props();
31
+
32
+ let visible = $state(false);
33
+ let reduceMotion = $state(false);
34
+ let inputRef: HTMLElement | null = $state(null);
35
+
36
+ let panelReady = $state(false);
37
+
38
+ let hourColRef: HTMLUListElement | null = $state(null);
39
+ let minuteColRef: HTMLUListElement | null = $state(null);
40
+ let secondColRef: HTMLUListElement | null = $state(null);
41
+
42
+ const genTimeList = (len: number): string[] =>
43
+ Array.from({ length: len }, (_, i) => i.toString().padStart(2, "0"));
44
+ const hours = genTimeList(24);
45
+ const minutes = genTimeList(60);
46
+ const seconds = genTimeList(60);
47
+
48
+ const showSeconds = $derived(format.includes("ss"));
49
+
50
+ const CELL_HEIGHT = 32;
51
+
52
+ const parseTime = (val: unknown): { h: string; m: string; s: string } => {
53
+ if (!val || typeof val !== "string") return { h: "00", m: "00", s: "00" };
54
+ const [h = "00", m = "00", s = "00"] = val.split(":");
55
+ return { h, m, s };
56
+ };
57
+
58
+ let selectedTime = $state(parseTime(modelValue));
59
+
60
+ $effect(() => {
61
+ selectedTime = parseTime(modelValue);
62
+ });
63
+
64
+ const setNow = (): void => {
65
+ const now = new Date();
66
+ selectedTime = {
67
+ h: now.getHours().toString().padStart(2, "0"),
68
+ m: now.getMinutes().toString().padStart(2, "0"),
69
+ s: now.getSeconds().toString().padStart(2, "0"),
70
+ };
71
+ updateModelValue();
72
+ };
73
+
74
+ const handleToggle = (): void => {
75
+ if (disabled || readonly) return;
76
+
77
+ const nextVisible = !visible;
78
+ visible = nextVisible;
79
+
80
+ // 默认值:打开面板时若无值,自动定位到当前时间
81
+ if (nextVisible && !modelValue) {
82
+ setNow();
83
+ }
84
+ };
85
+
86
+ const handleKeydown = (e: KeyboardEvent): void => {
87
+ if (e.key === "Escape") visible = false;
88
+ else if (e.key === "Enter" || e.key === " ") handleToggle();
89
+ };
90
+
91
+ const handleSelect = (type: "h" | "m" | "s", value: string): void => {
92
+ selectedTime = { ...selectedTime, [type]: value };
93
+ updateModelValue();
94
+ if (visible) scrollToValue(type, value, "auto");
95
+ };
96
+
97
+ const updateModelValue = (): void => {
98
+ const { h, m, s } = selectedTime;
99
+ modelValue = showSeconds ? `${h}:${m}:${s}` : `${h}:${m}`;
100
+ };
101
+
102
+ const handleClear = (e: MouseEvent): void => {
103
+ e.stopPropagation();
104
+ modelValue = "";
105
+ selectedTime = { h: "00", m: "00", s: "00" };
106
+ visible = false;
107
+ };
108
+
109
+ const dropdownTransition = $derived(createDropdownTransition(reduceMotion));
110
+
111
+ const handleNow = (): void => {
112
+ setNow();
113
+ if (visible) {
114
+ scrollToValue("h", selectedTime.h, "auto");
115
+ scrollToValue("m", selectedTime.m, "auto");
116
+ if (showSeconds) scrollToValue("s", selectedTime.s, "auto");
117
+ }
118
+ };
119
+
120
+ const getColEl = (type: "h" | "m" | "s"): HTMLUListElement | null => {
121
+ if (type === "h") return hourColRef;
122
+ if (type === "m") return minuteColRef;
123
+ return secondColRef;
124
+ };
125
+
126
+ const getListByType = (type: "h" | "m" | "s"): string[] => {
127
+ if (type === "h") return hours;
128
+ if (type === "m") return minutes;
129
+ return seconds;
130
+ };
131
+
132
+ const programmaticScrollTimers: Partial<
133
+ Record<"h" | "m" | "s", ReturnType<typeof setTimeout>>
134
+ > = {};
135
+ let programmaticScrolling = $state<{ h: boolean; m: boolean; s: boolean }>({
136
+ h: false,
137
+ m: false,
138
+ s: false,
139
+ });
140
+
141
+ const scrollToValue = (
142
+ type: "h" | "m" | "s",
143
+ value: string,
144
+ behavior: ScrollBehavior = "auto",
145
+ ): void => {
146
+ const el = getColEl(type);
147
+ if (!el) return;
148
+ const list = getListByType(type);
149
+ const index = Math.max(0, list.indexOf(value));
150
+ const targetTop = index * CELL_HEIGHT;
151
+ if (Math.abs(el.scrollTop - targetTop) < 1) return;
152
+
153
+ if (programmaticScrollTimers[type])
154
+ clearTimeout(programmaticScrollTimers[type]);
155
+ programmaticScrolling = { ...programmaticScrolling, [type]: true };
156
+
157
+ el.scrollTo({
158
+ top: targetTop,
159
+ behavior,
160
+ });
161
+
162
+ // 给滚动事件一点时间触发,避免吸附逻辑把值重置(例如打开面板时)
163
+ programmaticScrollTimers[type] = setTimeout(() => {
164
+ programmaticScrolling = { ...programmaticScrolling, [type]: false };
165
+ }, 80);
166
+ };
167
+
168
+ const snapTimers: Partial<
169
+ Record<"h" | "m" | "s", ReturnType<typeof setTimeout>>
170
+ > = {};
171
+
172
+ const handleColumnScroll = (
173
+ type: "h" | "m" | "s",
174
+ el: HTMLUListElement,
175
+ ): void => {
176
+ if (!panelReady || programmaticScrolling[type]) return;
177
+ if (snapTimers[type]) clearTimeout(snapTimers[type]);
178
+
179
+ snapTimers[type] = setTimeout(() => {
180
+ const list = getListByType(type);
181
+ const rawIndex = Math.round(el.scrollTop / CELL_HEIGHT);
182
+ const index = Math.min(Math.max(rawIndex, 0), list.length - 1);
183
+ const value = list[index];
184
+
185
+ if (selectedTime[type] !== value) {
186
+ selectedTime = { ...selectedTime, [type]: value };
187
+ updateModelValue();
188
+ }
189
+
190
+ const targetTop = index * CELL_HEIGHT;
191
+ if (Math.abs(el.scrollTop - targetTop) >= 1) {
192
+ el.scrollTo({ top: targetTop, behavior: "auto" });
193
+ }
194
+ }, 120);
195
+ };
196
+
197
+ const handleClickOutside = (e: MouseEvent): void => {
198
+ if (inputRef && !inputRef.contains(e.target as Node)) visible = false;
199
+ };
200
+
201
+ $effect(() => {
202
+ if (visible) document.addEventListener("click", handleClickOutside);
203
+ return () => document.removeEventListener("click", handleClickOutside);
204
+ });
205
+
206
+ $effect(() => {
207
+ if (!visible) {
208
+ panelReady = false;
209
+ return;
210
+ }
211
+
212
+ panelReady = false;
213
+
214
+ // 等待面板渲染后再对齐滚动位置
215
+ void tick().then(() => {
216
+ scrollToValue("h", selectedTime.h, "auto");
217
+ scrollToValue("m", selectedTime.m, "auto");
218
+ if (showSeconds) scrollToValue("s", selectedTime.s, "auto");
219
+ panelReady = true;
220
+ });
221
+ });
222
+
223
+ onMount(() => {
224
+ if (typeof window !== "undefined") {
225
+ reduceMotion =
226
+ window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches ??
227
+ false;
228
+ }
229
+ });
230
+
231
+ const classes = $derived(
232
+ [
233
+ "lm-time-picker",
234
+ disabled && "is-disabled",
235
+ size !== "default" && `lm-time-picker--${size}`,
236
+ cls,
237
+ ]
238
+ .filter(Boolean)
239
+ .join(" "),
240
+ );
241
+ </script>
242
+
243
+ <div bind:this={inputRef} class={classes} {...attrs}>
244
+ <div
245
+ class="lm-time-picker__input"
246
+ class:is-focus={visible}
247
+ role="combobox"
248
+ tabindex={disabled ? -1 : 0}
249
+ aria-expanded={visible}
250
+ aria-controls="time-picker-listbox"
251
+ onclick={handleToggle}
252
+ onkeydown={handleKeydown}
253
+ >
254
+ <span class="lm-time-picker__prefix">
255
+ <Icon icon={Clock} size={16} />
256
+ </span>
257
+ <span class="lm-time-picker__value" class:is-placeholder={!modelValue}>
258
+ {modelValue || placeholder}
259
+ </span>
260
+ {#if clearable && modelValue && !disabled}
261
+ <button
262
+ type="button"
263
+ class="lm-time-picker__clear"
264
+ onclick={handleClear}
265
+ aria-label="清除"
266
+ >
267
+ <Icon icon={X} size={14} />
268
+ </button>
269
+ {:else}
270
+ <span class="lm-time-picker__arrow" class:is-open={visible}>
271
+ <Icon icon={ChevronDown} size={14} />
272
+ </span>
273
+ {/if}
274
+ </div>
275
+
276
+ {#if visible}
277
+ <div
278
+ class="lm-time-picker__dropdown"
279
+ id="time-picker-listbox"
280
+ role="listbox"
281
+ transition:dropdownTransition
282
+ >
283
+ {#if showMenuArrow}
284
+ <div class="lm-time-picker__menu-arrow" aria-hidden="true"></div>
285
+ {/if}
286
+ <div class="lm-time-picker__panel">
287
+ <ul
288
+ bind:this={hourColRef}
289
+ class="lm-time-picker__column"
290
+ role="group"
291
+ aria-label="小时"
292
+ onscroll={(e: Event) =>
293
+ handleColumnScroll("h", e.currentTarget as HTMLUListElement)}
294
+ >
295
+ {#each hours as h}
296
+ <li
297
+ class="lm-time-picker__cell"
298
+ class:is-selected={selectedTime.h === h}
299
+ role="option"
300
+ aria-selected={selectedTime.h === h}
301
+ onmousedown={() => handleSelect("h", h)}
302
+ >
303
+ {h}
304
+ </li>
305
+ {/each}
306
+ </ul>
307
+ <ul
308
+ bind:this={minuteColRef}
309
+ class="lm-time-picker__column"
310
+ role="group"
311
+ aria-label="分钟"
312
+ onscroll={(e: Event) =>
313
+ handleColumnScroll("m", e.currentTarget as HTMLUListElement)}
314
+ >
315
+ {#each minutes as m}
316
+ <li
317
+ class="lm-time-picker__cell"
318
+ class:is-selected={selectedTime.m === m}
319
+ role="option"
320
+ aria-selected={selectedTime.m === m}
321
+ onmousedown={() => handleSelect("m", m)}
322
+ >
323
+ {m}
324
+ </li>
325
+ {/each}
326
+ </ul>
327
+ {#if showSeconds}
328
+ <ul
329
+ bind:this={secondColRef}
330
+ class="lm-time-picker__column"
331
+ role="group"
332
+ aria-label="秒"
333
+ onscroll={(e: Event) =>
334
+ handleColumnScroll("s", e.currentTarget as HTMLUListElement)}
335
+ >
336
+ {#each seconds as s}
337
+ <li
338
+ class="lm-time-picker__cell"
339
+ class:is-selected={selectedTime.s === s}
340
+ role="option"
341
+ aria-selected={selectedTime.s === s}
342
+ onmousedown={() => handleSelect("s", s)}
343
+ >
344
+ {s}
345
+ </li>
346
+ {/each}
347
+ </ul>
348
+ {/if}
349
+ </div>
350
+ <div class="lm-time-picker__footer">
351
+ <button
352
+ type="button"
353
+ class="lm-time-picker__btn lm-time-picker__btn--text"
354
+ onclick={handleNow}>此刻</button
355
+ >
356
+ <button
357
+ type="button"
358
+ class="lm-time-picker__btn"
359
+ onclick={() => (visible = false)}>确定</button
360
+ >
361
+ </div>
362
+ </div>
363
+ {/if}
364
+ </div>
@@ -0,0 +1,14 @@
1
+ interface Props {
2
+ modelValue?: string;
3
+ placeholder?: string;
4
+ disabled?: boolean;
5
+ clearable?: boolean;
6
+ readonly?: boolean;
7
+ format?: string;
8
+ size?: 'small' | 'default' | 'large';
9
+ showMenuArrow?: boolean;
10
+ class?: string;
11
+ }
12
+ declare const TimePicker: import("svelte").Component<Props, {}, "modelValue">;
13
+ type TimePicker = ReturnType<typeof TimePicker>;
14
+ export default TimePicker;
@@ -0,0 +1,3 @@
1
+ import TimePicker from './TimePicker.svelte';
2
+ export default TimePicker;
3
+ export { TimePicker };
@@ -0,0 +1,3 @@
1
+ import TimePicker from './TimePicker.svelte';
2
+ export default TimePicker;
3
+ export { TimePicker };
@@ -0,0 +1,21 @@
1
+ /** 时间选择器尺寸 */
2
+ export type TimePickerSize = 'small' | 'default' | 'large';
3
+ /** 时间选择器 Props */
4
+ export interface TimePickerProps {
5
+ /** 绑定值 */
6
+ modelValue?: string | null;
7
+ /** 占位符 */
8
+ placeholder?: string;
9
+ /** 是否禁用 */
10
+ disabled?: boolean;
11
+ /** 是否可清空 */
12
+ clearable?: boolean;
13
+ /** 尺寸 */
14
+ size?: TimePickerSize;
15
+ /** 时间格式 */
16
+ format?: string;
17
+ /** 是否显示下拉箭头 */
18
+ showMenuArrow?: boolean;
19
+ /** 自定义类名 */
20
+ class?: string;
21
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+
4
+ interface TimelineProps {
5
+ children?: Snippet
6
+ class?: string
7
+ }
8
+
9
+ let { children, class: cls = '', ...attrs }: TimelineProps = $props()
10
+
11
+ const classes = $derived(cls ? `lm-timeline ${cls}` : 'lm-timeline')
12
+ </script>
13
+
14
+ <ul class={classes} {...attrs}>
15
+ {#if children}
16
+ {@render children()}
17
+ {/if}
18
+ </ul>
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ interface TimelineProps {
3
+ children?: Snippet;
4
+ class?: string;
5
+ }
6
+ declare const Timeline: import("svelte").Component<TimelineProps, {}, "">;
7
+ type Timeline = ReturnType<typeof Timeline>;
8
+ export default Timeline;
@@ -0,0 +1,67 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+ import type { TimelineItemType, TimelineItemSize, TimelineItemPlacement } from './types'
4
+
5
+ interface TimelineItemProps {
6
+ timestamp?: string
7
+ hideTimestamp?: boolean
8
+ placement?: TimelineItemPlacement
9
+ type?: TimelineItemType
10
+ color?: string
11
+ size?: TimelineItemSize
12
+ hollow?: boolean
13
+ icon?: Snippet
14
+ dot?: Snippet
15
+ children?: Snippet
16
+ class?: string
17
+ }
18
+
19
+ let {
20
+ timestamp = '',
21
+ hideTimestamp = false,
22
+ placement = 'bottom',
23
+ type = 'primary',
24
+ color,
25
+ size = 'normal',
26
+ hollow = false,
27
+ icon,
28
+ dot,
29
+ children,
30
+ class: cls = '',
31
+ ...attrs
32
+ }: TimelineItemProps = $props()
33
+
34
+ const classes = $derived(`lm-timeline-item${cls ? ` ${cls}` : ''}`)
35
+
36
+ const nodeClasses = $derived(`lm-timeline-item__node lm-timeline-item__node--${type} lm-timeline-item__node--${size}${hollow ? ' is-hollow' : ''}`)
37
+
38
+ const nodeStyle = $derived(color ? `border-color: ${color}; ${hollow ? '' : `background-color: ${color}`}` : undefined)
39
+ </script>
40
+
41
+ <li class={classes} {...attrs}>
42
+ <div class="lm-timeline-item__tail"></div>
43
+
44
+ <div class={nodeClasses} style={nodeStyle}>
45
+ {#if dot}
46
+ {@render dot()}
47
+ {:else if icon}
48
+ {@render icon()}
49
+ {/if}
50
+ </div>
51
+
52
+ <div class="lm-timeline-item__wrapper">
53
+ {#if !hideTimestamp && placement === 'top'}
54
+ <div class="lm-timeline-item__timestamp is-top">{timestamp}</div>
55
+ {/if}
56
+
57
+ <div class="lm-timeline-item__content">
58
+ {#if children}
59
+ {@render children()}
60
+ {/if}
61
+ </div>
62
+
63
+ {#if !hideTimestamp && placement === 'bottom'}
64
+ <div class="lm-timeline-item__timestamp is-bottom">{timestamp}</div>
65
+ {/if}
66
+ </div>
67
+ </li>
@@ -0,0 +1,18 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { TimelineItemType, TimelineItemSize, TimelineItemPlacement } from './types';
3
+ interface TimelineItemProps {
4
+ timestamp?: string;
5
+ hideTimestamp?: boolean;
6
+ placement?: TimelineItemPlacement;
7
+ type?: TimelineItemType;
8
+ color?: string;
9
+ size?: TimelineItemSize;
10
+ hollow?: boolean;
11
+ icon?: Snippet;
12
+ dot?: Snippet;
13
+ children?: Snippet;
14
+ class?: string;
15
+ }
16
+ declare const TimelineItem: import("svelte").Component<TimelineItemProps, {}, "">;
17
+ type TimelineItem = ReturnType<typeof TimelineItem>;
18
+ export default TimelineItem;
@@ -0,0 +1,5 @@
1
+ import Timeline from './Timeline.svelte';
2
+ import TimelineItem from './TimelineItem.svelte';
3
+ export { Timeline, TimelineItem };
4
+ export type { TimelineProps, TimelineItemProps, TimelineItemType, TimelineItemSize, TimelineItemPlacement } from './types';
5
+ export default Timeline;
@@ -0,0 +1,4 @@
1
+ import Timeline from './Timeline.svelte';
2
+ import TimelineItem from './TimelineItem.svelte';
3
+ export { Timeline, TimelineItem };
4
+ export default Timeline;