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,700 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from "svelte";
3
+ import type {
4
+ TableProps,
5
+ TableColumn,
6
+ SortOrder,
7
+ SortChangeEvent,
8
+ RowClickEvent,
9
+ CellClickEvent,
10
+ SelectionChangeEvent,
11
+ TableActionButton,
12
+ } from "./types";
13
+ import Checkbox from "../Checkbox/Checkbox.svelte";
14
+ import Loading from "../Loading/Loading.svelte";
15
+ import Icon from "../Icon/Icon.svelte";
16
+ import Button from "../Button/Button.svelte";
17
+ import Space from "../Space/Space.svelte";
18
+ import { ChevronDown, ChevronUp } from "lucide";
19
+
20
+ // Props
21
+ let {
22
+ data = [],
23
+ columns = [],
24
+ rowKey = "id",
25
+ height,
26
+ maxHeight,
27
+ stripe = false,
28
+ border = false,
29
+ size = "default",
30
+ fit = true,
31
+ highlightCurrentRow = false,
32
+ currentRowKey,
33
+ rowClassName,
34
+ rowStyle,
35
+ cellClassName,
36
+ cellStyle,
37
+ headerRowClassName,
38
+ headerRowStyle,
39
+ headerCellClassName,
40
+ headerCellStyle,
41
+ emptyText = "暂无数据",
42
+ defaultExpandAll = false,
43
+ expandRowKeys = [],
44
+ defaultSort,
45
+ tooltipEffect = "dark",
46
+ tooltipOptions = {},
47
+ showHeader = true,
48
+ selectedRowKeys = [],
49
+ loading = false,
50
+ class: cls = "",
51
+ empty,
52
+ onsortchange,
53
+ onselectionchange,
54
+ onrowclick,
55
+ oncellclick,
56
+ oncurrentchange,
57
+ ...attrs
58
+ }: TableProps & {
59
+ onsortchange?: (e: SortChangeEvent) => void;
60
+ onselectionchange?: (e: SelectionChangeEvent) => void;
61
+ onrowclick?: (e: RowClickEvent) => void;
62
+ oncellclick?: (e: CellClickEvent) => void;
63
+ oncurrentchange?: (row: any) => void;
64
+ } = $props();
65
+
66
+ // State - use effects to sync with props
67
+ let sortState = $state<{ prop: string; order: SortOrder }>({
68
+ prop: "",
69
+ order: null,
70
+ });
71
+ let selectedKeys = $state<Set<string | number>>(new Set());
72
+ let currentRowKeyState = $state<string | number | undefined>(undefined);
73
+ let expandedKeys = $state<Set<string | number>>(new Set());
74
+ let hoveredTooltipCell = $state<{
75
+ rowIndex: number;
76
+ colIndex: number;
77
+ content: string;
78
+ } | null>(null);
79
+
80
+ // Sync props to state
81
+ $effect(() => {
82
+ if (defaultSort) {
83
+ sortState = {
84
+ prop: defaultSort.prop || "",
85
+ order: defaultSort.order || null,
86
+ };
87
+ }
88
+ });
89
+
90
+ $effect(() => {
91
+ selectedKeys = new Set(selectedRowKeys);
92
+ });
93
+
94
+ $effect(() => {
95
+ currentRowKeyState = currentRowKey;
96
+ });
97
+
98
+ $effect(() => {
99
+ expandedKeys = new Set(expandRowKeys);
100
+ });
101
+ let tooltipVisible = $state(false);
102
+ let tooltipPosition = $state({ top: 0, left: 0 });
103
+ let tableRef = $state<HTMLDivElement | null>(null);
104
+
105
+ // Get row key value
106
+ const getRowKey = (row: any, index: number): string | number => {
107
+ if (typeof rowKey === "function") {
108
+ return rowKey(row);
109
+ }
110
+ return row[rowKey] ?? index;
111
+ };
112
+
113
+ // Get cell value
114
+ const getCellValue = (row: any, column: TableColumn): any => {
115
+ if (!column.prop) return "";
116
+ const keys = column.prop.split(".");
117
+ let value = row;
118
+ for (const key of keys) {
119
+ if (value == null) return "";
120
+ value = value[key];
121
+ }
122
+ return value;
123
+ };
124
+
125
+ // Format cell value
126
+ const formatCellValue = (
127
+ row: any,
128
+ column: TableColumn,
129
+ index: number,
130
+ ): string | number => {
131
+ const value = getCellValue(row, column);
132
+ if (column.formatter) {
133
+ return column.formatter(row, column, value, index);
134
+ }
135
+ if (value == null) return "";
136
+ return value;
137
+ };
138
+
139
+ const getCellComponentProps = (
140
+ row: any,
141
+ column: TableColumn,
142
+ index: number,
143
+ ): Record<string, any> => {
144
+ const cellValue = getCellValue(row, column);
145
+ if (!column.cellComponentProps) return {};
146
+ if (typeof column.cellComponentProps === "function") {
147
+ return column.cellComponentProps(row, column, cellValue, index) || {};
148
+ }
149
+ return column.cellComponentProps;
150
+ };
151
+
152
+ // Get action button disabled state
153
+ const isActionDisabled = <T,>(
154
+ action: TableActionButton<T>,
155
+ row: T,
156
+ index: number,
157
+ ): boolean => {
158
+ if (typeof action.disabled === "function") {
159
+ return action.disabled(row, index);
160
+ }
161
+ return action.disabled ?? false;
162
+ };
163
+
164
+ // Get action button hidden state
165
+ const isActionHidden = <T,>(
166
+ action: TableActionButton<T>,
167
+ row: T,
168
+ index: number,
169
+ ): boolean => {
170
+ if (typeof action.hidden === "function") {
171
+ return action.hidden(row, index);
172
+ }
173
+ return action.hidden ?? false;
174
+ };
175
+
176
+ // Get visible actions for a row
177
+ const getVisibleActions = <T,>(
178
+ actions: TableActionButton<T>[] | undefined,
179
+ row: T,
180
+ index: number,
181
+ ): TableActionButton<T>[] => {
182
+ if (!actions) return [];
183
+ return actions.filter((action) => !isActionHidden(action, row, index));
184
+ };
185
+
186
+ // Sorted data
187
+ const sortedData = $derived.by(() => {
188
+ if (!sortState.prop || !sortState.order) {
189
+ return [...data];
190
+ }
191
+ const column = columns.find((c) => c.prop === sortState.prop);
192
+ if (!column) return [...data];
193
+
194
+ const sorted = [...data];
195
+ const order = sortState.order === "ascending" ? 1 : -1;
196
+
197
+ if (column.sortMethod) {
198
+ sorted.sort((a, b) => column.sortMethod!(a, b) * order);
199
+ } else {
200
+ sorted.sort((a, b) => {
201
+ const aVal = getCellValue(a, column);
202
+ const bVal = getCellValue(b, column);
203
+ if (aVal === bVal) return 0;
204
+ if (aVal == null) return 1;
205
+ if (bVal == null) return -1;
206
+ if (typeof aVal === "number" && typeof bVal === "number") {
207
+ return (aVal - bVal) * order;
208
+ }
209
+ return String(aVal).localeCompare(String(bVal)) * order;
210
+ });
211
+ }
212
+ return sorted;
213
+ });
214
+
215
+ // Handle sort
216
+ const handleSort = (column: TableColumn) => {
217
+ if (!column.sortable || !column.prop) return;
218
+
219
+ const orders: SortOrder[] = column.sortOrders || [
220
+ "ascending",
221
+ "descending",
222
+ null,
223
+ ];
224
+ let currentIndex = orders.indexOf(sortState.order);
225
+ if (sortState.prop !== column.prop) {
226
+ currentIndex = -1;
227
+ }
228
+ const nextIndex = (currentIndex + 1) % orders.length;
229
+ const newOrder = orders[nextIndex];
230
+
231
+ sortState = { prop: column.prop, order: newOrder };
232
+
233
+ onsortchange?.({ column, prop: column.prop, order: newOrder });
234
+ };
235
+
236
+ // Handle selection
237
+ const handleSelect = (row: any, index: number) => {
238
+ const key = getRowKey(row, index);
239
+ const newSelected = new Set(selectedKeys);
240
+ if (newSelected.has(key)) {
241
+ newSelected.delete(key);
242
+ } else {
243
+ newSelected.add(key);
244
+ }
245
+ selectedKeys = newSelected;
246
+ onselectionchange?.({
247
+ selection: data.filter((r, i) => selectedKeys.has(getRowKey(r, i))),
248
+ });
249
+ };
250
+
251
+ // Handle select all
252
+ const handleSelectAll = () => {
253
+ const selectableRows = data.filter((row, index) => {
254
+ const column = columns.find((c) => c.type === "selection");
255
+ return !column?.selectable || column.selectable(row, index);
256
+ });
257
+ const allSelected = selectableRows.every((row, index) =>
258
+ selectedKeys.has(getRowKey(row, index)),
259
+ );
260
+
261
+ if (allSelected) {
262
+ selectedKeys = new Set();
263
+ } else {
264
+ selectedKeys = new Set(
265
+ selectableRows.map((row, index) => getRowKey(row, index)),
266
+ );
267
+ }
268
+ onselectionchange?.({
269
+ selection: data.filter((r, i) => selectedKeys.has(getRowKey(r, i))),
270
+ });
271
+ };
272
+
273
+ // Check if all selected
274
+ const isAllSelected = $derived.by(() => {
275
+ if (data.length === 0) return false;
276
+ const selectableRows = data.filter((row, index) => {
277
+ const column = columns.find((c) => c.type === "selection");
278
+ return !column?.selectable || column.selectable(row, index);
279
+ });
280
+ return (
281
+ selectableRows.length > 0 &&
282
+ selectableRows.every((row, index) =>
283
+ selectedKeys.has(getRowKey(row, index)),
284
+ )
285
+ );
286
+ });
287
+
288
+ // Check if indeterminate
289
+ const isIndeterminate = $derived.by(() => {
290
+ const selectedCount = data.filter((row, index) =>
291
+ selectedKeys.has(getRowKey(row, index)),
292
+ ).length;
293
+ return selectedCount > 0 && selectedCount < data.length;
294
+ });
295
+
296
+ // Handle row click
297
+ const handleRowClick = (row: any, column: TableColumn, event: MouseEvent) => {
298
+ if (highlightCurrentRow) {
299
+ const key = getRowKey(row, data.indexOf(row));
300
+ currentRowKeyState = key;
301
+ oncurrentchange?.(row);
302
+ }
303
+ onrowclick?.({ row, column, event });
304
+ };
305
+
306
+ // Handle cell click
307
+ const handleCellClick = (
308
+ row: any,
309
+ column: TableColumn,
310
+ cell: HTMLElement,
311
+ event: MouseEvent,
312
+ ) => {
313
+ oncellclick?.({ row, column, cell, event });
314
+ };
315
+
316
+ // Get row class
317
+ const getRowClass = (row: any, index: number): string => {
318
+ const classes: string[] = ["lm-table__row"];
319
+ if (stripe && index % 2 === 1) {
320
+ classes.push("lm-table__row--striped");
321
+ }
322
+ if (highlightCurrentRow && currentRowKeyState === getRowKey(row, index)) {
323
+ classes.push("is-current");
324
+ }
325
+ if (typeof rowClassName === "function") {
326
+ const custom = rowClassName(row, index);
327
+ if (custom) classes.push(custom);
328
+ } else if (rowClassName) {
329
+ classes.push(rowClassName);
330
+ }
331
+ return classes.join(" ");
332
+ };
333
+
334
+ // Get row style
335
+ const getRowStyleString = (row: any, index: number): string => {
336
+ if (typeof rowStyle === "function") {
337
+ const style = rowStyle(row, index);
338
+ return Object.entries(style)
339
+ .map(([k, v]) => `${k}: ${v}`)
340
+ .join("; ");
341
+ }
342
+ if (typeof rowStyle === "object") {
343
+ return Object.entries(rowStyle)
344
+ .map(([k, v]) => `${k}: ${v}`)
345
+ .join("; ");
346
+ }
347
+ return rowStyle || "";
348
+ };
349
+
350
+ // Get cell class
351
+ const getCellClass = (
352
+ row: any,
353
+ column: TableColumn,
354
+ rowIndex: number,
355
+ colIndex: number,
356
+ ): string => {
357
+ const classes: string[] = ["lm-table__cell"];
358
+ if (column.type === "selection") {
359
+ classes.push("is-center");
360
+ }
361
+ if (column.align) {
362
+ classes.push(`is-${column.align}`);
363
+ }
364
+ if (column.className) {
365
+ classes.push(column.className);
366
+ }
367
+ if (typeof cellClassName === "function") {
368
+ const custom = cellClassName(row, column, rowIndex, colIndex);
369
+ if (custom) classes.push(custom);
370
+ } else if (cellClassName) {
371
+ classes.push(cellClassName);
372
+ }
373
+ return classes.join(" ");
374
+ };
375
+
376
+ // Get header cell class
377
+ const getHeaderCellClass = (column: TableColumn, index: number): string => {
378
+ const classes: string[] = ["lm-table__cell", "lm-table__header-cell"];
379
+ if (column.type === "selection") {
380
+ classes.push("is-center");
381
+ }
382
+ if (column.headerAlign || column.align) {
383
+ classes.push(`is-${column.headerAlign || column.align}`);
384
+ }
385
+ if (column.labelClassName) {
386
+ classes.push(column.labelClassName);
387
+ }
388
+ if (column.sortable) {
389
+ classes.push("is-sortable");
390
+ }
391
+ if (sortState.prop === column.prop && sortState.order) {
392
+ classes.push(`is-sorted-${sortState.order}`);
393
+ }
394
+ if (typeof headerCellClassName === "function") {
395
+ const custom = headerCellClassName(column, index);
396
+ if (custom) classes.push(custom);
397
+ } else if (headerCellClassName) {
398
+ classes.push(headerCellClassName);
399
+ }
400
+ return classes.join(" ");
401
+ };
402
+
403
+ // Get column width style
404
+ const getColumnWidthStyle = (column: TableColumn): string => {
405
+ const styles: string[] = [];
406
+ if (column.width) {
407
+ const width =
408
+ typeof column.width === "number" ? `${column.width}px` : column.width;
409
+ styles.push(`width: ${width}`);
410
+ styles.push(`min-width: ${width}`);
411
+ } else if (column.minWidth) {
412
+ const minWidth =
413
+ typeof column.minWidth === "number"
414
+ ? `${column.minWidth}px`
415
+ : column.minWidth;
416
+ styles.push(`min-width: ${minWidth}`);
417
+ }
418
+ return styles.join("; ");
419
+ };
420
+
421
+ // Get index value
422
+ const getIndexValue = (column: TableColumn, index: number): number => {
423
+ if (typeof column.index === "function") {
424
+ return column.index(index);
425
+ }
426
+ return (column.index ?? 1) + index;
427
+ };
428
+
429
+ // Tooltip handling for overflow
430
+ let tooltipTimeout: ReturnType<typeof setTimeout> | null = null;
431
+ let cellRefs = $state<Map<string, HTMLElement>>(new Map());
432
+
433
+ const checkOverflow = (element: HTMLElement): boolean => {
434
+ return element.scrollWidth > element.clientWidth;
435
+ };
436
+
437
+ const handleCellMouseEnter = (
438
+ event: MouseEvent,
439
+ row: any,
440
+ column: TableColumn,
441
+ rowIndex: number,
442
+ colIndex: number,
443
+ ) => {
444
+ if (!column.showOverflowTooltip) return;
445
+
446
+ const target = event.currentTarget as HTMLElement;
447
+ const cellContent = target.querySelector(
448
+ ".lm-table__cell-text",
449
+ ) as HTMLElement;
450
+
451
+ if (!cellContent || !checkOverflow(cellContent)) return;
452
+
453
+ const content = formatCellValue(row, column, rowIndex);
454
+ if (!content) return;
455
+
456
+ // Clear existing timeout
457
+ if (tooltipTimeout) {
458
+ clearTimeout(tooltipTimeout);
459
+ }
460
+
461
+ tooltipTimeout = setTimeout(() => {
462
+ const rect = target.getBoundingClientRect();
463
+ const tableRect = tableRef?.getBoundingClientRect();
464
+
465
+ if (tableRect) {
466
+ tooltipPosition = {
467
+ top: rect.top - tableRect.top - 10,
468
+ left: rect.left - tableRect.left + rect.width / 2,
469
+ };
470
+ }
471
+
472
+ hoveredTooltipCell = { rowIndex, colIndex, content: String(content) };
473
+ tooltipVisible = true;
474
+ }, 300);
475
+ };
476
+
477
+ const handleCellMouseLeave = () => {
478
+ if (tooltipTimeout) {
479
+ clearTimeout(tooltipTimeout);
480
+ tooltipTimeout = null;
481
+ }
482
+ tooltipVisible = false;
483
+ hoveredTooltipCell = null;
484
+ };
485
+
486
+ // Table classes
487
+ const tableClasses = $derived(
488
+ `lm-table${border ? " lm-table--border" : ""}${stripe ? " lm-table--striped" : ""}${size !== "default" ? ` lm-table--${size}` : ""}${fit ? " lm-table--fit" : ""}${highlightCurrentRow ? " lm-table--highlight-current-row" : ""}${loading ? " is-loading" : ""}${cls ? ` ${cls}` : ""}`,
489
+ );
490
+
491
+ // Table style
492
+ const tableStyle = $derived.by(() => {
493
+ const styles: string[] = [];
494
+ if (height) {
495
+ const h = typeof height === "number" ? `${height}px` : height;
496
+ styles.push(`height: ${h}`);
497
+ }
498
+ if (maxHeight) {
499
+ const mh = typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight;
500
+ styles.push(`max-height: ${mh}`);
501
+ }
502
+ return styles.join("; ");
503
+ });
504
+
505
+ // Cleanup
506
+ $effect(() => {
507
+ return () => {
508
+ if (tooltipTimeout) {
509
+ clearTimeout(tooltipTimeout);
510
+ }
511
+ };
512
+ });
513
+ </script>
514
+
515
+ <div {...attrs} bind:this={tableRef} class={tableClasses} style={tableStyle}>
516
+ <Loading visible={loading} lock={false}>
517
+ <div class="lm-table__inner-wrapper">
518
+ <table class="lm-table__table" cellspacing="0" cellpadding="0" border="0">
519
+ <colgroup>
520
+ {#each columns as column}
521
+ <col style={getColumnWidthStyle(column)} />
522
+ {/each}
523
+ </colgroup>
524
+ {#if showHeader}
525
+ <thead class="lm-table__header">
526
+ <tr class="lm-table__row">
527
+ {#each columns as column, colIndex}
528
+ <th
529
+ class={getHeaderCellClass(column, colIndex)}
530
+ onclick={() => handleSort(column)}
531
+ >
532
+ <div class="lm-table__cell-wrapper">
533
+ {#if column.type === "selection"}
534
+ <Checkbox
535
+ checked={isAllSelected}
536
+ indeterminate={isIndeterminate}
537
+ onchange={handleSelectAll}
538
+ size="small"
539
+ />
540
+ {:else if column.renderHeader}
541
+ {@render column.renderHeader({
542
+ column,
543
+ $index: colIndex,
544
+ })}
545
+ {:else}
546
+ <span class="lm-table__header-text"
547
+ >{column.label || ""}</span
548
+ >
549
+ {/if}
550
+ {#if column.sortable}
551
+ <span class="lm-table__sort-caret">
552
+ <Icon
553
+ icon={ChevronUp}
554
+ size={12}
555
+ class={`lm-table__sort-icon lm-table__sort-icon--asc${sortState.prop === column.prop && sortState.order === "ascending" ? " is-active" : ""}`}
556
+ />
557
+ <Icon
558
+ icon={ChevronDown}
559
+ size={12}
560
+ class={`lm-table__sort-icon lm-table__sort-icon--desc${sortState.prop === column.prop && sortState.order === "descending" ? " is-active" : ""}`}
561
+ />
562
+ </span>
563
+ {/if}
564
+ </div>
565
+ </th>
566
+ {/each}
567
+ </tr>
568
+ </thead>
569
+ {/if}
570
+ <tbody class="lm-table__body">
571
+ {#if sortedData.length === 0}
572
+ <tr class="lm-table__row lm-table__empty-row">
573
+ <td
574
+ class="lm-table__cell lm-table__empty-cell"
575
+ colspan={columns.length}
576
+ >
577
+ <div class="lm-table__empty">
578
+ {#if empty}
579
+ {@render empty()}
580
+ {:else}
581
+ <span class="lm-table__empty-text">{emptyText}</span>
582
+ {/if}
583
+ </div>
584
+ </td>
585
+ </tr>
586
+ {:else}
587
+ {#each sortedData as row, rowIndex (getRowKey(row, rowIndex))}
588
+ <tr
589
+ class={getRowClass(row, rowIndex)}
590
+ style={getRowStyleString(row, rowIndex)}
591
+ >
592
+ {#each columns as column, colIndex}
593
+ <td
594
+ class={getCellClass(row, column, rowIndex, colIndex)}
595
+ onclick={(e) => {
596
+ handleRowClick(row, column, e);
597
+ handleCellClick(
598
+ row,
599
+ column,
600
+ e.currentTarget as HTMLElement,
601
+ e,
602
+ );
603
+ }}
604
+ onmouseenter={(e) =>
605
+ handleCellMouseEnter(e, row, column, rowIndex, colIndex)}
606
+ onmouseleave={handleCellMouseLeave}
607
+ >
608
+ <div
609
+ class="lm-table__cell-wrapper"
610
+ class:has-overflow-tooltip={column.showOverflowTooltip}
611
+ >
612
+ {#if column.type === "selection"}
613
+ {@const selectable =
614
+ !column.selectable ||
615
+ column.selectable(row, rowIndex)}
616
+ <Checkbox
617
+ checked={selectedKeys.has(getRowKey(row, rowIndex))}
618
+ disabled={!selectable}
619
+ onchange={() => handleSelect(row, rowIndex)}
620
+ size="small"
621
+ />
622
+ {:else if column.type === "index"}
623
+ <span class="lm-table__cell-text"
624
+ >{getIndexValue(column, rowIndex)}</span
625
+ >
626
+ {:else if column.type === "actions"}
627
+ {@const visibleActions = getVisibleActions(
628
+ column.actions,
629
+ row,
630
+ rowIndex,
631
+ )}
632
+ <Space size="small">
633
+ {#each visibleActions as action, actionIndex (actionIndex)}
634
+ <Button
635
+ type={action.type || "primary"}
636
+ plain
637
+ size="small"
638
+ disabled={isActionDisabled(action, row, rowIndex)}
639
+ onclick={(e: MouseEvent) => {
640
+ e.stopPropagation();
641
+ action.onClick?.(row, rowIndex);
642
+ }}
643
+ >
644
+ {action.label}
645
+ </Button>
646
+ {/each}
647
+ </Space>
648
+ {:else if column.render}
649
+ {@render column.render({
650
+ row,
651
+ column,
652
+ $index: rowIndex,
653
+ cellValue: getCellValue(row, column),
654
+ })}
655
+ {:else if column.cellComponent}
656
+ {@const CellComp = column.cellComponent}
657
+ <span
658
+ class="lm-table__cell-text"
659
+ class:is-ellipsis={column.showOverflowTooltip}
660
+ >
661
+ <CellComp
662
+ {...getCellComponentProps(row, column, rowIndex)}
663
+ >
664
+ {formatCellValue(row, column, rowIndex)}
665
+ </CellComp>
666
+ </span>
667
+ {:else}
668
+ <span
669
+ class="lm-table__cell-text"
670
+ class:is-ellipsis={column.showOverflowTooltip}
671
+ >
672
+ {formatCellValue(row, column, rowIndex)}
673
+ </span>
674
+ {/if}
675
+ </div>
676
+ </td>
677
+ {/each}
678
+ </tr>
679
+ {/each}
680
+ {/if}
681
+ </tbody>
682
+ </table>
683
+ </div>
684
+ </Loading>
685
+
686
+ <!-- Tooltip -->
687
+ {#if tooltipVisible && hoveredTooltipCell}
688
+ <div
689
+ class="lm-table__tooltip lm-tooltip__popper is-{tooltipOptions?.placement ||
690
+ 'top'} {tooltipEffect === 'light' ? 'is-light' : ''}"
691
+ style="top: {tooltipPosition.top}px; left: {tooltipPosition.left}px;"
692
+ role="tooltip"
693
+ >
694
+ {hoveredTooltipCell.content}
695
+ {#if tooltipOptions?.showArrow !== false}
696
+ <div class="lm-tooltip__arrow"></div>
697
+ {/if}
698
+ </div>
699
+ {/if}
700
+ </div>
@@ -0,0 +1,11 @@
1
+ import type { TableProps, SortChangeEvent, RowClickEvent, CellClickEvent, SelectionChangeEvent } from './types';
2
+ type $$ComponentProps = TableProps & {
3
+ onsortchange?: (e: SortChangeEvent) => void;
4
+ onselectionchange?: (e: SelectionChangeEvent) => void;
5
+ onrowclick?: (e: RowClickEvent) => void;
6
+ oncellclick?: (e: CellClickEvent) => void;
7
+ oncurrentchange?: (row: any) => void;
8
+ };
9
+ declare const Table: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type Table = ReturnType<typeof Table>;
11
+ export default Table;