@fangxinyan/lumina 0.6.17 → 0.7.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 (464) 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-TDCXJISG.css → Image-CZJPPURT.css} +95 -14
  107. package/dist/Image.cjs +10 -6
  108. package/dist/Image.d.cts +23 -25
  109. package/dist/Image.d.ts +23 -25
  110. package/dist/Image.js +6 -2
  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 +24 -3
  159. package/dist/Select.d.ts +24 -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 +8 -12
  179. package/dist/Splitter.d.ts +8 -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-W4HPZ7MZ.css} +78 -53
  197. package/dist/Table.cjs +14 -10
  198. package/dist/Table.d.cts +32 -3
  199. package/dist/Table.d.ts +32 -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-A3IG6UZ6.css} +10 -10
  207. package/dist/Tabs.cjs +4 -2
  208. package/dist/Tabs.d.cts +2 -2
  209. package/dist/Tabs.d.ts +2 -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-E22OIVYP.js → chunk-3EHJ5QI3.js} +202 -69
  258. package/dist/{chunk-X5MYHDEQ.cjs → chunk-3EMWDDWK.cjs} +372 -117
  259. package/dist/chunk-3F424R5P.js +143 -0
  260. package/dist/chunk-3IZZBM56.js +269 -0
  261. package/dist/{chunk-DUFRASGO.js → chunk-3QXP2ZNP.js} +18 -23
  262. package/dist/{chunk-5QEI7GGA.cjs → chunk-434Y2JVW.cjs} +60 -27
  263. package/dist/{chunk-SOCYOUGM.js → chunk-4SKHRPDH.js} +168 -64
  264. package/dist/{chunk-L6GIV5DQ.cjs → chunk-56I6ZKGU.cjs} +40 -22
  265. package/dist/{chunk-R3DTXVP2.js → chunk-5AXNUX3J.js} +8 -5
  266. package/dist/chunk-5CZA33BK.cjs +229 -0
  267. package/dist/{chunk-6K5YI4ZE.js → chunk-62VV5COT.js} +16 -6
  268. package/dist/chunk-6DKPJ5LV.cjs +294 -0
  269. package/dist/{chunk-OTSDPQPV.js → chunk-6RQJXSWN.js} +50 -30
  270. package/dist/{chunk-V5KUC5VH.cjs → chunk-77HU7JWK.cjs} +40 -13
  271. package/dist/chunk-7QAVPVMW.js +180 -0
  272. package/dist/chunk-7VLAHOA7.cjs +191 -0
  273. package/dist/chunk-ALAG4ZUH.js +72 -0
  274. package/dist/chunk-ARUN2DMD.js +39 -0
  275. package/dist/chunk-AUO2YYHB.js +248 -0
  276. package/dist/{chunk-6MEOLYNQ.js → chunk-AURYNA6G.js} +6 -5
  277. package/dist/chunk-BIPOXOHP.cjs +287 -0
  278. package/dist/{chunk-V5SQOZPF.js → chunk-BJDQVVCG.js} +38 -20
  279. package/dist/{chunk-BVQOJKRX.js → chunk-BKW5PXEO.js} +115 -72
  280. package/dist/{chunk-UW57F3UO.cjs → chunk-D7YSY5RZ.cjs} +208 -75
  281. package/dist/chunk-DRDDQCDD.js +322 -0
  282. package/dist/chunk-DU2DSERH.js +190 -0
  283. package/dist/{chunk-PSQ3HNZP.cjs → chunk-E66PSVBU.cjs} +106 -19
  284. package/dist/{chunk-UGAN4BBW.js → chunk-EA3NZBCZ.js} +251 -125
  285. package/dist/chunk-EAUB6FEN.js +262 -0
  286. package/dist/chunk-EE5KXDRK.cjs +1223 -0
  287. package/dist/chunk-EE7IJ3MB.js +1 -0
  288. package/dist/{chunk-NXBFEIUX.cjs → chunk-ENFLP7SN.cjs} +255 -129
  289. package/dist/chunk-EUTK2ZRJ.cjs +61 -0
  290. package/dist/chunk-F7WUCOBP.cjs +828 -0
  291. package/dist/{chunk-YB3IWIOJ.cjs → chunk-FJB3243S.cjs} +18 -23
  292. package/dist/chunk-FKCPSVC4.cjs +188 -0
  293. package/dist/chunk-FMUHLIHB.cjs +94 -0
  294. package/dist/chunk-FY73C7JK.js +520 -0
  295. package/dist/{chunk-6EOSMK34.cjs → chunk-G5LCOBOT.cjs} +20 -1
  296. package/dist/{chunk-5ERD3W24.cjs → chunk-GFKWSDD6.cjs} +18 -8
  297. package/dist/{chunk-T2O4DTDE.cjs → chunk-GTFP7HA3.cjs} +58 -32
  298. package/dist/chunk-HQFKXTX6.js +60 -0
  299. package/dist/chunk-HSDMJUB6.cjs +319 -0
  300. package/dist/chunk-HVPUGYBY.js +166 -0
  301. package/dist/chunk-HYHBCHFM.cjs +167 -0
  302. package/dist/chunk-HYJSMFZA.cjs +2 -0
  303. package/dist/chunk-I4YPBAQ5.js +163 -0
  304. package/dist/{chunk-IPSNC5VZ.js → chunk-JHM7MN3G.js} +15 -7
  305. package/dist/{chunk-4ACCOYBY.cjs → chunk-JINKQT6H.cjs} +20 -8
  306. package/dist/{chunk-6Q76VLCE.cjs → chunk-JKUXA3U6.cjs} +50 -30
  307. package/dist/{chunk-D7GK6H6V.js → chunk-K5HGHOG7.js} +50 -21
  308. package/dist/chunk-KATJAJUU.js +78 -0
  309. package/dist/chunk-KCDOC3HS.cjs +100 -0
  310. package/dist/{chunk-M4NJTJKV.cjs → chunk-LDX6Q6RK.cjs} +8 -5
  311. package/dist/chunk-LEDESWNL.js +83 -0
  312. package/dist/chunk-LG62MPMU.cjs +213 -0
  313. package/dist/{chunk-7NTTRKNT.js → chunk-LJVQQEME.js} +54 -28
  314. package/dist/chunk-LOWTSOWT.js +199 -0
  315. package/dist/{chunk-FDZG27IG.js → chunk-LQMOYVQF.js} +57 -32
  316. package/dist/{chunk-P2OQTJZP.cjs → chunk-MCDW3VKZ.cjs} +17 -6
  317. package/dist/{chunk-BT2RXFT4.cjs → chunk-MUZQWIMR.cjs} +121 -78
  318. package/dist/chunk-NRJXZPZR.cjs +351 -0
  319. package/dist/chunk-O6G3F5L4.js +311 -0
  320. package/dist/{chunk-3VSHGM54.js → chunk-OLYSSZHP.js} +126 -68
  321. package/dist/{chunk-A4Z7PLHV.cjs → chunk-PIJV2FHO.cjs} +135 -77
  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-RAK6CENJ.js +83 -0
  331. package/dist/{chunk-BW76ENTW.cjs → chunk-RERMZNF3.cjs} +10 -9
  332. package/dist/chunk-RMGFRAZ2.cjs +270 -0
  333. package/dist/chunk-RPO7657K.js +228 -0
  334. package/dist/chunk-STQDKMS5.cjs +288 -0
  335. package/dist/{chunk-HG6YS4I7.js → chunk-SXLRWYQQ.js} +71 -24
  336. package/dist/{chunk-SW2HMNCA.cjs → chunk-T4RR6NVU.cjs} +17 -9
  337. package/dist/{chunk-6SPMHY54.js → chunk-TSL3F2K3.js} +20 -2
  338. package/dist/{chunk-BNY2NVTL.cjs → chunk-TYZ6L7E6.cjs} +48 -28
  339. package/dist/{chunk-MOZ52KN6.js → chunk-U3SG2YT2.js} +39 -12
  340. package/dist/{chunk-POU3W5J3.cjs → chunk-U5YYOOLC.cjs} +13 -6
  341. package/dist/chunk-U7VEPMCX.cjs +221 -0
  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-2FOC3D6X.js → chunk-WMZV7PNO.js} +19 -7
  350. package/dist/{chunk-MYW7LNB2.cjs → chunk-WROF2PVG.cjs} +40 -21
  351. package/dist/chunk-XZXY3XCL.cjs +105 -0
  352. package/dist/chunk-Y22PTPA7.js +800 -0
  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 +12 -10
  366. package/dist/index.d.ts +12 -10
  367. package/dist/index.js +56 -53
  368. package/dist/styles.css +1697 -692
  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 +20 -4
  386. package/docs/llms/form.md +5 -2
  387. package/docs/llms/icon.md +25 -1
  388. package/docs/llms/image.md +22 -1
  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 +29 -2
  397. package/docs/llms/sidebar.md +24 -0
  398. package/docs/llms/slider.md +5 -2
  399. package/docs/llms/splitter.md +5 -2
  400. package/docs/llms/switch.md +13 -0
  401. package/docs/llms/table.md +7 -8
  402. package/docs/llms/theme.md +83 -28
  403. package/docs/llms/themepanel.md +1 -0
  404. package/docs/llms/titlebar.md +1 -0
  405. package/docs/llms/tooltip.md +7 -2
  406. package/docs/llms/typography.md +27 -3
  407. package/docs/llms/windowcontrols.md +11 -3
  408. package/docs/llms.md +2 -2
  409. package/package.json +212 -2
  410. package/dist/Avatar-TNPOHVY5.css +0 -40
  411. package/dist/Badge-DPGLV3D3.css +0 -22
  412. package/dist/Card-W3ATFUJW.css +0 -77
  413. package/dist/Cascader-ANEQUPMI.css +0 -150
  414. package/dist/Checkbox-EDNPZRIP.css +0 -42
  415. package/dist/List-LSMU5QAC.css +0 -26
  416. package/dist/Pagination-YSZSNFHG.css +0 -68
  417. package/dist/Progress-CZNXCYGW.css +0 -80
  418. package/dist/Slider-UM2IZZBH.css +0 -127
  419. package/dist/Tag-G2XWAL7A.css +0 -42
  420. package/dist/chunk-262ED6WQ.cjs +0 -88
  421. package/dist/chunk-4HJBF4GY.js +0 -218
  422. package/dist/chunk-4TTRHEGM.cjs +0 -217
  423. package/dist/chunk-5A6KSYWA.cjs +0 -67
  424. package/dist/chunk-5MOYKVB7.js +0 -192
  425. package/dist/chunk-7IO3EOHN.cjs +0 -200
  426. package/dist/chunk-7QXP6DXC.cjs +0 -129
  427. package/dist/chunk-AAPZLBHQ.js +0 -165
  428. package/dist/chunk-ARUPS7JH.js +0 -66
  429. package/dist/chunk-ATUPFAPZ.cjs +0 -76
  430. package/dist/chunk-CFZVWY5N.js +0 -178
  431. package/dist/chunk-DSLYWX4O.js +0 -25
  432. package/dist/chunk-EQ4FPOQQ.js +0 -253
  433. package/dist/chunk-FQJY4D3T.cjs +0 -47
  434. package/dist/chunk-GNV6W4BN.js +0 -495
  435. package/dist/chunk-HBO7ZDEQ.js +0 -29
  436. package/dist/chunk-I777JTTG.js +0 -150
  437. package/dist/chunk-IOAOG5L7.js +0 -191
  438. package/dist/chunk-IOUAZYK2.cjs +0 -116
  439. package/dist/chunk-IZHH6CVY.js +0 -123
  440. package/dist/chunk-JFL2WMJZ.js +0 -106
  441. package/dist/chunk-KMPFESEV.js +0 -41
  442. package/dist/chunk-KYV75JPQ.js +0 -147
  443. package/dist/chunk-N7OQNSII.cjs +0 -145
  444. package/dist/chunk-P64NPZBG.js +0 -113
  445. package/dist/chunk-PKNRTFNE.cjs +0 -526
  446. package/dist/chunk-PU7VXDAS.js +0 -64
  447. package/dist/chunk-RFI5R42I.cjs +0 -138
  448. package/dist/chunk-RMFSX7DO.cjs +0 -281
  449. package/dist/chunk-RR2BKV65.js +0 -39
  450. package/dist/chunk-RSSOX4RQ.cjs +0 -240
  451. package/dist/chunk-RZEFKXL3.cjs +0 -104
  452. package/dist/chunk-S7IHWY24.js +0 -81
  453. package/dist/chunk-SOQ56ZI2.cjs +0 -49
  454. package/dist/chunk-TBNPJPYG.cjs +0 -61
  455. package/dist/chunk-TJECLLN4.js +0 -344
  456. package/dist/chunk-ULUD3FED.cjs +0 -138
  457. package/dist/chunk-VA2I7ZAL.cjs +0 -190
  458. package/dist/chunk-VS3I5OKA.cjs +0 -214
  459. package/dist/chunk-WMGMIE2D.js +0 -113
  460. package/dist/chunk-X7XP6GEI.cjs +0 -63
  461. package/dist/chunk-XCXUGHDF.js +0 -91
  462. package/dist/chunk-YAFDVNXT.js +0 -27
  463. package/dist/chunk-ZD3L4V3H.js +0 -54
  464. package/dist/chunk-ZTCRD2FL.js +0 -45
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { IconName } from './Icon.cjs';
3
+ import { f as ComponentThemeProps } from './componentThemeTypes-Jt4B5aU8.cjs';
3
4
  import 'react/jsx-runtime';
4
5
 
5
6
  type TypographyType = "secondary" | "success" | "warning" | "danger";
@@ -7,12 +8,14 @@ interface CopyableConfig {
7
8
  /** Text to copy. Defaults to the rendered children string. */
8
9
  text?: string;
9
10
  /** Fired after a successful copy. */
10
- onCopy?: (event: React.MouseEvent<HTMLSpanElement>) => void;
11
+ onCopy?: (event: React.MouseEvent<HTMLButtonElement>) => void;
12
+ /** 复制失败时触发,接收浏览器抛出的错误。 */
13
+ onCopyError?: (error: unknown) => void;
11
14
  /** Custom icons `[default, copied]`. */
12
15
  icon?: [React.ReactNode, React.ReactNode];
13
16
  /** Custom tooltip text `[default, copied]`. Pass `false` to disable. */
14
17
  tooltips?: [React.ReactNode, React.ReactNode] | false;
15
- /** Format/MIME hint when calling `navigator.clipboard.write` is not used. */
18
+ /** 写入剪贴板时使用的文本格式。 */
16
19
  format?: "text/plain" | "text/html";
17
20
  }
18
21
  interface EditableConfig {
@@ -41,7 +44,7 @@ interface EditableConfig {
41
44
  icon?: React.ReactNode;
42
45
  /** Tooltip text on the trigger icon. Pass `false` to disable. */
43
46
  tooltip?: React.ReactNode | false;
44
- /** Use a single-line input instead of textarea. */
47
+ /** 单行编辑器的确认按钮内容;默认使用勾选图标,传入 `null` 可隐藏。 */
45
48
  enterIcon?: React.ReactNode;
46
49
  }
47
50
  interface EllipsisConfig {
@@ -58,7 +61,7 @@ interface EllipsisConfig {
58
61
  /** Optional suffix that should always remain visible (e.g. an em-dash author). */
59
62
  suffix?: string;
60
63
  }
61
- interface BaseTypographyProps {
64
+ interface BaseTypographyProps extends ComponentThemeProps {
62
65
  /** Semantic color. */
63
66
  type?: TypographyType;
64
67
  /** Render disabled (muted + not selectable). */
@@ -90,38 +93,18 @@ interface BaseTypographyProps {
90
93
  children?: React.ReactNode;
91
94
  }
92
95
  type TitleLevel = 1 | 2 | 3 | 4 | 5;
93
- interface TitleProps extends BaseTypographyProps {
96
+ interface TitleProps extends BaseTypographyProps, Omit<React.HTMLAttributes<HTMLHeadingElement>, keyof BaseTypographyProps> {
94
97
  /** Heading level — 1..5. Defaults to 1. */
95
98
  level?: TitleLevel;
96
99
  }
97
- /**
98
- * `Typography.Title` — semantic heading.
99
- *
100
- * @example
101
- * <Title level={2} copyable>章节标题</Title>
102
- */
103
100
  declare const Title: React.ForwardRefExoticComponent<TitleProps & React.RefAttributes<HTMLElement>>;
104
- interface TextProps extends BaseTypographyProps {
101
+ interface TextProps extends BaseTypographyProps, Omit<React.HTMLAttributes<HTMLElement>, keyof BaseTypographyProps> {
105
102
  /** Force the rendered tag (default `<span>`). */
106
103
  as?: keyof JSX.IntrinsicElements;
107
104
  }
108
- /**
109
- * `Typography.Text` — inline text with semantic / decorative variants.
110
- *
111
- * @example
112
- * <Text type="success" strong>成功</Text>
113
- * <Text code>npm install</Text>
114
- * <Text copyable>可复制内容</Text>
115
- */
116
105
  declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLElement>>;
117
- interface ParagraphProps extends BaseTypographyProps {
106
+ interface ParagraphProps extends BaseTypographyProps, Omit<React.HTMLAttributes<HTMLParagraphElement>, keyof BaseTypographyProps> {
118
107
  }
119
- /**
120
- * `Typography.Paragraph` — block paragraph with the same decorations as `Text`.
121
- *
122
- * @example
123
- * <Paragraph ellipsis={{ rows: 3, expandable: true }}>{long}</Paragraph>
124
- */
125
108
  declare const Paragraph: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
126
109
  interface LinkProps extends BaseTypographyProps, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseTypographyProps | "type"> {
127
110
  href?: string;
@@ -130,18 +113,11 @@ interface LinkProps extends BaseTypographyProps, Omit<React.AnchorHTMLAttributes
130
113
  /** Override the external icon. */
131
114
  externalIcon?: IconName;
132
115
  }
133
- /**
134
- * `Typography.Link` — styled `<a>` that participates in the same decoration
135
- * system as `Text`. Adds a small `arrow` for `external` links.
136
- *
137
- * @example
138
- * <Link href="https://example.com" external>外部链接</Link>
139
- */
140
116
  declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
141
- interface TypographyProps extends React.HTMLAttributes<HTMLDivElement> {
117
+ interface TypographyProps extends React.HTMLAttributes<HTMLElement>, ComponentThemeProps {
142
118
  children?: React.ReactNode;
143
119
  }
144
- interface TypographyComponent extends React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLDivElement>> {
120
+ interface TypographyComponent extends React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLElement>> {
145
121
  Title: typeof Title;
146
122
  Text: typeof Text;
147
123
  Paragraph: typeof Paragraph;
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { IconName } from './Icon.js';
3
+ import { f as ComponentThemeProps } from './componentThemeTypes-Jt4B5aU8.js';
3
4
  import 'react/jsx-runtime';
4
5
 
5
6
  type TypographyType = "secondary" | "success" | "warning" | "danger";
@@ -7,12 +8,14 @@ interface CopyableConfig {
7
8
  /** Text to copy. Defaults to the rendered children string. */
8
9
  text?: string;
9
10
  /** Fired after a successful copy. */
10
- onCopy?: (event: React.MouseEvent<HTMLSpanElement>) => void;
11
+ onCopy?: (event: React.MouseEvent<HTMLButtonElement>) => void;
12
+ /** 复制失败时触发,接收浏览器抛出的错误。 */
13
+ onCopyError?: (error: unknown) => void;
11
14
  /** Custom icons `[default, copied]`. */
12
15
  icon?: [React.ReactNode, React.ReactNode];
13
16
  /** Custom tooltip text `[default, copied]`. Pass `false` to disable. */
14
17
  tooltips?: [React.ReactNode, React.ReactNode] | false;
15
- /** Format/MIME hint when calling `navigator.clipboard.write` is not used. */
18
+ /** 写入剪贴板时使用的文本格式。 */
16
19
  format?: "text/plain" | "text/html";
17
20
  }
18
21
  interface EditableConfig {
@@ -41,7 +44,7 @@ interface EditableConfig {
41
44
  icon?: React.ReactNode;
42
45
  /** Tooltip text on the trigger icon. Pass `false` to disable. */
43
46
  tooltip?: React.ReactNode | false;
44
- /** Use a single-line input instead of textarea. */
47
+ /** 单行编辑器的确认按钮内容;默认使用勾选图标,传入 `null` 可隐藏。 */
45
48
  enterIcon?: React.ReactNode;
46
49
  }
47
50
  interface EllipsisConfig {
@@ -58,7 +61,7 @@ interface EllipsisConfig {
58
61
  /** Optional suffix that should always remain visible (e.g. an em-dash author). */
59
62
  suffix?: string;
60
63
  }
61
- interface BaseTypographyProps {
64
+ interface BaseTypographyProps extends ComponentThemeProps {
62
65
  /** Semantic color. */
63
66
  type?: TypographyType;
64
67
  /** Render disabled (muted + not selectable). */
@@ -90,38 +93,18 @@ interface BaseTypographyProps {
90
93
  children?: React.ReactNode;
91
94
  }
92
95
  type TitleLevel = 1 | 2 | 3 | 4 | 5;
93
- interface TitleProps extends BaseTypographyProps {
96
+ interface TitleProps extends BaseTypographyProps, Omit<React.HTMLAttributes<HTMLHeadingElement>, keyof BaseTypographyProps> {
94
97
  /** Heading level — 1..5. Defaults to 1. */
95
98
  level?: TitleLevel;
96
99
  }
97
- /**
98
- * `Typography.Title` — semantic heading.
99
- *
100
- * @example
101
- * <Title level={2} copyable>章节标题</Title>
102
- */
103
100
  declare const Title: React.ForwardRefExoticComponent<TitleProps & React.RefAttributes<HTMLElement>>;
104
- interface TextProps extends BaseTypographyProps {
101
+ interface TextProps extends BaseTypographyProps, Omit<React.HTMLAttributes<HTMLElement>, keyof BaseTypographyProps> {
105
102
  /** Force the rendered tag (default `<span>`). */
106
103
  as?: keyof JSX.IntrinsicElements;
107
104
  }
108
- /**
109
- * `Typography.Text` — inline text with semantic / decorative variants.
110
- *
111
- * @example
112
- * <Text type="success" strong>成功</Text>
113
- * <Text code>npm install</Text>
114
- * <Text copyable>可复制内容</Text>
115
- */
116
105
  declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLElement>>;
117
- interface ParagraphProps extends BaseTypographyProps {
106
+ interface ParagraphProps extends BaseTypographyProps, Omit<React.HTMLAttributes<HTMLParagraphElement>, keyof BaseTypographyProps> {
118
107
  }
119
- /**
120
- * `Typography.Paragraph` — block paragraph with the same decorations as `Text`.
121
- *
122
- * @example
123
- * <Paragraph ellipsis={{ rows: 3, expandable: true }}>{long}</Paragraph>
124
- */
125
108
  declare const Paragraph: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
126
109
  interface LinkProps extends BaseTypographyProps, Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseTypographyProps | "type"> {
127
110
  href?: string;
@@ -130,18 +113,11 @@ interface LinkProps extends BaseTypographyProps, Omit<React.AnchorHTMLAttributes
130
113
  /** Override the external icon. */
131
114
  externalIcon?: IconName;
132
115
  }
133
- /**
134
- * `Typography.Link` — styled `<a>` that participates in the same decoration
135
- * system as `Text`. Adds a small `arrow` for `external` links.
136
- *
137
- * @example
138
- * <Link href="https://example.com" external>外部链接</Link>
139
- */
140
116
  declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
141
- interface TypographyProps extends React.HTMLAttributes<HTMLDivElement> {
117
+ interface TypographyProps extends React.HTMLAttributes<HTMLElement>, ComponentThemeProps {
142
118
  children?: React.ReactNode;
143
119
  }
144
- interface TypographyComponent extends React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLDivElement>> {
120
+ interface TypographyComponent extends React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLElement>> {
145
121
  Title: typeof Title;
146
122
  Text: typeof Text;
147
123
  Paragraph: typeof Paragraph;
@@ -1,3 +1,6 @@
1
- export { Link, Paragraph, Text, Title, Typography } from './chunk-6HF6UF73.js';
2
- import './chunk-DUFRASGO.js';
3
- import './chunk-FDZG27IG.js';
1
+ export { Link, Paragraph, Text, Title, Typography } from './chunk-UQI4R32R.js';
2
+ import './chunk-3QXP2ZNP.js';
3
+ import './chunk-2A4GYSN4.js';
4
+ import './chunk-LQMOYVQF.js';
5
+ import './chunk-DRDDQCDD.js';
6
+ import './chunk-ULTDRMGN.js';
@@ -0,0 +1,294 @@
1
+ import * as React from 'react';
2
+
3
+ // src/utils/overlayStack.ts
4
+ var FOCUSABLE_SELECTOR = [
5
+ "a[href]",
6
+ "button:not([disabled])",
7
+ "input:not([disabled])",
8
+ "select:not([disabled])",
9
+ "textarea:not([disabled])",
10
+ "[tabindex]:not([tabindex='-1'])",
11
+ "[contenteditable='true']"
12
+ ].join(",");
13
+ var layers = [];
14
+ var listeningDocuments = /* @__PURE__ */ new Map();
15
+ var scrollLocks = /* @__PURE__ */ new Map();
16
+ var nextOverlayZIndex = 1e3;
17
+ var nextLayerOrder = 0;
18
+ var OverlayZIndexContext = React.createContext(void 0);
19
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
20
+ function OverlayZIndexProvider({ zIndex, children }) {
21
+ return React.createElement(OverlayZIndexContext.Provider, { value: zIndex }, children);
22
+ }
23
+ function useOverlayZIndex(open, explicitZIndex) {
24
+ const parentZIndex = React.useContext(OverlayZIndexContext);
25
+ const allocatedZIndexRef = React.useRef();
26
+ const wasOpenRef = React.useRef(false);
27
+ const hasValidExplicitZIndex = explicitZIndex != null && Number.isFinite(explicitZIndex);
28
+ if (hasValidExplicitZIndex) {
29
+ if (open) nextOverlayZIndex = Math.max(nextOverlayZIndex, explicitZIndex);
30
+ wasOpenRef.current = open;
31
+ return explicitZIndex;
32
+ }
33
+ if (!open) {
34
+ wasOpenRef.current = false;
35
+ return allocatedZIndexRef.current ?? Math.max(nextOverlayZIndex, parentZIndex ?? 0);
36
+ }
37
+ const floor = parentZIndex ?? 0;
38
+ if (!wasOpenRef.current || allocatedZIndexRef.current == null || allocatedZIndexRef.current <= floor) {
39
+ nextOverlayZIndex = Math.max(nextOverlayZIndex, floor) + 10;
40
+ allocatedZIndexRef.current = nextOverlayZIndex;
41
+ }
42
+ wasOpenRef.current = true;
43
+ return allocatedZIndexRef.current;
44
+ }
45
+ function isElementVisibleForFocus(element, container) {
46
+ const view = element.ownerDocument.defaultView;
47
+ if (!view) return true;
48
+ const elementStyle = view.getComputedStyle(element);
49
+ if (elementStyle.visibility === "hidden" || elementStyle.visibility === "collapse") return false;
50
+ let current = element;
51
+ while (current) {
52
+ const style = view.getComputedStyle(current);
53
+ if (style.display === "none" || style.contentVisibility === "hidden") return false;
54
+ if (current === container) break;
55
+ current = current.parentElement;
56
+ }
57
+ return true;
58
+ }
59
+ function getFocusableElements(container) {
60
+ return Array.from(container.querySelectorAll(FOCUSABLE_SELECTOR)).filter(
61
+ (element) => element.tabIndex >= 0 && element.getAttribute("aria-hidden") !== "true" && !element.hasAttribute("hidden") && !element.closest("[hidden],[inert]") && isElementVisibleForFocus(element, container)
62
+ );
63
+ }
64
+ function getLayerZIndex(layer) {
65
+ if (layer.zIndex != null && Number.isFinite(layer.zIndex)) return layer.zIndex;
66
+ const container = layer.containerRef.current;
67
+ if (!container) return 0;
68
+ const inlineValue = container.style.zIndex.trim();
69
+ const computedValue = inlineValue || container.ownerDocument.defaultView?.getComputedStyle(container).zIndex || "";
70
+ const parsed = Number.parseFloat(computedValue);
71
+ return Number.isFinite(parsed) ? parsed : 0;
72
+ }
73
+ function isOwnedBy(child, parent, documentLayers, visited = /* @__PURE__ */ new Set()) {
74
+ if (child === parent || visited.has(child.id)) return false;
75
+ visited.add(child.id);
76
+ const owner = child.ownerRef?.current;
77
+ const parentContainer = parent.containerRef.current;
78
+ if (!owner || !parentContainer) return false;
79
+ if (parentContainer.contains(owner)) return true;
80
+ return documentLayers.some(
81
+ (candidate) => candidate !== child && candidate !== parent && candidate.containerRef.current?.contains(owner) && isOwnedBy(candidate, parent, documentLayers, visited)
82
+ );
83
+ }
84
+ function isLayerOwnedByElement(layer, owner, documentLayers, visited = /* @__PURE__ */ new Set()) {
85
+ if (visited.has(layer.id)) return false;
86
+ visited.add(layer.id);
87
+ const layerOwner = layer.ownerRef?.current;
88
+ if (!layerOwner) return false;
89
+ if (layerOwner === owner || owner.contains(layerOwner)) return true;
90
+ return documentLayers.some((candidate) => {
91
+ if (candidate === layer || !candidate.containerRef.current?.contains(layerOwner)) return false;
92
+ return isLayerOwnedByElement(candidate, owner, documentLayers, visited);
93
+ });
94
+ }
95
+ function isTargetWithinOverlayScope(owner, target) {
96
+ const NodeConstructor = owner.ownerDocument.defaultView?.Node;
97
+ if (!target || !NodeConstructor || !(target instanceof NodeConstructor)) return false;
98
+ if (owner.contains(target)) return true;
99
+ const documentLayers = layers.filter((layer) => layer.document === owner.ownerDocument);
100
+ return documentLayers.some(
101
+ (layer) => !!layer.containerRef.current?.contains(target) && isLayerOwnedByElement(layer, owner, documentLayers)
102
+ );
103
+ }
104
+ function orderDocumentLayers(documentLayers) {
105
+ return [...documentLayers].sort((left, right) => {
106
+ if (isOwnedBy(right, left, documentLayers)) return -1;
107
+ if (isOwnedBy(left, right, documentLayers)) return 1;
108
+ const zIndexDelta = getLayerZIndex(left) - getLayerZIndex(right);
109
+ return zIndexDelta || left.order - right.order;
110
+ });
111
+ }
112
+ function createFocusScope(trappingLayer, documentLayers) {
113
+ const container = trappingLayer.containerRef.current;
114
+ if (!container) return null;
115
+ const containers = [container];
116
+ const focusable = getFocusableElements(container);
117
+ const ownedLayers = orderDocumentLayers(documentLayers).filter((layer) => isOwnedBy(layer, trappingLayer, documentLayers));
118
+ ownedLayers.forEach((layer) => {
119
+ const childContainer = layer.containerRef.current;
120
+ if (!childContainer) return;
121
+ containers.push(childContainer);
122
+ const childFocusable = getFocusableElements(childContainer);
123
+ if (childFocusable.length === 0) return;
124
+ const owner = layer.ownerRef?.current;
125
+ const ownerIndex = owner ? focusable.findIndex((element) => element === owner || owner.contains(element) || element.contains(owner)) : -1;
126
+ focusable.splice(ownerIndex >= 0 ? ownerIndex + 1 : focusable.length, 0, ...childFocusable);
127
+ });
128
+ return { containers, focusable: [...new Set(focusable)] };
129
+ }
130
+ function trapTabKey(event, scope) {
131
+ const { containers, focusable } = scope;
132
+ const container = containers[0];
133
+ if (focusable.length === 0) {
134
+ event.preventDefault();
135
+ container.focus();
136
+ return;
137
+ }
138
+ const active = container.ownerDocument.activeElement;
139
+ const activeInsideScope = containers.some((scopeContainer) => scopeContainer.contains(active));
140
+ const activeIndex = focusable.indexOf(active);
141
+ if (!activeInsideScope || activeIndex < 0) {
142
+ event.preventDefault();
143
+ (event.shiftKey ? focusable[focusable.length - 1] : focusable[0]).focus();
144
+ return;
145
+ }
146
+ const direction = event.shiftKey ? -1 : 1;
147
+ const nextIndex = (activeIndex + direction + focusable.length) % focusable.length;
148
+ event.preventDefault();
149
+ focusable[nextIndex].focus();
150
+ }
151
+ function handleDocumentKeyDown(event) {
152
+ const documentLayers = layers.filter((layer) => layer.document === event.currentTarget);
153
+ const orderedLayers = orderDocumentLayers(documentLayers);
154
+ const top = orderedLayers[orderedLayers.length - 1];
155
+ if (!top) return;
156
+ if (event.key === "Escape" && top.onEscape) {
157
+ event.preventDefault();
158
+ event.stopPropagation();
159
+ top.onEscape();
160
+ return;
161
+ }
162
+ if (event.key === "Tab") {
163
+ const active = top.document.activeElement;
164
+ const trappingLayer = [...orderedLayers].reverse().find((layer) => {
165
+ if (!layer.trapFocus) return false;
166
+ const scope2 = createFocusScope(layer, documentLayers);
167
+ if (!scope2) return false;
168
+ const ownsTop = layer === top || isOwnedBy(top, layer, documentLayers);
169
+ const containsActive = scope2.containers.some((container) => container.contains(active));
170
+ return ownsTop || containsActive;
171
+ });
172
+ const scope = trappingLayer ? createFocusScope(trappingLayer, documentLayers) : null;
173
+ if (scope) trapTabKey(event, scope);
174
+ }
175
+ }
176
+ function retainDocumentListener(doc) {
177
+ const count = listeningDocuments.get(doc) ?? 0;
178
+ if (count === 0) doc.addEventListener("keydown", handleDocumentKeyDown, true);
179
+ listeningDocuments.set(doc, count + 1);
180
+ }
181
+ function releaseDocumentListener(doc) {
182
+ const count = listeningDocuments.get(doc) ?? 0;
183
+ if (count <= 1) {
184
+ doc.removeEventListener("keydown", handleDocumentKeyDown, true);
185
+ listeningDocuments.delete(doc);
186
+ return;
187
+ }
188
+ listeningDocuments.set(doc, count - 1);
189
+ }
190
+ function lockDocumentScroll(doc) {
191
+ const existing = scrollLocks.get(doc);
192
+ if (existing) {
193
+ existing.count += 1;
194
+ return;
195
+ }
196
+ const body = doc.body;
197
+ const scrollbarWidth = Math.max(0, doc.defaultView.innerWidth - doc.documentElement.clientWidth);
198
+ const computedPadding = Number.parseFloat(doc.defaultView.getComputedStyle(body).paddingRight) || 0;
199
+ scrollLocks.set(doc, {
200
+ count: 1,
201
+ overflow: body.style.overflow,
202
+ paddingRight: body.style.paddingRight
203
+ });
204
+ body.style.overflow = "hidden";
205
+ if (scrollbarWidth > 0) body.style.paddingRight = `${computedPadding + scrollbarWidth}px`;
206
+ }
207
+ function unlockDocumentScroll(doc) {
208
+ const state = scrollLocks.get(doc);
209
+ if (!state) return;
210
+ state.count -= 1;
211
+ if (state.count > 0) return;
212
+ doc.body.style.overflow = state.overflow;
213
+ doc.body.style.paddingRight = state.paddingRight;
214
+ scrollLocks.delete(doc);
215
+ }
216
+ function useOverlayLayer({
217
+ open,
218
+ containerRef,
219
+ ownerRef,
220
+ zIndex,
221
+ onEscape,
222
+ escapeEnabled = true,
223
+ trapFocus = false,
224
+ autoFocus = false,
225
+ restoreFocus = false,
226
+ lockScroll = false,
227
+ initialFocusRef
228
+ }) {
229
+ const idRef = React.useRef(/* @__PURE__ */ Symbol("lumina-overlay"));
230
+ const entryRef = React.useRef(null);
231
+ const previousFocusRef = React.useRef(null);
232
+ const restoreFocusRef = React.useRef(restoreFocus);
233
+ restoreFocusRef.current = restoreFocus;
234
+ if (entryRef.current) {
235
+ entryRef.current.containerRef = containerRef;
236
+ entryRef.current.ownerRef = ownerRef;
237
+ entryRef.current.zIndex = zIndex;
238
+ entryRef.current.onEscape = escapeEnabled ? onEscape : void 0;
239
+ entryRef.current.trapFocus = trapFocus;
240
+ }
241
+ useIsomorphicLayoutEffect(() => {
242
+ if (!open || typeof document === "undefined") return;
243
+ const container = containerRef.current;
244
+ const doc = container?.ownerDocument ?? document;
245
+ previousFocusRef.current = doc.activeElement;
246
+ const entry = {
247
+ id: idRef.current,
248
+ containerRef,
249
+ ownerRef,
250
+ zIndex,
251
+ onEscape: escapeEnabled ? onEscape : void 0,
252
+ trapFocus,
253
+ document: doc,
254
+ order: ++nextLayerOrder
255
+ };
256
+ entryRef.current = entry;
257
+ layers.push(entry);
258
+ retainDocumentListener(doc);
259
+ const frame = autoFocus ? doc.defaultView?.requestAnimationFrame(() => {
260
+ const currentContainer = containerRef.current;
261
+ if (!currentContainer) return;
262
+ const target = initialFocusRef?.current ?? getFocusableElements(currentContainer)[0] ?? currentContainer;
263
+ target?.focus();
264
+ }) : void 0;
265
+ return () => {
266
+ if (frame != null) doc.defaultView?.cancelAnimationFrame(frame);
267
+ const index = layers.findIndex((layer) => layer.id === entry.id);
268
+ if (index >= 0) layers.splice(index, 1);
269
+ releaseDocumentListener(doc);
270
+ const currentEntry = entryRef.current ?? entry;
271
+ entryRef.current = null;
272
+ if (restoreFocusRef.current) {
273
+ const previous = previousFocusRef.current;
274
+ const owner = currentEntry.ownerRef?.current;
275
+ const ownerTarget = owner ? owner.tabIndex >= 0 ? owner : getFocusableElements(owner)[0] : void 0;
276
+ const closingContainer = currentEntry.containerRef.current ?? container;
277
+ doc.defaultView?.requestAnimationFrame(() => {
278
+ const active = doc.activeElement;
279
+ const focusWasReleased = active == null || active === doc.body || active === doc.documentElement || !active.isConnected || closingContainer?.contains(active);
280
+ const target = ownerTarget?.isConnected ? ownerTarget : previous;
281
+ if (target?.isConnected && focusWasReleased) target.focus();
282
+ });
283
+ }
284
+ };
285
+ }, [open]);
286
+ useIsomorphicLayoutEffect(() => {
287
+ if (!open || !lockScroll || typeof document === "undefined") return;
288
+ const doc = containerRef.current?.ownerDocument ?? document;
289
+ lockDocumentScroll(doc);
290
+ return () => unlockDocumentScroll(doc);
291
+ }, [open, lockScroll, containerRef]);
292
+ }
293
+
294
+ export { OverlayZIndexProvider, isTargetWithinOverlayScope, useOverlayLayer, useOverlayZIndex };
@@ -1,7 +1,9 @@
1
1
  'use strict';
2
2
 
3
- require('./tokens-RYJ3DFTU.css');
3
+ var chunkNRJXZPZR_cjs = require('./chunk-NRJXZPZR.cjs');
4
+ require('./tokens-CEJVVA3G.css');
4
5
  require('./shared-NJHRNLRH.css');
6
+ require('./Icon-HJSUVW4O.css');
5
7
  var React = require('react');
6
8
  var jsxRuntime = require('react/jsx-runtime');
7
9
 
@@ -25,7 +27,6 @@ function _interopNamespace(e) {
25
27
 
26
28
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
29
 
28
- // src/components/Icon/Icon.tsx
29
30
  var paths = {
30
31
  search: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31
32
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "7" }),
@@ -186,11 +187,11 @@ var paths = {
186
187
  ] }),
187
188
  checkCircleFilled: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
188
189
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
189
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m7.8 12.2 2.7 2.7 5.8-6", stroke: "var(--bg)", strokeWidth: "2.2", fill: "none" })
190
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m7.8 12.2 2.7 2.7 5.8-6", stroke: "var(--lmn-icon-bg, var(--bg))", strokeWidth: "2.2", fill: "none" })
190
191
  ] }),
191
192
  clockCircleFilled: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
192
193
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10", fill: "currentColor", stroke: "none" }),
193
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 6.5v5.7l3.6 2.1", stroke: "var(--bg)", strokeWidth: "2.1", fill: "none" })
194
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 6.5v5.7l3.6 2.1", stroke: "var(--lmn-icon-bg, var(--bg))", strokeWidth: "2.1", fill: "none" })
194
195
  ] }),
195
196
  closeCircle: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
196
197
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
@@ -256,27 +257,50 @@ var paths = {
256
257
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "4", cy: "18", r: "1", fill: "currentColor", stroke: "none" })
257
258
  ] })
258
259
  };
259
- var Icon = React__namespace.forwardRef(
260
- ({ name, size = 16, stroke = 2, style, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
261
- "svg",
262
- {
263
- ref,
264
- width: size,
265
- height: size,
266
- viewBox: "0 0 24 24",
267
- fill: "none",
268
- stroke: "currentColor",
269
- strokeWidth: stroke,
270
- strokeLinecap: "round",
271
- strokeLinejoin: "round",
272
- overflow: "visible",
273
- style,
274
- ...rest,
275
- children: paths[name]
276
- }
277
- )
260
+ var IconBase = React__namespace.forwardRef(
261
+ ({
262
+ name,
263
+ size = 16,
264
+ stroke = 2,
265
+ title,
266
+ style,
267
+ role,
268
+ "aria-label": ariaLabel,
269
+ "aria-labelledby": ariaLabelledBy,
270
+ focusable,
271
+ ...rest
272
+ }, ref) => {
273
+ const semantic = !!(title || ariaLabel || ariaLabelledBy || role);
274
+ return /* @__PURE__ */ jsxRuntime.jsxs(
275
+ "svg",
276
+ {
277
+ ref,
278
+ width: size,
279
+ height: size,
280
+ viewBox: "0 0 24 24",
281
+ fill: "none",
282
+ stroke: "currentColor",
283
+ strokeWidth: stroke,
284
+ strokeLinecap: "round",
285
+ strokeLinejoin: "round",
286
+ overflow: "visible",
287
+ style,
288
+ role: semantic ? role ?? "img" : void 0,
289
+ "aria-label": ariaLabel,
290
+ "aria-labelledby": ariaLabelledBy,
291
+ "aria-hidden": semantic ? void 0 : true,
292
+ focusable: focusable ?? "false",
293
+ ...rest,
294
+ children: [
295
+ title && /* @__PURE__ */ jsxRuntime.jsx("title", { children: title }),
296
+ paths[name]
297
+ ]
298
+ }
299
+ );
300
+ }
278
301
  );
279
- Icon.displayName = "Icon";
302
+ IconBase.displayName = "Icon";
303
+ var Icon = chunkNRJXZPZR_cjs.withComponentTheme(IconBase, "Icon", "icon");
280
304
  var isIconName = (value) => typeof value === "string" && Object.prototype.hasOwnProperty.call(paths, value);
281
305
  var renderIconSlot = (icon, { size = 14, className } = {}) => {
282
306
  if (icon == null || icon === false) return null;
@@ -333,7 +357,7 @@ var NAMED_ICON_MAP = {
333
357
  var resolveIconName = (name, fallback = "appstore") => NAMED_ICON_MAP[name] ?? fallback;
334
358
  var createNamedIcon = (displayName, defaultSpin = false) => {
335
359
  const iconName = NAMED_ICON_MAP[displayName];
336
- const Component = React__namespace.forwardRef(
360
+ const NamedIconBase = React__namespace.forwardRef(
337
361
  ({ spin, rotate, size = "1em", className = "", style, ...rest }, ref) => {
338
362
  const shouldSpin = spin ?? defaultSpin;
339
363
  const transform = rotate ? `${style?.transform ? `${style.transform} ` : ""}rotate(${rotate}deg)` : style?.transform;
@@ -343,7 +367,7 @@ var createNamedIcon = (displayName, defaultSpin = false) => {
343
367
  ref,
344
368
  role: "img",
345
369
  "aria-label": displayName,
346
- className,
370
+ className: `named-icon ${shouldSpin ? "spinning" : ""} ${className}`.trim(),
347
371
  style: {
348
372
  display: "inline-flex",
349
373
  alignItems: "center",
@@ -355,19 +379,20 @@ var createNamedIcon = (displayName, defaultSpin = false) => {
355
379
  },
356
380
  ...rest,
357
381
  children: /* @__PURE__ */ jsxRuntime.jsx(
358
- Icon,
382
+ IconBase,
359
383
  {
360
384
  name: iconName,
361
- size,
362
- style: shouldSpin ? { animation: "spin 0.9s linear infinite" } : void 0
385
+ size
363
386
  }
364
387
  )
365
388
  }
366
389
  );
367
390
  }
368
391
  );
369
- Component.displayName = displayName;
370
- return Component;
392
+ NamedIconBase.displayName = displayName;
393
+ const NamedIcon = chunkNRJXZPZR_cjs.withComponentTheme(NamedIconBase, "Icon", "icon");
394
+ NamedIcon.displayName = displayName;
395
+ return NamedIcon;
371
396
  };
372
397
  var AimOutlined = createNamedIcon("AimOutlined");
373
398
  var AppstoreOutlined = createNamedIcon("AppstoreOutlined");