@fangxinyan/lumina 0.6.18 → 0.8.0

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 (466) hide show
  1. package/dist/{Alert-HVPI6L4V.css → Alert-DJ3K7N7L.css} +9 -9
  2. package/dist/Alert.cjs +5 -3
  3. package/dist/Alert.d.cts +2 -2
  4. package/dist/Alert.d.ts +2 -2
  5. package/dist/Alert.js +4 -2
  6. package/dist/{AppShell-FZCD4C56.css → AppShell-OWJRJ4ZD.css} +57 -22
  7. package/dist/AppShell.cjs +8 -5
  8. package/dist/AppShell.d.cts +19 -16
  9. package/dist/AppShell.d.ts +19 -16
  10. package/dist/AppShell.js +4 -1
  11. package/dist/{AutoComplete-4YZBMW4E.css → AutoComplete-PNCYHU2T.css} +8 -8
  12. package/dist/AutoComplete.cjs +9 -6
  13. package/dist/AutoComplete.d.cts +2 -1
  14. package/dist/AutoComplete.d.ts +2 -1
  15. package/dist/AutoComplete.js +8 -5
  16. package/dist/Avatar-YBU2YZTW.css +48 -0
  17. package/dist/Avatar.cjs +4 -2
  18. package/dist/Avatar.d.cts +6 -2
  19. package/dist/Avatar.d.ts +6 -2
  20. package/dist/Avatar.js +3 -1
  21. package/dist/Badge-DBWJEV4C.css +22 -0
  22. package/dist/Badge.cjs +4 -2
  23. package/dist/Badge.d.cts +6 -2
  24. package/dist/Badge.d.ts +6 -2
  25. package/dist/Badge.js +3 -1
  26. package/dist/{Button-TUMZUQLI.css → Button-ILNZUX2N.css} +28 -21
  27. package/dist/Button.cjs +6 -4
  28. package/dist/Button.d.cts +2 -14
  29. package/dist/Button.d.ts +2 -14
  30. package/dist/Button.js +4 -2
  31. package/dist/{Calendar-I6NHCXIB.css → Calendar-QJ5HWEJQ.css} +26 -26
  32. package/dist/Calendar.cjs +5 -3
  33. package/dist/Calendar.d.cts +8 -4
  34. package/dist/Calendar.d.ts +8 -4
  35. package/dist/Calendar.js +4 -2
  36. package/dist/Card-VPMTWAWZ.css +98 -0
  37. package/dist/Card.cjs +7 -3
  38. package/dist/Card.d.cts +8 -4
  39. package/dist/Card.d.ts +8 -4
  40. package/dist/Card.js +6 -2
  41. package/dist/Cascader-YBVDK6DC.css +168 -0
  42. package/dist/Cascader.cjs +9 -6
  43. package/dist/Cascader.d.cts +21 -3
  44. package/dist/Cascader.d.ts +21 -3
  45. package/dist/Cascader.js +8 -5
  46. package/dist/Checkbox-IHFML4FV.css +50 -0
  47. package/dist/Checkbox.cjs +5 -3
  48. package/dist/Checkbox.d.cts +10 -2
  49. package/dist/Checkbox.d.ts +10 -2
  50. package/dist/Checkbox.js +4 -2
  51. package/dist/{Collapse-UNBHEPYP.css → Collapse-BTSBHBSY.css} +12 -7
  52. package/dist/Collapse.cjs +5 -3
  53. package/dist/Collapse.d.cts +2 -2
  54. package/dist/Collapse.d.ts +2 -2
  55. package/dist/Collapse.js +4 -2
  56. package/dist/{ColorPicker-LPG6QPYF.css → ColorPicker-GRZOKR5O.css} +17 -32
  57. package/dist/ColorPicker.cjs +9 -3
  58. package/dist/ColorPicker.d.cts +7 -11
  59. package/dist/ColorPicker.d.ts +7 -11
  60. package/dist/ColorPicker.js +8 -2
  61. package/dist/{CommandPalette-RTKWNH2D.css → CommandPalette-GHTX7AAA.css} +22 -23
  62. package/dist/CommandPalette.cjs +8 -5
  63. package/dist/CommandPalette.d.cts +5 -28
  64. package/dist/CommandPalette.d.ts +5 -28
  65. package/dist/CommandPalette.js +7 -4
  66. package/dist/{ContextMenu-WRR2SSWL.css → ContextMenu-NG524Y2P.css} +17 -17
  67. package/dist/ContextMenu.cjs +5 -2
  68. package/dist/ContextMenu.d.cts +2 -19
  69. package/dist/ContextMenu.d.ts +2 -19
  70. package/dist/ContextMenu.js +4 -1
  71. package/dist/{DatePicker-VDVSIARF.css → DatePicker-ZSFDXAYD.css} +4 -4
  72. package/dist/DatePicker.cjs +11 -8
  73. package/dist/DatePicker.d.cts +4 -7
  74. package/dist/DatePicker.d.ts +4 -7
  75. package/dist/DatePicker.js +10 -7
  76. package/dist/{DateTimePicker-DRX7XA74.css → DateTimePicker-EWSISVIF.css} +17 -17
  77. package/dist/DateTimePicker.cjs +11 -8
  78. package/dist/DateTimePicker.d.cts +4 -8
  79. package/dist/DateTimePicker.d.ts +4 -8
  80. package/dist/DateTimePicker.js +10 -7
  81. package/dist/{Divider-RPQCVH3J.css → Divider-OI2BXPBU.css} +10 -10
  82. package/dist/Divider.cjs +4 -2
  83. package/dist/Divider.d.cts +2 -2
  84. package/dist/Divider.d.ts +2 -2
  85. package/dist/Divider.js +3 -1
  86. package/dist/{Drawer-7KICRM4L.css → Drawer-VCXAXWV6.css} +30 -17
  87. package/dist/Drawer.cjs +6 -3
  88. package/dist/Drawer.d.cts +25 -3
  89. package/dist/Drawer.d.ts +25 -3
  90. package/dist/Drawer.js +5 -2
  91. package/dist/{Empty-CZTRZMZQ.css → Empty-U5CBLCAL.css} +5 -5
  92. package/dist/Empty.cjs +4 -2
  93. package/dist/Empty.d.cts +2 -2
  94. package/dist/Empty.d.ts +2 -2
  95. package/dist/Empty.js +3 -1
  96. package/dist/{Form-NGCQWTMZ.css → Form-DNEDZRJA.css} +7 -7
  97. package/dist/Form.cjs +7 -4
  98. package/dist/Form.d.cts +4 -3
  99. package/dist/Form.d.ts +4 -3
  100. package/dist/Form.js +4 -1
  101. package/dist/Icon-HJSUVW4O.css +12 -0
  102. package/dist/Icon.cjs +51 -49
  103. package/dist/Icon.d.cts +8 -8
  104. package/dist/Icon.d.ts +8 -8
  105. package/dist/Icon.js +3 -1
  106. package/dist/{Image-NISJRUWX.css → Image-CZJPPURT.css} +25 -23
  107. package/dist/Image.cjs +10 -7
  108. package/dist/Image.d.cts +5 -24
  109. package/dist/Image.d.ts +5 -24
  110. package/dist/Image.js +6 -3
  111. package/dist/{Input-7GDPGP3E.css → Input-ZUASNDXM.css} +15 -15
  112. package/dist/Input.cjs +7 -5
  113. package/dist/Input.d.cts +2 -1
  114. package/dist/Input.d.ts +2 -1
  115. package/dist/Input.js +5 -3
  116. package/dist/{InputNumber-VXQIWLQC.css → InputNumber-6NHBMRT4.css} +7 -7
  117. package/dist/InputNumber.cjs +7 -5
  118. package/dist/InputNumber.d.cts +2 -1
  119. package/dist/InputNumber.d.ts +2 -1
  120. package/dist/InputNumber.js +6 -4
  121. package/dist/List-6BQIFAIT.css +42 -0
  122. package/dist/List.cjs +4 -2
  123. package/dist/List.d.cts +2 -2
  124. package/dist/List.d.ts +2 -2
  125. package/dist/List.js +3 -1
  126. package/dist/{Message-H222YGR6.css → Message-OTZWQTQ5.css} +13 -13
  127. package/dist/Message.cjs +9 -6
  128. package/dist/Message.d.cts +18 -2
  129. package/dist/Message.d.ts +18 -2
  130. package/dist/Message.js +5 -2
  131. package/dist/{Modal-ZFWNFEA5.css → Modal-UI2FXNDR.css} +29 -18
  132. package/dist/Modal.cjs +7 -4
  133. package/dist/Modal.d.cts +13 -2
  134. package/dist/Modal.d.ts +13 -2
  135. package/dist/Modal.js +6 -3
  136. package/dist/Pagination-POJTWMYR.css +70 -0
  137. package/dist/Pagination.cjs +11 -8
  138. package/dist/Pagination.d.cts +2 -2
  139. package/dist/Pagination.d.ts +2 -2
  140. package/dist/Pagination.js +10 -7
  141. package/dist/{Popover-Y3LDCJPW.css → Popover-LCXLR3EU.css} +13 -14
  142. package/dist/Popover.cjs +6 -3
  143. package/dist/Popover.d.cts +3 -10
  144. package/dist/Popover.d.ts +3 -10
  145. package/dist/Popover.js +5 -2
  146. package/dist/Progress-33WE2NI7.css +90 -0
  147. package/dist/Progress.cjs +4 -2
  148. package/dist/Progress.d.cts +4 -2
  149. package/dist/Progress.d.ts +4 -2
  150. package/dist/Progress.js +3 -1
  151. package/dist/{Radio-IQKASYDF.css → Radio-RL7232MZ.css} +21 -13
  152. package/dist/Radio.cjs +5 -3
  153. package/dist/Radio.d.cts +18 -5
  154. package/dist/Radio.d.ts +18 -5
  155. package/dist/Radio.js +3 -1
  156. package/dist/{Select-YZ2NUJSX.css → Select-TU37MAHZ.css} +64 -40
  157. package/dist/Select.cjs +10 -7
  158. package/dist/Select.d.cts +28 -3
  159. package/dist/Select.d.ts +28 -3
  160. package/dist/Select.js +9 -6
  161. package/dist/{Skeleton-CVWH2VWN.css → Skeleton-FMFE3BRI.css} +9 -4
  162. package/dist/Skeleton.cjs +4 -2
  163. package/dist/Skeleton.d.cts +2 -4
  164. package/dist/Skeleton.d.ts +2 -4
  165. package/dist/Skeleton.js +3 -1
  166. package/dist/Slider-FZ5MI4X2.css +145 -0
  167. package/dist/Slider.cjs +4 -2
  168. package/dist/Slider.d.cts +6 -5
  169. package/dist/Slider.d.ts +6 -5
  170. package/dist/Slider.js +3 -1
  171. package/dist/{Spin-GONGPV4Q.css → Spin-F5YIEENO.css} +15 -9
  172. package/dist/Spin.cjs +4 -2
  173. package/dist/Spin.d.cts +2 -2
  174. package/dist/Spin.d.ts +2 -2
  175. package/dist/Spin.js +3 -1
  176. package/dist/{Splitter-DHNOY4NC.css → Splitter-IQ3PFIKK.css} +4 -4
  177. package/dist/Splitter.cjs +4 -2
  178. package/dist/Splitter.d.cts +18 -12
  179. package/dist/Splitter.d.ts +18 -12
  180. package/dist/Splitter.js +3 -1
  181. package/dist/{StatusBar-FJKEEPXU.css → StatusBar-TCGR3LXP.css} +23 -9
  182. package/dist/StatusBar.cjs +5 -3
  183. package/dist/StatusBar.d.cts +5 -17
  184. package/dist/StatusBar.d.ts +5 -17
  185. package/dist/StatusBar.js +3 -1
  186. package/dist/{Surface-UDDN3DGL.css → Surface-CTN775GD.css} +10 -10
  187. package/dist/Surface.cjs +6 -5
  188. package/dist/Surface.d.cts +10 -1
  189. package/dist/Surface.d.ts +10 -1
  190. package/dist/Surface.js +4 -3
  191. package/dist/{Switch-COAQIOMH.css → Switch-TATU3LPB.css} +16 -8
  192. package/dist/Switch.cjs +4 -2
  193. package/dist/Switch.d.cts +10 -4
  194. package/dist/Switch.d.ts +10 -4
  195. package/dist/Switch.js +3 -1
  196. package/dist/{Table-IWHIIGRJ.css → Table-KB6EEBDJ.css} +105 -53
  197. package/dist/Table.cjs +14 -10
  198. package/dist/Table.d.cts +38 -3
  199. package/dist/Table.d.ts +38 -3
  200. package/dist/Table.js +13 -9
  201. package/dist/{TablePro-3NGWERWT.css → TablePro-WYE6TXWJ.css} +5 -5
  202. package/dist/TablePro.cjs +15 -11
  203. package/dist/TablePro.d.cts +1 -0
  204. package/dist/TablePro.d.ts +1 -0
  205. package/dist/TablePro.js +14 -10
  206. package/dist/{Tabs-X5U5PCPV.css → Tabs-FB2AMBWL.css} +24 -10
  207. package/dist/Tabs.cjs +4 -2
  208. package/dist/Tabs.d.cts +8 -2
  209. package/dist/Tabs.d.ts +8 -2
  210. package/dist/Tabs.js +3 -1
  211. package/dist/Tag-5GIZLRAH.css +42 -0
  212. package/dist/Tag.cjs +5 -3
  213. package/dist/Tag.d.cts +2 -2
  214. package/dist/Tag.d.ts +2 -2
  215. package/dist/Tag.js +4 -2
  216. package/dist/{Textarea-YHWKHIFE.css → Textarea-ZGHBZNLX.css} +10 -10
  217. package/dist/Textarea.cjs +6 -4
  218. package/dist/Textarea.d.cts +2 -4
  219. package/dist/Textarea.d.ts +2 -4
  220. package/dist/Textarea.js +4 -2
  221. package/dist/Theme-CLedeJ_C.d.ts +193 -0
  222. package/dist/Theme-uQq2B0Yk.d.cts +193 -0
  223. package/dist/Theme.cjs +57 -11
  224. package/dist/Theme.d.cts +26 -145
  225. package/dist/Theme.d.ts +26 -145
  226. package/dist/Theme.js +3 -1
  227. package/dist/{ThemePanel-TEHB2JCQ.css → ThemePanel-EHNAS4RN.css} +52 -52
  228. package/dist/ThemePanel.cjs +17 -15
  229. package/dist/ThemePanel.d.cts +3 -13
  230. package/dist/ThemePanel.d.ts +3 -13
  231. package/dist/ThemePanel.js +14 -12
  232. package/dist/{TimePicker-ZBJOXH3U.css → TimePicker-WJ3FSK6A.css} +17 -17
  233. package/dist/TimePicker.cjs +10 -7
  234. package/dist/TimePicker.d.cts +2 -8
  235. package/dist/TimePicker.d.ts +2 -8
  236. package/dist/TimePicker.js +9 -6
  237. package/dist/{Timeline-CRFZ3I2W.css → Timeline-FUFO2UGY.css} +28 -13
  238. package/dist/Timeline.cjs +5 -3
  239. package/dist/Timeline.d.cts +2 -7
  240. package/dist/Timeline.d.ts +2 -7
  241. package/dist/Timeline.js +4 -2
  242. package/dist/{Tooltip-5FSPJWLX.css → Tooltip-2EUNTOTW.css} +3 -3
  243. package/dist/Tooltip.cjs +6 -3
  244. package/dist/Tooltip.d.cts +2 -2
  245. package/dist/Tooltip.d.ts +2 -2
  246. package/dist/Tooltip.js +5 -2
  247. package/dist/{Typography-32QQLD4F.css → Typography-CQ2OZXQH.css} +105 -42
  248. package/dist/Typography.cjs +11 -8
  249. package/dist/Typography.d.cts +12 -36
  250. package/dist/Typography.d.ts +12 -36
  251. package/dist/Typography.js +6 -3
  252. package/dist/chunk-2A4GYSN4.js +294 -0
  253. package/dist/{chunk-QMX67CVT.cjs → chunk-2AUXUZ3Z.cjs} +56 -31
  254. package/dist/chunk-2BIOTRQC.js +40 -0
  255. package/dist/{chunk-A6O25EP2.js → chunk-2HIN5NFM.js} +14 -6
  256. package/dist/{chunk-I7TOBKJO.js → chunk-3DKFS44V.js} +84 -23
  257. package/dist/{chunk-X5MYHDEQ.cjs → chunk-3EMWDDWK.cjs} +372 -117
  258. package/dist/chunk-3F424R5P.js +143 -0
  259. package/dist/chunk-3IZZBM56.js +269 -0
  260. package/dist/{chunk-DUFRASGO.js → chunk-3QXP2ZNP.js} +18 -23
  261. package/dist/{chunk-5QEI7GGA.cjs → chunk-434Y2JVW.cjs} +60 -27
  262. package/dist/{chunk-SOCYOUGM.js → chunk-4SKHRPDH.js} +168 -64
  263. package/dist/{chunk-R3DTXVP2.js → chunk-5AXNUX3J.js} +8 -5
  264. package/dist/chunk-5CZA33BK.cjs +229 -0
  265. package/dist/{chunk-6K5YI4ZE.js → chunk-62VV5COT.js} +16 -6
  266. package/dist/{chunk-2FOC3D6X.js → chunk-63RSKQID.js} +23 -7
  267. package/dist/chunk-6DKPJ5LV.cjs +294 -0
  268. package/dist/{chunk-OTSDPQPV.js → chunk-6RQJXSWN.js} +50 -30
  269. package/dist/{chunk-V5KUC5VH.cjs → chunk-77HU7JWK.cjs} +40 -13
  270. package/dist/chunk-7QAVPVMW.js +180 -0
  271. package/dist/chunk-7VLAHOA7.cjs +191 -0
  272. package/dist/chunk-ALAG4ZUH.js +72 -0
  273. package/dist/chunk-ARUN2DMD.js +39 -0
  274. package/dist/chunk-AUO2YYHB.js +248 -0
  275. package/dist/{chunk-6MEOLYNQ.js → chunk-AURYNA6G.js} +6 -5
  276. package/dist/chunk-BIPOXOHP.cjs +287 -0
  277. package/dist/{chunk-BVQOJKRX.js → chunk-BKW5PXEO.js} +115 -72
  278. package/dist/chunk-DRDDQCDD.js +322 -0
  279. package/dist/chunk-DU2DSERH.js +190 -0
  280. package/dist/chunk-DURKCGEM.js +496 -0
  281. package/dist/{chunk-PSQ3HNZP.cjs → chunk-E66PSVBU.cjs} +106 -19
  282. package/dist/chunk-EAUB6FEN.js +262 -0
  283. package/dist/chunk-EE5KXDRK.cjs +1223 -0
  284. package/dist/chunk-EE7IJ3MB.js +1 -0
  285. package/dist/chunk-EUTK2ZRJ.cjs +61 -0
  286. package/dist/{chunk-HSAJUEO7.cjs → chunk-F7WUCOBP.cjs} +150 -86
  287. package/dist/{chunk-YB3IWIOJ.cjs → chunk-FJB3243S.cjs} +18 -23
  288. package/dist/chunk-FKCPSVC4.cjs +188 -0
  289. package/dist/chunk-FMUHLIHB.cjs +94 -0
  290. package/dist/chunk-FY73C7JK.js +520 -0
  291. package/dist/{chunk-6EOSMK34.cjs → chunk-G5LCOBOT.cjs} +20 -1
  292. package/dist/{chunk-5ERD3W24.cjs → chunk-GFKWSDD6.cjs} +18 -8
  293. package/dist/{chunk-T2O4DTDE.cjs → chunk-GTFP7HA3.cjs} +58 -32
  294. package/dist/chunk-HQFKXTX6.js +60 -0
  295. package/dist/{chunk-V5SQOZPF.js → chunk-HQNDVNTQ.js} +38 -20
  296. package/dist/chunk-HSDMJUB6.cjs +319 -0
  297. package/dist/chunk-HVPUGYBY.js +166 -0
  298. package/dist/chunk-HYHBCHFM.cjs +167 -0
  299. package/dist/chunk-HYJSMFZA.cjs +2 -0
  300. package/dist/chunk-I4YPBAQ5.js +163 -0
  301. package/dist/chunk-IJDM2U3B.js +100 -0
  302. package/dist/chunk-J5UEQ3ZQ.js +226 -0
  303. package/dist/chunk-JBS353O4.cjs +248 -0
  304. package/dist/{chunk-IPSNC5VZ.js → chunk-JHM7MN3G.js} +15 -7
  305. package/dist/{chunk-6Q76VLCE.cjs → chunk-JKUXA3U6.cjs} +50 -30
  306. package/dist/{chunk-D7GK6H6V.js → chunk-K5HGHOG7.js} +50 -21
  307. package/dist/chunk-KATJAJUU.js +78 -0
  308. package/dist/chunk-KCDOC3HS.cjs +100 -0
  309. package/dist/{chunk-M4NJTJKV.cjs → chunk-LDX6Q6RK.cjs} +8 -5
  310. package/dist/chunk-LEDESWNL.js +83 -0
  311. package/dist/chunk-LG62MPMU.cjs +213 -0
  312. package/dist/{chunk-7NTTRKNT.js → chunk-LJVQQEME.js} +54 -28
  313. package/dist/{chunk-FDZG27IG.js → chunk-LQMOYVQF.js} +57 -32
  314. package/dist/{chunk-P2OQTJZP.cjs → chunk-MCDW3VKZ.cjs} +17 -6
  315. package/dist/{chunk-BT2RXFT4.cjs → chunk-MUZQWIMR.cjs} +121 -78
  316. package/dist/chunk-NRJXZPZR.cjs +351 -0
  317. package/dist/chunk-O6G3F5L4.js +311 -0
  318. package/dist/{chunk-3VSHGM54.js → chunk-OLYSSZHP.js} +126 -68
  319. package/dist/{chunk-A4Z7PLHV.cjs → chunk-PIJV2FHO.cjs} +135 -77
  320. package/dist/{chunk-L6GIV5DQ.cjs → chunk-PJFYIXBX.cjs} +40 -22
  321. package/dist/{chunk-NXBFEIUX.cjs → chunk-PNKNZREC.cjs} +266 -130
  322. package/dist/{chunk-FYSXJXNW.js → chunk-PQOBBASY.js} +10 -9
  323. package/dist/chunk-Q565GDVK.cjs +205 -0
  324. package/dist/{chunk-FDUQPAQE.cjs → chunk-Q5HLC56A.cjs} +122 -28
  325. package/dist/chunk-QDCPVI3S.cjs +333 -0
  326. package/dist/{chunk-ZR4IMROK.js → chunk-QDMFXRPI.js} +122 -28
  327. package/dist/chunk-QDY56GGO.js +234 -0
  328. package/dist/{chunk-4KDABJSY.cjs → chunk-QNQSNVCU.cjs} +86 -25
  329. package/dist/chunk-QYPA77OI.cjs +55 -0
  330. package/dist/{chunk-BW76ENTW.cjs → chunk-RERMZNF3.cjs} +10 -9
  331. package/dist/chunk-RMGFRAZ2.cjs +270 -0
  332. package/dist/chunk-RPO7657K.js +228 -0
  333. package/dist/chunk-RR7KWH26.cjs +122 -0
  334. package/dist/chunk-SF7BPXDJ.cjs +518 -0
  335. package/dist/chunk-STQDKMS5.cjs +288 -0
  336. package/dist/{chunk-HG6YS4I7.js → chunk-SXLRWYQQ.js} +71 -24
  337. package/dist/{chunk-SW2HMNCA.cjs → chunk-T4RR6NVU.cjs} +17 -9
  338. package/dist/{chunk-6SPMHY54.js → chunk-TSL3F2K3.js} +20 -2
  339. package/dist/{chunk-BNY2NVTL.cjs → chunk-TYZ6L7E6.cjs} +48 -28
  340. package/dist/{chunk-MOZ52KN6.js → chunk-U3SG2YT2.js} +39 -12
  341. package/dist/{chunk-POU3W5J3.cjs → chunk-U5YYOOLC.cjs} +13 -6
  342. package/dist/chunk-UE4HFGJ6.js +264 -0
  343. package/dist/chunk-ULTDRMGN.js +1175 -0
  344. package/dist/{chunk-6HF6UF73.js → chunk-UQI4R32R.js} +368 -113
  345. package/dist/{chunk-MWEHU7YO.cjs → chunk-VA3JWOAB.cjs} +172 -68
  346. package/dist/chunk-VQEMMJHC.js +33 -0
  347. package/dist/{chunk-S2ZGXBUH.cjs → chunk-VVRXNGYL.cjs} +218 -42
  348. package/dist/{chunk-JMFHL7GN.cjs → chunk-VX6MZO4K.cjs} +100 -22
  349. package/dist/{chunk-4ACCOYBY.cjs → chunk-WHBKQZU5.cjs} +24 -8
  350. package/dist/{chunk-UGAN4BBW.js → chunk-WMISXERU.js} +262 -126
  351. package/dist/{chunk-MYW7LNB2.cjs → chunk-WROF2PVG.cjs} +40 -21
  352. package/dist/{chunk-5VOUUQF5.js → chunk-Y22PTPA7.js} +145 -81
  353. package/dist/chunk-Y2MT6PI6.js +207 -0
  354. package/dist/chunk-YAYSXZZZ.cjs +82 -0
  355. package/dist/{chunk-6LN4VVX7.js → chunk-YBGMTQ2V.js} +48 -28
  356. package/dist/{chunk-TYLDISRK.js → chunk-YKHIIC7M.js} +13 -6
  357. package/dist/{chunk-3VXGZ3SJ.js → chunk-YPMQC5HX.js} +57 -24
  358. package/dist/{chunk-UWL6DRZW.cjs → chunk-YUJ7Z6N2.cjs} +74 -27
  359. package/dist/{chunk-LEMMFFEY.cjs → chunk-ZEYK37VW.cjs} +15 -7
  360. package/dist/{chunk-ES7AWMNH.cjs → chunk-ZHVR4YPB.cjs} +6 -5
  361. package/dist/{chunk-MPOO5VPW.cjs → chunk-ZYIE3BH7.cjs} +50 -21
  362. package/dist/componentThemeTypes-Jt4B5aU8.d.cts +77 -0
  363. package/dist/componentThemeTypes-Jt4B5aU8.d.ts +77 -0
  364. package/dist/index.cjs +253 -206
  365. package/dist/index.d.cts +11 -9
  366. package/dist/index.d.ts +11 -9
  367. package/dist/index.js +56 -53
  368. package/dist/styles.css +1663 -695
  369. package/dist/{tokens-RYJ3DFTU.css → tokens-CEJVVA3G.css} +10 -0
  370. package/dist/tokens.css +10 -0
  371. package/docs/llms/appshell.md +9 -6
  372. package/docs/llms/autocomplete.md +8 -2
  373. package/docs/llms/avatar.md +2 -0
  374. package/docs/llms/badge.md +2 -0
  375. package/docs/llms/calendar.md +7 -2
  376. package/docs/llms/card.md +20 -1
  377. package/docs/llms/cascader.md +27 -5
  378. package/docs/llms/checkbox.md +13 -0
  379. package/docs/llms/collapse.md +13 -5
  380. package/docs/llms/colorpicker.md +4 -3
  381. package/docs/llms/commandpalette.md +10 -2
  382. package/docs/llms/contextmenu.md +14 -2
  383. package/docs/llms/datepicker.md +7 -0
  384. package/docs/llms/datetimepicker.md +7 -0
  385. package/docs/llms/drawer.md +27 -4
  386. package/docs/llms/form.md +5 -2
  387. package/docs/llms/icon.md +25 -1
  388. package/docs/llms/image.md +3 -3
  389. package/docs/llms/list.md +11 -0
  390. package/docs/llms/message.md +31 -8
  391. package/docs/llms/modal.md +20 -8
  392. package/docs/llms/pagination.md +12 -4
  393. package/docs/llms/popover.md +11 -1
  394. package/docs/llms/progress.md +1 -0
  395. package/docs/llms/radio.md +13 -0
  396. package/docs/llms/select.md +48 -2
  397. package/docs/llms/sidebar.md +24 -0
  398. package/docs/llms/slider.md +5 -2
  399. package/docs/llms/splitter.md +17 -3
  400. package/docs/llms/switch.md +13 -0
  401. package/docs/llms/table.md +7 -8
  402. package/docs/llms/tablepro.md +23 -1
  403. package/docs/llms/tabs.md +21 -0
  404. package/docs/llms/theme.md +83 -28
  405. package/docs/llms/themepanel.md +1 -0
  406. package/docs/llms/titlebar.md +1 -0
  407. package/docs/llms/tooltip.md +7 -2
  408. package/docs/llms/typography.md +27 -3
  409. package/docs/llms/windowcontrols.md +11 -3
  410. package/docs/llms.md +2 -2
  411. package/package.json +212 -2
  412. package/dist/Avatar-TNPOHVY5.css +0 -40
  413. package/dist/Badge-DPGLV3D3.css +0 -22
  414. package/dist/Card-W3ATFUJW.css +0 -77
  415. package/dist/Cascader-ANEQUPMI.css +0 -150
  416. package/dist/Checkbox-EDNPZRIP.css +0 -42
  417. package/dist/List-LSMU5QAC.css +0 -26
  418. package/dist/Pagination-YSZSNFHG.css +0 -68
  419. package/dist/Progress-CZNXCYGW.css +0 -80
  420. package/dist/Slider-UM2IZZBH.css +0 -127
  421. package/dist/Tag-G2XWAL7A.css +0 -42
  422. package/dist/chunk-262ED6WQ.cjs +0 -88
  423. package/dist/chunk-4HJBF4GY.js +0 -218
  424. package/dist/chunk-4TTRHEGM.cjs +0 -217
  425. package/dist/chunk-5A6KSYWA.cjs +0 -67
  426. package/dist/chunk-5MOYKVB7.js +0 -192
  427. package/dist/chunk-7IO3EOHN.cjs +0 -200
  428. package/dist/chunk-7QXP6DXC.cjs +0 -129
  429. package/dist/chunk-AAPZLBHQ.js +0 -165
  430. package/dist/chunk-ARUPS7JH.js +0 -66
  431. package/dist/chunk-ATUPFAPZ.cjs +0 -76
  432. package/dist/chunk-CFZVWY5N.js +0 -178
  433. package/dist/chunk-DSLYWX4O.js +0 -25
  434. package/dist/chunk-E22OIVYP.js +0 -349
  435. package/dist/chunk-FQJY4D3T.cjs +0 -47
  436. package/dist/chunk-GNV6W4BN.js +0 -495
  437. package/dist/chunk-HBO7ZDEQ.js +0 -29
  438. package/dist/chunk-I777JTTG.js +0 -150
  439. package/dist/chunk-IOAOG5L7.js +0 -191
  440. package/dist/chunk-IOUAZYK2.cjs +0 -116
  441. package/dist/chunk-IZHH6CVY.js +0 -123
  442. package/dist/chunk-JFL2WMJZ.js +0 -106
  443. package/dist/chunk-KMPFESEV.js +0 -41
  444. package/dist/chunk-KYV75JPQ.js +0 -147
  445. package/dist/chunk-N7OQNSII.cjs +0 -145
  446. package/dist/chunk-P64NPZBG.js +0 -113
  447. package/dist/chunk-PKNRTFNE.cjs +0 -526
  448. package/dist/chunk-PU7VXDAS.js +0 -64
  449. package/dist/chunk-RFI5R42I.cjs +0 -138
  450. package/dist/chunk-RR2BKV65.js +0 -39
  451. package/dist/chunk-RSSOX4RQ.cjs +0 -240
  452. package/dist/chunk-RZEFKXL3.cjs +0 -104
  453. package/dist/chunk-S7IHWY24.js +0 -81
  454. package/dist/chunk-SOQ56ZI2.cjs +0 -49
  455. package/dist/chunk-TBNPJPYG.cjs +0 -61
  456. package/dist/chunk-TJECLLN4.js +0 -344
  457. package/dist/chunk-ULUD3FED.cjs +0 -138
  458. package/dist/chunk-UW57F3UO.cjs +0 -371
  459. package/dist/chunk-VA2I7ZAL.cjs +0 -190
  460. package/dist/chunk-VS3I5OKA.cjs +0 -214
  461. package/dist/chunk-WMGMIE2D.js +0 -113
  462. package/dist/chunk-X7XP6GEI.cjs +0 -63
  463. package/dist/chunk-XCXUGHDF.js +0 -91
  464. package/dist/chunk-YAFDVNXT.js +0 -27
  465. package/dist/chunk-ZD3L4V3H.js +0 -54
  466. package/dist/chunk-ZTCRD2FL.js +0 -45
@@ -0,0 +1,163 @@
1
+ import { Icon } from './chunk-LQMOYVQF.js';
2
+ import { withComponentTheme, withInternalComponentThemePart } from './chunk-DRDDQCDD.js';
3
+ import './tokens-CEJVVA3G.css';
4
+ import './shared-NJHRNLRH.css';
5
+ import './AppShell-OWJRJ4ZD.css';
6
+ import * as React from 'react';
7
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
+
9
+ var WindowControlsBase = React.forwardRef(({
10
+ platform = "mac",
11
+ onMinimize,
12
+ onMaximize,
13
+ onClose,
14
+ maximized = false,
15
+ className = "",
16
+ style,
17
+ ...rest
18
+ }, ref) => {
19
+ const noDragStyle = { WebkitAppRegion: "no-drag" };
20
+ if (platform === "windows") {
21
+ return /* @__PURE__ */ jsxs("div", { ref, className: `win-controls windows ${className}`, ...rest, style: { ...noDragStyle, ...style }, children: [
22
+ /* @__PURE__ */ jsx("button", { type: "button", className: "win-btn minimize", onClick: onMinimize, disabled: !onMinimize, "aria-label": "\u6700\u5C0F\u5316", children: /* @__PURE__ */ jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M1 5h8", stroke: "currentColor", strokeWidth: "1" }) }) }),
23
+ /* @__PURE__ */ jsx(
24
+ "button",
25
+ {
26
+ type: "button",
27
+ className: "win-btn maximize",
28
+ onClick: onMaximize,
29
+ disabled: !onMaximize,
30
+ "aria-label": maximized ? "\u8FD8\u539F\u7A97\u53E3" : "\u6700\u5927\u5316",
31
+ children: /* @__PURE__ */ jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": true, children: maximized ? /* @__PURE__ */ jsxs(Fragment, { children: [
32
+ /* @__PURE__ */ jsx("rect", { x: "1", y: "3", width: "6", height: "6", stroke: "currentColor", strokeWidth: "1" }),
33
+ /* @__PURE__ */ jsx("path", { d: "M3 3V1h6v6H7", stroke: "currentColor", strokeWidth: "1" })
34
+ ] }) : /* @__PURE__ */ jsx("rect", { x: "1", y: "1", width: "8", height: "8", stroke: "currentColor", strokeWidth: "1" }) })
35
+ }
36
+ ),
37
+ /* @__PURE__ */ jsx("button", { type: "button", className: "win-btn close", onClick: onClose, disabled: !onClose, "aria-label": "\u5173\u95ED\u7A97\u53E3", children: /* @__PURE__ */ jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M1 1l8 8M9 1l-8 8", stroke: "currentColor", strokeWidth: "1" }) }) })
38
+ ] });
39
+ }
40
+ return /* @__PURE__ */ jsxs("div", { ref, className: `win-controls mac ${className}`, ...rest, style: { ...noDragStyle, ...style }, children: [
41
+ /* @__PURE__ */ jsx("button", { type: "button", className: "win-btn close", onClick: onClose, disabled: !onClose, "aria-label": "\u5173\u95ED\u7A97\u53E3" }),
42
+ /* @__PURE__ */ jsx("button", { type: "button", className: "win-btn minimize", onClick: onMinimize, disabled: !onMinimize, "aria-label": "\u6700\u5C0F\u5316" }),
43
+ /* @__PURE__ */ jsx("button", { type: "button", className: "win-btn maximize", onClick: onMaximize, disabled: !onMaximize, "aria-label": maximized ? "\u8FD8\u539F\u7A97\u53E3" : "\u6700\u5927\u5316" })
44
+ ] });
45
+ });
46
+ WindowControlsBase.displayName = "WindowControls";
47
+ var WindowControls = withComponentTheme(
48
+ WindowControlsBase,
49
+ "WindowControls",
50
+ "app-shell"
51
+ );
52
+ var InternalWindowControls = withInternalComponentThemePart(
53
+ WindowControls,
54
+ "WindowControls"
55
+ );
56
+ var TitleBarBase = React.forwardRef(({
57
+ title,
58
+ platform = "mac",
59
+ onMinimize,
60
+ onMaximize,
61
+ onClose,
62
+ maximized = false,
63
+ center,
64
+ actions,
65
+ draggable = true,
66
+ className = "",
67
+ style,
68
+ ...rest
69
+ }, ref) => {
70
+ const dragStyle = {
71
+ WebkitAppRegion: draggable ? "drag" : "no-drag",
72
+ ...style
73
+ };
74
+ const noDragStyle = { WebkitAppRegion: "no-drag" };
75
+ return /* @__PURE__ */ jsxs("div", { ref, className: `titlebar ${platform} ${draggable ? "draggable" : "no-drag"} ${className}`, ...rest, style: dragStyle, children: [
76
+ platform === "mac" && /* @__PURE__ */ jsx(InternalWindowControls, { platform: "mac", onMinimize, onMaximize, onClose, maximized }),
77
+ /* @__PURE__ */ jsx("div", { className: "titlebar-title", children: title }),
78
+ center && /* @__PURE__ */ jsx("div", { className: "titlebar-center", style: noDragStyle, children: center }),
79
+ actions && /* @__PURE__ */ jsx("div", { className: "titlebar-actions", style: noDragStyle, children: actions }),
80
+ platform === "windows" && /* @__PURE__ */ jsx(InternalWindowControls, { platform: "windows", onMinimize, onMaximize, onClose, maximized })
81
+ ] });
82
+ });
83
+ TitleBarBase.displayName = "TitleBar";
84
+ var TitleBar = withComponentTheme(TitleBarBase, "TitleBar", "app-shell");
85
+ var collectExpandableSidebarKeys = (items) => items.flatMap((item) => [
86
+ ...item.children?.length ? [item.key] : [],
87
+ ...item.children ? collectExpandableSidebarKeys(item.children) : []
88
+ ]);
89
+ var SidebarBase = React.forwardRef(({
90
+ items,
91
+ activeKey,
92
+ onSelect,
93
+ expandedKeys,
94
+ defaultExpandedKeys,
95
+ onExpandedKeysChange,
96
+ collapsed,
97
+ header,
98
+ footer,
99
+ navigationLabel = "\u4E3B\u5BFC\u822A",
100
+ className = "",
101
+ ...rest
102
+ }, ref) => {
103
+ const [innerExpandedKeys, setInnerExpandedKeys] = React.useState(
104
+ () => defaultExpandedKeys ?? collectExpandableSidebarKeys(items)
105
+ );
106
+ const expandedControlled = expandedKeys !== void 0;
107
+ const currentExpandedKeys = expandedControlled ? expandedKeys : innerExpandedKeys;
108
+ const toggleExpanded = (key) => {
109
+ const next = currentExpandedKeys.includes(key) ? currentExpandedKeys.filter((itemKey) => itemKey !== key) : [...currentExpandedKeys, key];
110
+ if (!expandedControlled) setInnerExpandedKeys(next);
111
+ onExpandedKeysChange?.(next);
112
+ };
113
+ const renderItems = (entries, level = 1) => entries.map((item) => {
114
+ const active = activeKey === item.key;
115
+ const hasChildren = !!item.children?.length;
116
+ const expanded = hasChildren && currentExpandedKeys.includes(item.key);
117
+ const showChildren = !collapsed && expanded;
118
+ const textLabel = item.ariaLabel ?? (typeof item.label === "string" ? item.label : void 0);
119
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [
120
+ /* @__PURE__ */ jsxs(
121
+ "button",
122
+ {
123
+ type: "button",
124
+ className: `sidebar-item ${active ? "active" : ""}`,
125
+ style: { ["--sidebar-indent"]: `${(level - 1) * 16}px` },
126
+ "aria-current": active ? "page" : void 0,
127
+ "aria-label": collapsed ? textLabel : void 0,
128
+ title: collapsed ? textLabel : void 0,
129
+ "aria-expanded": hasChildren ? showChildren : void 0,
130
+ onClick: () => {
131
+ onSelect?.(item.key);
132
+ if (hasChildren) toggleExpanded(item.key);
133
+ },
134
+ children: [
135
+ item.icon && /* @__PURE__ */ jsx("span", { className: "sidebar-icon", "aria-hidden": collapsed && !!textLabel, children: item.icon }),
136
+ !collapsed && /* @__PURE__ */ jsx("span", { className: "sidebar-label", children: item.label }),
137
+ !collapsed && item.badge != null && /* @__PURE__ */ jsx("span", { className: "sidebar-badge", children: item.badge }),
138
+ !collapsed && hasChildren && /* @__PURE__ */ jsx("span", { className: `sidebar-expand ${expanded ? "open" : ""}`, "aria-hidden": true, children: /* @__PURE__ */ jsx(Icon, { name: "chevDown", size: 13 }) })
139
+ ]
140
+ }
141
+ ),
142
+ showChildren && /* @__PURE__ */ jsx("div", { className: "sidebar-children", role: "group", "aria-label": textLabel, children: renderItems(item.children, level + 1) })
143
+ ] }, item.key);
144
+ });
145
+ return /* @__PURE__ */ jsxs("aside", { ref, className: `sidebar ${collapsed ? "collapsed" : ""} ${className}`, ...rest, children: [
146
+ header != null && /* @__PURE__ */ jsx("div", { className: "sidebar-header", children: header }),
147
+ /* @__PURE__ */ jsx("nav", { className: "sidebar-nav", "aria-label": navigationLabel, children: renderItems(items) }),
148
+ footer != null && /* @__PURE__ */ jsx("div", { className: "sidebar-footer", children: footer })
149
+ ] });
150
+ });
151
+ SidebarBase.displayName = "Sidebar";
152
+ var Sidebar = withComponentTheme(SidebarBase, "Sidebar", "app-shell");
153
+ var AppShellBase = React.forwardRef(({ sidebar, titleBar, children, className = "", ...rest }, ref) => /* @__PURE__ */ jsxs("div", { ref, className: `app-shell ${className}`, ...rest, children: [
154
+ titleBar,
155
+ /* @__PURE__ */ jsxs("div", { className: "app-shell-body", children: [
156
+ sidebar,
157
+ /* @__PURE__ */ jsx("main", { className: "app-shell-main", children })
158
+ ] })
159
+ ] }));
160
+ AppShellBase.displayName = "AppShell";
161
+ var AppShell = withComponentTheme(AppShellBase, "AppShell", "app-shell");
162
+
163
+ export { AppShell, Sidebar, TitleBar, WindowControls };
@@ -0,0 +1,100 @@
1
+ import { withComponentTheme } from './chunk-DRDDQCDD.js';
2
+ import './tokens-CEJVVA3G.css';
3
+ import './shared-NJHRNLRH.css';
4
+ import './Tabs-FB2AMBWL.css';
5
+ import * as React from 'react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var getFirstEnabledKey = (items) => items.find((item) => !item.disabled)?.key;
9
+ var TabsBase = React.forwardRef(({
10
+ items,
11
+ activeKey,
12
+ defaultActiveKey,
13
+ onChange,
14
+ variant = "line",
15
+ centered,
16
+ tabBarClassName = "",
17
+ contentClassName = "",
18
+ fill = false,
19
+ className = "",
20
+ ...rest
21
+ }, ref) => {
22
+ const baseId = React.useId();
23
+ const tabRefs = React.useRef(/* @__PURE__ */ new Map());
24
+ const [inner, setInner] = React.useState(defaultActiveKey ?? getFirstEnabledKey(items));
25
+ const isControlled = activeKey !== void 0;
26
+ const requested = isControlled ? activeKey : inner;
27
+ const current = items.some((item) => item.key === requested && !item.disabled) ? requested : getFirstEnabledKey(items);
28
+ const select = (k) => {
29
+ if (items.find((item) => item.key === k)?.disabled) return;
30
+ if (!isControlled) setInner(k);
31
+ onChange?.(k);
32
+ };
33
+ const handleTabKeyDown = (event) => {
34
+ const enabled = items.filter((item) => !item.disabled);
35
+ const index = enabled.findIndex((item) => item.key === current);
36
+ let target;
37
+ if (event.key === "ArrowRight") target = enabled[(index + 1) % enabled.length];
38
+ if (event.key === "ArrowLeft") target = enabled[(index - 1 + enabled.length) % enabled.length];
39
+ if (event.key === "Home") target = enabled[0];
40
+ if (event.key === "End") target = enabled[enabled.length - 1];
41
+ if (!target) return;
42
+ event.preventDefault();
43
+ tabRefs.current.get(target.key)?.focus();
44
+ select(target.key);
45
+ };
46
+ const active = items.find((i) => i.key === current);
47
+ const activeIndex = items.findIndex((item) => item.key === current);
48
+ return /* @__PURE__ */ jsxs(
49
+ "div",
50
+ {
51
+ ref,
52
+ className: [
53
+ "tabs",
54
+ variant,
55
+ centered ? "centered" : "",
56
+ fill ? "fill" : "",
57
+ className
58
+ ].filter(Boolean).join(" "),
59
+ ...rest,
60
+ children: [
61
+ /* @__PURE__ */ jsx("div", { className: ["tabs-nav", tabBarClassName].filter(Boolean).join(" "), role: "tablist", children: items.map((it, index) => /* @__PURE__ */ jsx(
62
+ "button",
63
+ {
64
+ ref: (node) => {
65
+ if (node) tabRefs.current.set(it.key, node);
66
+ else tabRefs.current.delete(it.key);
67
+ },
68
+ type: "button",
69
+ role: "tab",
70
+ id: `${baseId}-tab-${index}`,
71
+ "aria-selected": current === it.key,
72
+ "aria-controls": it.content !== void 0 ? `${baseId}-panel-${index}` : void 0,
73
+ tabIndex: current === it.key ? 0 : -1,
74
+ disabled: it.disabled,
75
+ className: `tab ${current === it.key ? "active" : ""}`,
76
+ onClick: () => select(it.key),
77
+ onKeyDown: handleTabKeyDown,
78
+ children: it.label
79
+ },
80
+ it.key
81
+ )) }),
82
+ active?.content !== void 0 && /* @__PURE__ */ jsx(
83
+ "div",
84
+ {
85
+ id: `${baseId}-panel-${activeIndex}`,
86
+ className: ["tabs-content", contentClassName].filter(Boolean).join(" "),
87
+ role: "tabpanel",
88
+ "aria-labelledby": `${baseId}-tab-${activeIndex}`,
89
+ tabIndex: 0,
90
+ children: active.content
91
+ }
92
+ )
93
+ ]
94
+ }
95
+ );
96
+ });
97
+ TabsBase.displayName = "Tabs";
98
+ var Tabs = withComponentTheme(TabsBase, "Tabs", "tabs");
99
+
100
+ export { Tabs };
@@ -0,0 +1,226 @@
1
+ import { withComponentTheme } from './chunk-DRDDQCDD.js';
2
+ import './tokens-CEJVVA3G.css';
3
+ import './shared-NJHRNLRH.css';
4
+ import './Splitter-IQ3PFIKK.css';
5
+ import * as React from 'react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ function clampSplitterSize(value, minimum, maximum) {
9
+ const normalized = Number.isFinite(value) ? value : minimum;
10
+ return Math.max(minimum, Math.min(maximum, normalized));
11
+ }
12
+ function readStoredSplitterSize(storageKey) {
13
+ if (!storageKey || typeof window === "undefined") return void 0;
14
+ try {
15
+ const storedValue = window.localStorage.getItem(`lumina:splitter:v1:${storageKey}`);
16
+ if (storedValue == null) return void 0;
17
+ const value = Number(storedValue);
18
+ return Number.isFinite(value) ? value : void 0;
19
+ } catch {
20
+ return void 0;
21
+ }
22
+ }
23
+ var SplitterBase = React.forwardRef(({
24
+ direction = "horizontal",
25
+ defaultSize = 240,
26
+ size,
27
+ onResize,
28
+ onResizeEnd,
29
+ min = 80,
30
+ max = Infinity,
31
+ step = 16,
32
+ children,
33
+ className = "",
34
+ handleClassName = "",
35
+ handleProps,
36
+ firstPaneClassName = "",
37
+ firstPaneStyle,
38
+ secondPaneClassName = "",
39
+ secondPaneStyle,
40
+ handle,
41
+ secondMin = 24,
42
+ storageKey,
43
+ ...rest
44
+ }, ref) => {
45
+ const isControlled = size !== void 0;
46
+ const containerRef = React.useRef(null);
47
+ const cleanupDragRef = React.useRef(null);
48
+ const [inner, setInner] = React.useState(
49
+ () => clampSplitterSize(readStoredSplitterSize(storageKey) ?? defaultSize, min, max)
50
+ );
51
+ const [containerSize, setContainerSize] = React.useState(Infinity);
52
+ const [dragging, setDragging] = React.useState(false);
53
+ const clamp = React.useCallback(
54
+ (value) => {
55
+ const availableMaximum = Number.isFinite(containerSize) && containerSize > 0 ? Math.max(0, containerSize - Math.max(0, secondMin) - 6) : Infinity;
56
+ const effectiveMaximum = Math.max(min, Math.min(max, availableMaximum));
57
+ return clampSplitterSize(value, min, effectiveMaximum);
58
+ },
59
+ [containerSize, max, min, secondMin]
60
+ );
61
+ const rawCurrent = isControlled ? size : inner;
62
+ const current = clamp(rawCurrent);
63
+ const persistSize = React.useCallback((value) => {
64
+ if (!storageKey || typeof window === "undefined") return;
65
+ try {
66
+ window.localStorage.setItem(`lumina:splitter:v1:${storageKey}`, String(value));
67
+ } catch {
68
+ }
69
+ }, [storageKey]);
70
+ const commit = React.useCallback(
71
+ (value) => {
72
+ const clamped = clamp(value);
73
+ if (!isControlled) setInner(clamped);
74
+ onResize?.(clamped);
75
+ return clamped;
76
+ },
77
+ [clamp, isControlled, onResize]
78
+ );
79
+ React.useLayoutEffect(() => {
80
+ const element = containerRef.current;
81
+ if (!element) return;
82
+ const updateContainerSize = () => {
83
+ setContainerSize(direction === "horizontal" ? element.clientWidth : element.clientHeight);
84
+ };
85
+ updateContainerSize();
86
+ if (typeof ResizeObserver !== "undefined") {
87
+ const observer = new ResizeObserver(updateContainerSize);
88
+ observer.observe(element);
89
+ return () => observer.disconnect();
90
+ }
91
+ window.addEventListener("resize", updateContainerSize);
92
+ return () => window.removeEventListener("resize", updateContainerSize);
93
+ }, [direction]);
94
+ React.useEffect(() => () => cleanupDragRef.current?.(), []);
95
+ const onPointerDown = (e) => {
96
+ if (e.button !== 0) return;
97
+ e.preventDefault();
98
+ const el = containerRef.current;
99
+ if (!el) return;
100
+ const rect = el.getBoundingClientRect();
101
+ setDragging(true);
102
+ e.currentTarget.setPointerCapture?.(e.pointerId);
103
+ let latest = current;
104
+ const move = (ev) => {
105
+ const next = direction === "horizontal" ? ev.clientX - rect.left : ev.clientY - rect.top;
106
+ latest = commit(next);
107
+ };
108
+ const finish = () => {
109
+ setDragging(false);
110
+ onResizeEnd?.(latest);
111
+ persistSize(latest);
112
+ window.removeEventListener("pointermove", move);
113
+ window.removeEventListener("pointerup", finish);
114
+ window.removeEventListener("pointercancel", finish);
115
+ window.removeEventListener("blur", finish);
116
+ cleanupDragRef.current = null;
117
+ };
118
+ cleanupDragRef.current?.();
119
+ cleanupDragRef.current = finish;
120
+ window.addEventListener("pointermove", move);
121
+ window.addEventListener("pointerup", finish);
122
+ window.addEventListener("pointercancel", finish);
123
+ window.addEventListener("blur", finish);
124
+ };
125
+ const onKeyDown = (e) => {
126
+ const increment = (delta) => {
127
+ const next = commit(current + delta);
128
+ onResizeEnd?.(next);
129
+ persistSize(next);
130
+ };
131
+ if (direction === "horizontal") {
132
+ if (e.key === "ArrowLeft") {
133
+ e.preventDefault();
134
+ increment(-step);
135
+ }
136
+ if (e.key === "ArrowRight") {
137
+ e.preventDefault();
138
+ increment(step);
139
+ }
140
+ } else {
141
+ if (e.key === "ArrowUp") {
142
+ e.preventDefault();
143
+ increment(-step);
144
+ }
145
+ if (e.key === "ArrowDown") {
146
+ e.preventDefault();
147
+ increment(step);
148
+ }
149
+ }
150
+ if (e.key === "Home") {
151
+ e.preventDefault();
152
+ const next = commit(min);
153
+ onResizeEnd?.(next);
154
+ persistSize(next);
155
+ }
156
+ if (e.key === "End") {
157
+ e.preventDefault();
158
+ const next = commit(Number.MAX_SAFE_INTEGER);
159
+ onResizeEnd?.(next);
160
+ persistSize(next);
161
+ }
162
+ };
163
+ const firstStyle = direction === "horizontal" ? { width: current } : { height: current };
164
+ const {
165
+ className: nativeHandleClassName = "",
166
+ style: nativeHandleStyle,
167
+ children: nativeHandleChildren,
168
+ ...nativeHandleProps
169
+ } = handleProps ?? {};
170
+ const handleContent = handle !== void 0 ? handle : nativeHandleChildren !== void 0 ? nativeHandleChildren : /* @__PURE__ */ jsx("span", { className: "splitter-handle-grip", "aria-hidden": true });
171
+ return /* @__PURE__ */ jsxs(
172
+ "div",
173
+ {
174
+ ref: (node) => {
175
+ containerRef.current = node;
176
+ if (typeof ref === "function") ref(node);
177
+ else if (ref) ref.current = node;
178
+ },
179
+ className: `splitter ${direction} ${dragging ? "dragging" : ""} ${className}`,
180
+ ...rest,
181
+ children: [
182
+ /* @__PURE__ */ jsx(
183
+ "div",
184
+ {
185
+ className: ["splitter-panel", "first", firstPaneClassName].filter(Boolean).join(" "),
186
+ style: { ...firstStyle, ...firstPaneStyle },
187
+ children: children[0]
188
+ }
189
+ ),
190
+ /* @__PURE__ */ jsx(
191
+ "div",
192
+ {
193
+ ...nativeHandleProps,
194
+ role: "separator",
195
+ tabIndex: 0,
196
+ "aria-label": handleProps?.["aria-label"] ?? "\u8C03\u6574\u5206\u680F\u5C3A\u5BF8",
197
+ "aria-orientation": direction === "horizontal" ? "vertical" : "horizontal",
198
+ "aria-valuenow": current,
199
+ "aria-valuemin": min,
200
+ "aria-valuemax": Number.isFinite(max) ? clamp(max) : void 0,
201
+ className: ["splitter-handle", handleClassName, nativeHandleClassName].filter(Boolean).join(" "),
202
+ style: nativeHandleStyle,
203
+ onPointerDown,
204
+ onKeyDown: (event) => {
205
+ handleProps?.onKeyDown?.(event);
206
+ if (!event.defaultPrevented) onKeyDown(event);
207
+ },
208
+ children: handleContent
209
+ }
210
+ ),
211
+ /* @__PURE__ */ jsx(
212
+ "div",
213
+ {
214
+ className: ["splitter-panel", "second", secondPaneClassName].filter(Boolean).join(" "),
215
+ style: secondPaneStyle,
216
+ children: children[1]
217
+ }
218
+ )
219
+ ]
220
+ }
221
+ );
222
+ });
223
+ SplitterBase.displayName = "Splitter";
224
+ var Splitter = withComponentTheme(SplitterBase, "Splitter", "splitter");
225
+
226
+ export { Splitter };