@fangxinyan/lumina 0.2.1 → 0.3.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 (250) hide show
  1. package/dist/{Accordion-3TQPKNN3.css → Accordion-REMDCQUD.css} +0 -1
  2. package/dist/Accordion.cjs +2 -2
  3. package/dist/Accordion.js +1 -1
  4. package/dist/Alert.cjs +2 -2
  5. package/dist/Alert.js +1 -1
  6. package/dist/AppShell.cjs +5 -5
  7. package/dist/AppShell.js +1 -1
  8. package/dist/Avatar.cjs +2 -2
  9. package/dist/Avatar.js +1 -1
  10. package/dist/Button.cjs +3 -3
  11. package/dist/Button.js +1 -1
  12. package/dist/Calendar.cjs +2 -2
  13. package/dist/Calendar.js +1 -1
  14. package/dist/Card.cjs +3 -3
  15. package/dist/Card.js +1 -1
  16. package/dist/{Cascader-DTRTTXC2.css → Cascader-VSYEKQCG.css} +1 -1
  17. package/dist/Cascader.cjs +2 -2
  18. package/dist/Cascader.js +1 -1
  19. package/dist/Checkbox.cjs +3 -3
  20. package/dist/Checkbox.js +1 -1
  21. package/dist/{ColorPicker-GP7AQYUU.css → ColorPicker-SDDQGHCM.css} +1 -1
  22. package/dist/ColorPicker.cjs +2 -2
  23. package/dist/ColorPicker.js +1 -1
  24. package/dist/CommandPalette-T45DBMPY.css +139 -0
  25. package/dist/CommandPalette.cjs +14 -0
  26. package/dist/CommandPalette.cjs.map +1 -0
  27. package/dist/CommandPalette.d.cts +65 -0
  28. package/dist/CommandPalette.d.ts +65 -0
  29. package/dist/CommandPalette.js +5 -0
  30. package/dist/CommandPalette.js.map +1 -0
  31. package/dist/ContextMenu-FKW6CQW4.css +76 -0
  32. package/dist/ContextMenu.cjs +12 -0
  33. package/dist/ContextMenu.cjs.map +1 -0
  34. package/dist/ContextMenu.d.cts +50 -0
  35. package/dist/ContextMenu.d.ts +50 -0
  36. package/dist/ContextMenu.js +3 -0
  37. package/dist/ContextMenu.js.map +1 -0
  38. package/dist/Divider.cjs +2 -2
  39. package/dist/Divider.js +1 -1
  40. package/dist/Drawer.cjs +2 -2
  41. package/dist/Drawer.js +1 -1
  42. package/dist/Empty.cjs +4 -4
  43. package/dist/Empty.js +1 -1
  44. package/dist/{Image-WYWORJT4.css → Image-4MN34O6P.css} +1 -1
  45. package/dist/Image.cjs +3 -3
  46. package/dist/Image.js +1 -1
  47. package/dist/Input.cjs +3 -3
  48. package/dist/Input.js +1 -1
  49. package/dist/List.cjs +2 -2
  50. package/dist/List.js +1 -1
  51. package/dist/{Modal-N4YVLEWW.css → Modal-XSDMU4XJ.css} +1 -1
  52. package/dist/Modal.cjs +3 -3
  53. package/dist/Modal.js +2 -2
  54. package/dist/Pagination.cjs +4 -4
  55. package/dist/Pagination.js +3 -3
  56. package/dist/{Popover-MGCMOXYP.css → Popover-NYEKT5CQ.css} +1 -1
  57. package/dist/Popover.cjs +2 -2
  58. package/dist/Popover.js +1 -1
  59. package/dist/Progress.cjs +3 -3
  60. package/dist/Progress.js +1 -1
  61. package/dist/{Select-EDG37C37.css → Select-J3CCVFJ7.css} +1 -1
  62. package/dist/Select.cjs +3 -3
  63. package/dist/Select.js +2 -2
  64. package/dist/Slider.cjs +2 -2
  65. package/dist/Slider.js +1 -1
  66. package/dist/Splitter-DHNOY4NC.css +66 -0
  67. package/dist/Splitter.cjs +12 -0
  68. package/dist/Splitter.cjs.map +1 -0
  69. package/dist/Splitter.d.cts +44 -0
  70. package/dist/Splitter.d.ts +44 -0
  71. package/dist/Splitter.js +3 -0
  72. package/dist/Splitter.js.map +1 -0
  73. package/dist/StatusBar-CDS2GPSI.css +58 -0
  74. package/dist/StatusBar.cjs +16 -0
  75. package/dist/StatusBar.cjs.map +1 -0
  76. package/dist/StatusBar.d.cts +39 -0
  77. package/dist/StatusBar.d.ts +39 -0
  78. package/dist/StatusBar.js +3 -0
  79. package/dist/StatusBar.js.map +1 -0
  80. package/dist/Switch.cjs +2 -2
  81. package/dist/Switch.js +1 -1
  82. package/dist/{Table-YKVM42SW.css → Table-2LPTOUIR.css} +1 -1
  83. package/dist/Table.cjs +7 -7
  84. package/dist/Table.js +5 -5
  85. package/dist/Tabs.cjs +3 -3
  86. package/dist/Tabs.js +1 -1
  87. package/dist/Tag.cjs +3 -3
  88. package/dist/Tag.js +1 -1
  89. package/dist/Theme.cjs +10 -10
  90. package/dist/Theme.js +1 -1
  91. package/dist/{Toast-ERHDN3WG.css → Toast-6PVSAXQ5.css} +1 -1
  92. package/dist/Toast.cjs +3 -3
  93. package/dist/Toast.js +1 -1
  94. package/dist/Tooltip.cjs +2 -2
  95. package/dist/Tooltip.js +1 -1
  96. package/dist/Typography.cjs +6 -6
  97. package/dist/Typography.js +1 -1
  98. package/dist/{chunk-5WF6M47X.cjs → chunk-24FAK7QU.cjs} +3 -3
  99. package/dist/{chunk-5WF6M47X.cjs.map → chunk-24FAK7QU.cjs.map} +1 -1
  100. package/dist/{chunk-AJZKESHB.js → chunk-276NALYW.js} +3 -3
  101. package/dist/{chunk-AJZKESHB.js.map → chunk-276NALYW.js.map} +1 -1
  102. package/dist/{chunk-FI7QO3I5.cjs → chunk-33TIL25B.cjs} +3 -3
  103. package/dist/{chunk-FI7QO3I5.cjs.map → chunk-33TIL25B.cjs.map} +1 -1
  104. package/dist/{chunk-RDLPX7RK.cjs → chunk-3HNRKO3M.cjs} +31 -5
  105. package/dist/chunk-3HNRKO3M.cjs.map +1 -0
  106. package/dist/{chunk-GZGZR4FT.js → chunk-3LI6QH2Q.js} +3 -3
  107. package/dist/{chunk-GZGZR4FT.js.map → chunk-3LI6QH2Q.js.map} +1 -1
  108. package/dist/{chunk-NE4YEBFH.js → chunk-3UU2PUK4.js} +4 -4
  109. package/dist/{chunk-NE4YEBFH.js.map → chunk-3UU2PUK4.js.map} +1 -1
  110. package/dist/chunk-47Z4NIU4.js +118 -0
  111. package/dist/chunk-47Z4NIU4.js.map +1 -0
  112. package/dist/{chunk-4U4OY5RA.js → chunk-4SCDDSXY.js} +3 -3
  113. package/dist/{chunk-4U4OY5RA.js.map → chunk-4SCDDSXY.js.map} +1 -1
  114. package/dist/{chunk-NXOAYNG2.cjs → chunk-5BFETKVP.cjs} +3 -3
  115. package/dist/{chunk-NXOAYNG2.cjs.map → chunk-5BFETKVP.cjs.map} +1 -1
  116. package/dist/{chunk-VICGQC6G.cjs → chunk-5EAVXFFD.cjs} +3 -3
  117. package/dist/{chunk-VICGQC6G.cjs.map → chunk-5EAVXFFD.cjs.map} +1 -1
  118. package/dist/{chunk-OYGFMXAA.js → chunk-5N7347MI.js} +3 -3
  119. package/dist/{chunk-OYGFMXAA.js.map → chunk-5N7347MI.js.map} +1 -1
  120. package/dist/{chunk-VJN637MT.js → chunk-5PREWYTB.js} +3 -3
  121. package/dist/{chunk-VJN637MT.js.map → chunk-5PREWYTB.js.map} +1 -1
  122. package/dist/{chunk-77BVQNAQ.js → chunk-5UOBYRYJ.js} +3 -3
  123. package/dist/{chunk-77BVQNAQ.js.map → chunk-5UOBYRYJ.js.map} +1 -1
  124. package/dist/{chunk-BBPNQ44M.js → chunk-6GNFRP2H.js} +3 -3
  125. package/dist/{chunk-BBPNQ44M.js.map → chunk-6GNFRP2H.js.map} +1 -1
  126. package/dist/{chunk-TZSWDH5T.cjs → chunk-7JYI5THC.cjs} +3 -3
  127. package/dist/{chunk-TZSWDH5T.cjs.map → chunk-7JYI5THC.cjs.map} +1 -1
  128. package/dist/chunk-7T2SLRNL.cjs +140 -0
  129. package/dist/chunk-7T2SLRNL.cjs.map +1 -0
  130. package/dist/chunk-7YQWG7HR.cjs +45 -0
  131. package/dist/chunk-7YQWG7HR.cjs.map +1 -0
  132. package/dist/chunk-AGN3JSUH.cjs +209 -0
  133. package/dist/chunk-AGN3JSUH.cjs.map +1 -0
  134. package/dist/{chunk-CCBHZYE6.cjs → chunk-AR4M7QGF.cjs} +7 -7
  135. package/dist/{chunk-CCBHZYE6.cjs.map → chunk-AR4M7QGF.cjs.map} +1 -1
  136. package/dist/{chunk-K7PVJLW4.cjs → chunk-AWLBLRQX.cjs} +5 -5
  137. package/dist/{chunk-K7PVJLW4.cjs.map → chunk-AWLBLRQX.cjs.map} +1 -1
  138. package/dist/{chunk-PBBHUUXU.cjs → chunk-B5JH7NRZ.cjs} +3 -3
  139. package/dist/{chunk-PBBHUUXU.cjs.map → chunk-B5JH7NRZ.cjs.map} +1 -1
  140. package/dist/{chunk-Z5X5AMLA.cjs → chunk-CALRTZZ7.cjs} +3 -3
  141. package/dist/{chunk-Z5X5AMLA.cjs.map → chunk-CALRTZZ7.cjs.map} +1 -1
  142. package/dist/{chunk-H6FCIJOP.js → chunk-DBJIK4JE.js} +3 -3
  143. package/dist/{chunk-H6FCIJOP.js.map → chunk-DBJIK4JE.js.map} +1 -1
  144. package/dist/{chunk-QESLHLTG.cjs → chunk-EHO2JH2L.cjs} +4 -4
  145. package/dist/{chunk-QESLHLTG.cjs.map → chunk-EHO2JH2L.cjs.map} +1 -1
  146. package/dist/{chunk-WNGG25QX.js → chunk-FFZLSY2N.js} +3 -3
  147. package/dist/{chunk-WNGG25QX.js.map → chunk-FFZLSY2N.js.map} +1 -1
  148. package/dist/{chunk-AEJJGUEN.cjs → chunk-GOIQR4OH.cjs} +3 -3
  149. package/dist/{chunk-AEJJGUEN.cjs.map → chunk-GOIQR4OH.cjs.map} +1 -1
  150. package/dist/{chunk-Z7P6QGMT.js → chunk-GR5STMOA.js} +3 -3
  151. package/dist/{chunk-Z7P6QGMT.js.map → chunk-GR5STMOA.js.map} +1 -1
  152. package/dist/{chunk-URF6RBW6.cjs → chunk-HNVRMOL3.cjs} +3 -3
  153. package/dist/{chunk-URF6RBW6.cjs.map → chunk-HNVRMOL3.cjs.map} +1 -1
  154. package/dist/{chunk-RPD2OIIP.js → chunk-I2HHC6QW.js} +4 -4
  155. package/dist/{chunk-RPD2OIIP.js.map → chunk-I2HHC6QW.js.map} +1 -1
  156. package/dist/{chunk-AXMEZGEG.cjs → chunk-IZDJCEMF.cjs} +3 -3
  157. package/dist/{chunk-AXMEZGEG.cjs.map → chunk-IZDJCEMF.cjs.map} +1 -1
  158. package/dist/{chunk-V34OPWKZ.js → chunk-JSDQVVQB.js} +3 -3
  159. package/dist/{chunk-V34OPWKZ.js.map → chunk-JSDQVVQB.js.map} +1 -1
  160. package/dist/{chunk-QTGDYQOT.cjs → chunk-LLNEDEST.cjs} +4 -4
  161. package/dist/{chunk-QTGDYQOT.cjs.map → chunk-LLNEDEST.cjs.map} +1 -1
  162. package/dist/{chunk-C5TGQ7CV.cjs → chunk-MFWOBALK.cjs} +3 -3
  163. package/dist/{chunk-C5TGQ7CV.cjs.map → chunk-MFWOBALK.cjs.map} +1 -1
  164. package/dist/{chunk-LDENBYRC.cjs → chunk-MKR4X57L.cjs} +3 -3
  165. package/dist/{chunk-LDENBYRC.cjs.map → chunk-MKR4X57L.cjs.map} +1 -1
  166. package/dist/{chunk-LSLYY5FN.js → chunk-MTCLJHXU.js} +5 -5
  167. package/dist/{chunk-LSLYY5FN.js.map → chunk-MTCLJHXU.js.map} +1 -1
  168. package/dist/{chunk-JKLQOB2F.cjs → chunk-MUFMJPRT.cjs} +3 -3
  169. package/dist/{chunk-JKLQOB2F.cjs.map → chunk-MUFMJPRT.cjs.map} +1 -1
  170. package/dist/{chunk-OEHCA5IV.js → chunk-NGQDVJH3.js} +4 -4
  171. package/dist/{chunk-OEHCA5IV.js.map → chunk-NGQDVJH3.js.map} +1 -1
  172. package/dist/{chunk-7H453VPW.cjs → chunk-NQQWCIE6.cjs} +3 -3
  173. package/dist/{chunk-7H453VPW.cjs.map → chunk-NQQWCIE6.cjs.map} +1 -1
  174. package/dist/{chunk-ZWP4LSS3.js → chunk-NS3C2ZSE.js} +3 -3
  175. package/dist/{chunk-ZWP4LSS3.js.map → chunk-NS3C2ZSE.js.map} +1 -1
  176. package/dist/{chunk-HKAQILD2.cjs → chunk-O2HMH5BI.cjs} +4 -4
  177. package/dist/{chunk-HKAQILD2.cjs.map → chunk-O2HMH5BI.cjs.map} +1 -1
  178. package/dist/chunk-OWNVDXRQ.js +42 -0
  179. package/dist/chunk-OWNVDXRQ.js.map +1 -0
  180. package/dist/{chunk-3UFU63X7.cjs → chunk-OZVPJWXO.cjs} +3 -3
  181. package/dist/{chunk-3UFU63X7.cjs.map → chunk-OZVPJWXO.cjs.map} +1 -1
  182. package/dist/{chunk-M6CGYGEO.js → chunk-Q2EXOT4B.js} +3 -3
  183. package/dist/{chunk-M6CGYGEO.js.map → chunk-Q2EXOT4B.js.map} +1 -1
  184. package/dist/{chunk-7U6I44RV.cjs → chunk-Q7CDWNM6.cjs} +3 -3
  185. package/dist/{chunk-7U6I44RV.cjs.map → chunk-Q7CDWNM6.cjs.map} +1 -1
  186. package/dist/{chunk-437LB2V4.js → chunk-QJGKI2BD.js} +3 -3
  187. package/dist/{chunk-437LB2V4.js.map → chunk-QJGKI2BD.js.map} +1 -1
  188. package/dist/chunk-RFU5HN4E.js +149 -0
  189. package/dist/chunk-RFU5HN4E.js.map +1 -0
  190. package/dist/{chunk-IKI5CS4L.cjs → chunk-RIDCBNCM.cjs} +4 -4
  191. package/dist/{chunk-IKI5CS4L.cjs.map → chunk-RIDCBNCM.cjs.map} +1 -1
  192. package/dist/{chunk-OPTTHURA.cjs → chunk-RSZNFKCQ.cjs} +3 -3
  193. package/dist/{chunk-OPTTHURA.cjs.map → chunk-RSZNFKCQ.cjs.map} +1 -1
  194. package/dist/{chunk-EPFYIR63.cjs → chunk-RVSWH4RH.cjs} +7 -7
  195. package/dist/{chunk-EPFYIR63.cjs.map → chunk-RVSWH4RH.cjs.map} +1 -1
  196. package/dist/{chunk-TWBJCFEJ.cjs → chunk-SVVB6POY.cjs} +4 -4
  197. package/dist/{chunk-TWBJCFEJ.cjs.map → chunk-SVVB6POY.cjs.map} +1 -1
  198. package/dist/{chunk-QPZZNSRB.js → chunk-TMZVX6NO.js} +4 -4
  199. package/dist/{chunk-QPZZNSRB.js.map → chunk-TMZVX6NO.js.map} +1 -1
  200. package/dist/{chunk-YEOARJKR.cjs → chunk-TQLCIXCK.cjs} +3 -3
  201. package/dist/{chunk-YEOARJKR.cjs.map → chunk-TQLCIXCK.cjs.map} +1 -1
  202. package/dist/{chunk-GIVMKGZN.js → chunk-TY5EAKEI.js} +3 -3
  203. package/dist/{chunk-GIVMKGZN.js.map → chunk-TY5EAKEI.js.map} +1 -1
  204. package/dist/{chunk-4MR4GVTD.js → chunk-U4K7HOMW.js} +31 -5
  205. package/dist/chunk-U4K7HOMW.js.map +1 -0
  206. package/dist/{chunk-IWVKITPN.js → chunk-U5BZ7E3F.js} +3 -3
  207. package/dist/{chunk-IWVKITPN.js.map → chunk-U5BZ7E3F.js.map} +1 -1
  208. package/dist/{chunk-3WAFIUDQ.js → chunk-UQB5OHMO.js} +3 -3
  209. package/dist/{chunk-3WAFIUDQ.js.map → chunk-UQB5OHMO.js.map} +1 -1
  210. package/dist/{chunk-ZVCMXDTP.js → chunk-URLSZPS5.js} +5 -5
  211. package/dist/{chunk-ZVCMXDTP.js.map → chunk-URLSZPS5.js.map} +1 -1
  212. package/dist/{chunk-I7SSCSFH.js → chunk-W6I67HQQ.js} +3 -3
  213. package/dist/{chunk-I7SSCSFH.js.map → chunk-W6I67HQQ.js.map} +1 -1
  214. package/dist/{chunk-NSUD5B22.js → chunk-WBMF7WM3.js} +3 -3
  215. package/dist/{chunk-NSUD5B22.js.map → chunk-WBMF7WM3.js.map} +1 -1
  216. package/dist/{chunk-4GT5TOHP.js → chunk-WDBJVKSR.js} +3 -3
  217. package/dist/{chunk-4GT5TOHP.js.map → chunk-WDBJVKSR.js.map} +1 -1
  218. package/dist/{chunk-TYQ5CN2C.js → chunk-WQFC5EMC.js} +4 -4
  219. package/dist/{chunk-TYQ5CN2C.js.map → chunk-WQFC5EMC.js.map} +1 -1
  220. package/dist/{chunk-SBMOIE5C.cjs → chunk-WREHBIJ5.cjs} +10 -10
  221. package/dist/{chunk-SBMOIE5C.cjs.map → chunk-WREHBIJ5.cjs.map} +1 -1
  222. package/dist/chunk-WZ73TWB2.cjs +174 -0
  223. package/dist/chunk-WZ73TWB2.cjs.map +1 -0
  224. package/dist/chunk-XDFZRV3V.js +184 -0
  225. package/dist/chunk-XDFZRV3V.js.map +1 -0
  226. package/dist/{chunk-F7HW2PYR.cjs → chunk-XUT2Z2L6.cjs} +3 -3
  227. package/dist/{chunk-F7HW2PYR.cjs.map → chunk-XUT2Z2L6.cjs.map} +1 -1
  228. package/dist/{chunk-E6R63QOL.js → chunk-XZ22B3NW.js} +6 -6
  229. package/dist/{chunk-E6R63QOL.js.map → chunk-XZ22B3NW.js.map} +1 -1
  230. package/dist/{chunk-K5MHL732.js → chunk-YXKJOPYT.js} +4 -4
  231. package/dist/{chunk-K5MHL732.js.map → chunk-YXKJOPYT.js.map} +1 -1
  232. package/dist/{chunk-IDM6JJLP.cjs → chunk-YZ2I7CDF.cjs} +3 -3
  233. package/dist/{chunk-IDM6JJLP.cjs.map → chunk-YZ2I7CDF.cjs.map} +1 -1
  234. package/dist/index.cjs +142 -118
  235. package/dist/index.cjs.map +1 -1
  236. package/dist/index.d.cts +5 -1
  237. package/dist/index.d.ts +5 -1
  238. package/dist/index.js +35 -31
  239. package/dist/index.js.map +1 -1
  240. package/dist/styles.css +25 -18
  241. package/dist/{tokens-HWQ7KWPG.css → tokens-BIIUTPKN.css} +17 -9
  242. package/dist/tokens.css +17 -9
  243. package/docs/llms/commandpalette.md +58 -0
  244. package/docs/llms/contextmenu.md +55 -0
  245. package/docs/llms/splitter.md +63 -0
  246. package/docs/llms/statusbar.md +53 -0
  247. package/docs/llms.md +5 -1
  248. package/package.json +1 -1
  249. package/dist/chunk-4MR4GVTD.js.map +0 -1
  250. package/dist/chunk-RDLPX7RK.cjs.map +0 -1
@@ -31,7 +31,6 @@
31
31
  color: var(--fg-muted);
32
32
  font-size: 13px;
33
33
  }
34
- .accordion-item.open .accordion-body { max-height: 320px; }
35
34
  .accordion-body-inner { padding: 0 18px 16px; }
36
35
  .accordion-chev {
37
36
  transition: transform var(--dur) var(--ease), color var(--dur) var(--ease);
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkRDLPX7RK_cjs = require('./chunk-RDLPX7RK.cjs');
3
+ var chunk3HNRKO3M_cjs = require('./chunk-3HNRKO3M.cjs');
4
4
  require('./chunk-YVO7XO4W.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Accordion", {
9
9
  enumerable: true,
10
- get: function () { return chunkRDLPX7RK_cjs.Accordion; }
10
+ get: function () { return chunk3HNRKO3M_cjs.Accordion; }
11
11
  });
12
12
  //# sourceMappingURL=Accordion.cjs.map
13
13
  //# sourceMappingURL=Accordion.cjs.map
package/dist/Accordion.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Accordion } from './chunk-4MR4GVTD.js';
1
+ export { Accordion } from './chunk-U4K7HOMW.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Accordion.js.map
4
4
  //# sourceMappingURL=Accordion.js.map
package/dist/Alert.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkZ5X5AMLA_cjs = require('./chunk-Z5X5AMLA.cjs');
3
+ var chunkCALRTZZ7_cjs = require('./chunk-CALRTZZ7.cjs');
4
4
  require('./chunk-YVO7XO4W.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Alert", {
9
9
  enumerable: true,
10
- get: function () { return chunkZ5X5AMLA_cjs.Alert; }
10
+ get: function () { return chunkCALRTZZ7_cjs.Alert; }
11
11
  });
12
12
  //# sourceMappingURL=Alert.cjs.map
13
13
  //# sourceMappingURL=Alert.cjs.map
package/dist/Alert.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Alert } from './chunk-GIVMKGZN.js';
1
+ export { Alert } from './chunk-TY5EAKEI.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Alert.js.map
4
4
  //# sourceMappingURL=Alert.js.map
package/dist/AppShell.cjs CHANGED
@@ -1,24 +1,24 @@
1
1
  'use strict';
2
2
 
3
- var chunkFI7QO3I5_cjs = require('./chunk-FI7QO3I5.cjs');
3
+ var chunk33TIL25B_cjs = require('./chunk-33TIL25B.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "AppShell", {
8
8
  enumerable: true,
9
- get: function () { return chunkFI7QO3I5_cjs.AppShell; }
9
+ get: function () { return chunk33TIL25B_cjs.AppShell; }
10
10
  });
11
11
  Object.defineProperty(exports, "Sidebar", {
12
12
  enumerable: true,
13
- get: function () { return chunkFI7QO3I5_cjs.Sidebar; }
13
+ get: function () { return chunk33TIL25B_cjs.Sidebar; }
14
14
  });
15
15
  Object.defineProperty(exports, "TitleBar", {
16
16
  enumerable: true,
17
- get: function () { return chunkFI7QO3I5_cjs.TitleBar; }
17
+ get: function () { return chunk33TIL25B_cjs.TitleBar; }
18
18
  });
19
19
  Object.defineProperty(exports, "WindowControls", {
20
20
  enumerable: true,
21
- get: function () { return chunkFI7QO3I5_cjs.WindowControls; }
21
+ get: function () { return chunk33TIL25B_cjs.WindowControls; }
22
22
  });
23
23
  //# sourceMappingURL=AppShell.cjs.map
24
24
  //# sourceMappingURL=AppShell.cjs.map
package/dist/AppShell.js CHANGED
@@ -1,3 +1,3 @@
1
- export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-3WAFIUDQ.js';
1
+ export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-UQB5OHMO.js';
2
2
  //# sourceMappingURL=AppShell.js.map
3
3
  //# sourceMappingURL=AppShell.js.map
package/dist/Avatar.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkYEOARJKR_cjs = require('./chunk-YEOARJKR.cjs');
3
+ var chunkTQLCIXCK_cjs = require('./chunk-TQLCIXCK.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Avatar", {
8
8
  enumerable: true,
9
- get: function () { return chunkYEOARJKR_cjs.Avatar; }
9
+ get: function () { return chunkTQLCIXCK_cjs.Avatar; }
10
10
  });
11
11
  //# sourceMappingURL=Avatar.cjs.map
12
12
  //# sourceMappingURL=Avatar.cjs.map
package/dist/Avatar.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Avatar } from './chunk-ZWP4LSS3.js';
1
+ export { Avatar } from './chunk-NS3C2ZSE.js';
2
2
  //# sourceMappingURL=Avatar.js.map
3
3
  //# sourceMappingURL=Avatar.js.map
package/dist/Button.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunkOPTTHURA_cjs = require('./chunk-OPTTHURA.cjs');
3
+ var chunkRSZNFKCQ_cjs = require('./chunk-RSZNFKCQ.cjs');
4
4
  require('./chunk-YVO7XO4W.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Button", {
9
9
  enumerable: true,
10
- get: function () { return chunkOPTTHURA_cjs.Button; }
10
+ get: function () { return chunkRSZNFKCQ_cjs.Button; }
11
11
  });
12
12
  Object.defineProperty(exports, "IconButton", {
13
13
  enumerable: true,
14
- get: function () { return chunkOPTTHURA_cjs.IconButton; }
14
+ get: function () { return chunkRSZNFKCQ_cjs.IconButton; }
15
15
  });
16
16
  //# sourceMappingURL=Button.cjs.map
17
17
  //# sourceMappingURL=Button.cjs.map
package/dist/Button.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Button, IconButton } from './chunk-77BVQNAQ.js';
1
+ export { Button, IconButton } from './chunk-5UOBYRYJ.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Button.js.map
4
4
  //# sourceMappingURL=Button.js.map
package/dist/Calendar.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkTZSWDH5T_cjs = require('./chunk-TZSWDH5T.cjs');
3
+ var chunk7JYI5THC_cjs = require('./chunk-7JYI5THC.cjs');
4
4
  require('./chunk-YVO7XO4W.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Calendar", {
9
9
  enumerable: true,
10
- get: function () { return chunkTZSWDH5T_cjs.Calendar; }
10
+ get: function () { return chunk7JYI5THC_cjs.Calendar; }
11
11
  });
12
12
  //# sourceMappingURL=Calendar.cjs.map
13
13
  //# sourceMappingURL=Calendar.cjs.map
package/dist/Calendar.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Calendar } from './chunk-H6FCIJOP.js';
1
+ export { Calendar } from './chunk-DBJIK4JE.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Calendar.js.map
4
4
  //# sourceMappingURL=Calendar.js.map
package/dist/Card.cjs CHANGED
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunkJKLQOB2F_cjs = require('./chunk-JKLQOB2F.cjs');
3
+ var chunkMUFMJPRT_cjs = require('./chunk-MUFMJPRT.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Card", {
8
8
  enumerable: true,
9
- get: function () { return chunkJKLQOB2F_cjs.Card; }
9
+ get: function () { return chunkMUFMJPRT_cjs.Card; }
10
10
  });
11
11
  Object.defineProperty(exports, "Panel", {
12
12
  enumerable: true,
13
- get: function () { return chunkJKLQOB2F_cjs.Panel; }
13
+ get: function () { return chunkMUFMJPRT_cjs.Panel; }
14
14
  });
15
15
  //# sourceMappingURL=Card.cjs.map
16
16
  //# sourceMappingURL=Card.cjs.map
package/dist/Card.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Card, Panel } from './chunk-4U4OY5RA.js';
1
+ export { Card, Panel } from './chunk-4SCDDSXY.js';
2
2
  //# sourceMappingURL=Card.js.map
3
3
  //# sourceMappingURL=Card.js.map
@@ -29,7 +29,7 @@
29
29
  display: flex;
30
30
  background: var(--bg);
31
31
  border-radius: var(--r-md);
32
- box-shadow: var(--neu-out-lg);
32
+ box-shadow: var(--neu-float);
33
33
  padding: 6px;
34
34
  animation: menuIn var(--dur) var(--ease);
35
35
  gap: 4px;
package/dist/Cascader.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkTWBJCFEJ_cjs = require('./chunk-TWBJCFEJ.cjs');
3
+ var chunkSVVB6POY_cjs = require('./chunk-SVVB6POY.cjs');
4
4
  require('./chunk-RZ2E3XEU.cjs');
5
5
  require('./chunk-YVO7XO4W.cjs');
6
6
 
@@ -8,7 +8,7 @@ require('./chunk-YVO7XO4W.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "Cascader", {
10
10
  enumerable: true,
11
- get: function () { return chunkTWBJCFEJ_cjs.Cascader; }
11
+ get: function () { return chunkSVVB6POY_cjs.Cascader; }
12
12
  });
13
13
  //# sourceMappingURL=Cascader.cjs.map
14
14
  //# sourceMappingURL=Cascader.cjs.map
package/dist/Cascader.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Cascader } from './chunk-OEHCA5IV.js';
1
+ export { Cascader } from './chunk-NGQDVJH3.js';
2
2
  import './chunk-V2DIQ3RH.js';
3
3
  import './chunk-GEYMWUW6.js';
4
4
  //# sourceMappingURL=Cascader.js.map
package/dist/Checkbox.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunkC5TGQ7CV_cjs = require('./chunk-C5TGQ7CV.cjs');
3
+ var chunkMFWOBALK_cjs = require('./chunk-MFWOBALK.cjs');
4
4
  require('./chunk-YVO7XO4W.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Checkbox", {
9
9
  enumerable: true,
10
- get: function () { return chunkC5TGQ7CV_cjs.Checkbox; }
10
+ get: function () { return chunkMFWOBALK_cjs.Checkbox; }
11
11
  });
12
12
  Object.defineProperty(exports, "RadioGroup", {
13
13
  enumerable: true,
14
- get: function () { return chunkC5TGQ7CV_cjs.RadioGroup; }
14
+ get: function () { return chunkMFWOBALK_cjs.RadioGroup; }
15
15
  });
16
16
  //# sourceMappingURL=Checkbox.cjs.map
17
17
  //# sourceMappingURL=Checkbox.cjs.map
package/dist/Checkbox.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Checkbox, RadioGroup } from './chunk-M6CGYGEO.js';
1
+ export { Checkbox, RadioGroup } from './chunk-Q2EXOT4B.js';
2
2
  import './chunk-GEYMWUW6.js';
3
3
  //# sourceMappingURL=Checkbox.js.map
4
4
  //# sourceMappingURL=Checkbox.js.map
@@ -77,7 +77,7 @@
77
77
  padding: 12px;
78
78
  background: var(--bg);
79
79
  border-radius: var(--r-md);
80
- box-shadow: var(--neu-out);
80
+ box-shadow: var(--neu-float);
81
81
  display: flex;
82
82
  flex-direction: column;
83
83
  gap: 10px;
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkQTGDYQOT_cjs = require('./chunk-QTGDYQOT.cjs');
3
+ var chunkLLNEDEST_cjs = require('./chunk-LLNEDEST.cjs');
4
4
  require('./chunk-RZ2E3XEU.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "ColorPicker", {
9
9
  enumerable: true,
10
- get: function () { return chunkQTGDYQOT_cjs.ColorPicker; }
10
+ get: function () { return chunkLLNEDEST_cjs.ColorPicker; }
11
11
  });
12
12
  //# sourceMappingURL=ColorPicker.cjs.map
13
13
  //# sourceMappingURL=ColorPicker.cjs.map
@@ -1,4 +1,4 @@
1
- export { ColorPicker } from './chunk-RPD2OIIP.js';
1
+ export { ColorPicker } from './chunk-I2HHC6QW.js';
2
2
  import './chunk-V2DIQ3RH.js';
3
3
  //# sourceMappingURL=ColorPicker.js.map
4
4
  //# sourceMappingURL=ColorPicker.js.map
@@ -0,0 +1,139 @@
1
+ /* ============ CommandPalette ============ */
2
+ .cmdp-overlay {
3
+ position: fixed;
4
+ inset: 0;
5
+ z-index: 4000;
6
+ background: color-mix(in oklch, var(--fg) 22%, transparent);
7
+ display: flex;
8
+ justify-content: center;
9
+ align-items: flex-start;
10
+ padding-top: 14vh;
11
+ animation: fadeIn 160ms var(--ease);
12
+ }
13
+ [data-theme="dark"] .cmdp-overlay { background: color-mix(in oklch, black 55%, transparent); }
14
+
15
+ .cmdp-panel {
16
+ width: min(560px, calc(100vw - 48px));
17
+ max-height: 60vh;
18
+ background: var(--bg);
19
+ border-radius: var(--r-lg);
20
+ box-shadow: var(--neu-float);
21
+ border: 1px solid var(--divider);
22
+ display: flex;
23
+ flex-direction: column;
24
+ overflow: hidden;
25
+ animation: cmdpIn 220ms var(--ease);
26
+ }
27
+ @keyframes cmdpIn {
28
+ from { opacity: 0; transform: translateY(-12px) scale(0.98); }
29
+ to { opacity: 1; transform: translateY(0) scale(1); }
30
+ }
31
+
32
+ .cmdp-search {
33
+ padding: 12px 12px 10px;
34
+ }
35
+
36
+ .cmdp-list {
37
+ overflow-y: auto;
38
+ padding: 6px;
39
+ flex: 1;
40
+ min-height: 60px;
41
+ }
42
+
43
+ .cmdp-group + .cmdp-group { margin-top: 4px; }
44
+ .cmdp-group-head {
45
+ font-size: 11px;
46
+ text-transform: uppercase;
47
+ letter-spacing: 0.06em;
48
+ color: var(--fg-subtle);
49
+ padding: 8px 10px 4px;
50
+ font-weight: 600;
51
+ }
52
+
53
+ .cmdp-item {
54
+ display: grid;
55
+ grid-template-columns: 20px 1fr auto;
56
+ align-items: center;
57
+ gap: 10px;
58
+ width: 100%;
59
+ padding: 9px 10px;
60
+ border: none;
61
+ background: transparent;
62
+ box-shadow: none;
63
+ color: var(--fg);
64
+ font: inherit;
65
+ font-size: 13px;
66
+ text-align: left;
67
+ border-radius: var(--r-sm);
68
+ cursor: pointer;
69
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
70
+ box-shadow var(--dur-fast) var(--ease);
71
+ }
72
+ .cmdp-item:disabled { color: var(--fg-subtle); cursor: not-allowed; }
73
+ .cmdp-item.active:not(:disabled) {
74
+ background: var(--bg);
75
+ color: var(--accent-ink);
76
+ box-shadow: var(--neu-in-sm);
77
+ }
78
+
79
+ .cmdp-icon {
80
+ display: inline-flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ color: var(--fg-muted);
84
+ }
85
+ .cmdp-item.active:not(:disabled) .cmdp-icon { color: inherit; }
86
+
87
+ .cmdp-labels { display: flex; flex-direction: column; min-width: 0; }
88
+ .cmdp-label {
89
+ overflow: hidden;
90
+ text-overflow: ellipsis;
91
+ white-space: nowrap;
92
+ }
93
+ .cmdp-desc {
94
+ font-size: 11.5px;
95
+ color: var(--fg-subtle);
96
+ overflow: hidden;
97
+ text-overflow: ellipsis;
98
+ white-space: nowrap;
99
+ }
100
+ .cmdp-item.active:not(:disabled) .cmdp-desc { color: inherit; opacity: 0.75; }
101
+
102
+ .cmdp-shortcut {
103
+ font-family: var(--font-mono);
104
+ font-size: 11px;
105
+ color: var(--fg-subtle);
106
+ }
107
+ .cmdp-item.active:not(:disabled) .cmdp-shortcut { color: inherit; opacity: 0.8; }
108
+
109
+ .cmdp-empty {
110
+ padding: 28px 16px;
111
+ text-align: center;
112
+ color: var(--fg-subtle);
113
+ font-size: 13px;
114
+ }
115
+
116
+ .cmdp-footer {
117
+ display: flex;
118
+ gap: 16px;
119
+ padding: 8px 14px;
120
+ border-top: 1px solid var(--divider);
121
+ background: var(--bg-sunken);
122
+ font-size: 11.5px;
123
+ color: var(--fg-subtle);
124
+ }
125
+ .cmdp-footer span { display: inline-flex; align-items: center; gap: 4px; }
126
+
127
+ .cmdp-kbd {
128
+ display: inline-grid;
129
+ place-items: center;
130
+ min-width: 18px;
131
+ height: 18px;
132
+ padding: 0 5px;
133
+ border-radius: 5px;
134
+ background: var(--bg);
135
+ box-shadow: var(--neu-flat);
136
+ font-family: var(--font-mono);
137
+ font-size: 10.5px;
138
+ color: var(--fg-muted);
139
+ }
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var chunkAGN3JSUH_cjs = require('./chunk-AGN3JSUH.cjs');
4
+ require('./chunk-MKR4X57L.cjs');
5
+ require('./chunk-YVO7XO4W.cjs');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "CommandPalette", {
10
+ enumerable: true,
11
+ get: function () { return chunkAGN3JSUH_cjs.CommandPalette; }
12
+ });
13
+ //# sourceMappingURL=CommandPalette.cjs.map
14
+ //# sourceMappingURL=CommandPalette.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"CommandPalette.cjs"}
@@ -0,0 +1,65 @@
1
+ import * as React from 'react';
2
+
3
+ interface CommandItem {
4
+ key: string;
5
+ /** Displayed label; also matched against the search query by default. */
6
+ label: string;
7
+ /** Optional secondary line — e.g. "Open recent". */
8
+ description?: React.ReactNode;
9
+ /** Leading icon. */
10
+ icon?: React.ReactNode;
11
+ /** Right-aligned shortcut hint, e.g. `"⌘P"`. */
12
+ shortcut?: React.ReactNode;
13
+ /** Extra search terms beyond `label`. */
14
+ keywords?: string[];
15
+ /** Group heading. Items sharing a `group` appear under one heading. */
16
+ group?: string;
17
+ /** Ignored by default filter — still shown. */
18
+ disabled?: boolean;
19
+ onSelect?: () => void;
20
+ }
21
+ interface CommandPaletteProps {
22
+ open: boolean;
23
+ onOpenChange?: (open: boolean) => void;
24
+ items: CommandItem[];
25
+ placeholder?: string;
26
+ /** Custom matcher. Return true to keep the item. */
27
+ filter?: (item: CommandItem, query: string) => boolean;
28
+ /** Shown when no item matches the query. */
29
+ emptyText?: React.ReactNode;
30
+ /** Reset the query to empty whenever the palette opens. Default true. */
31
+ resetOnOpen?: boolean;
32
+ /** Footer node. Pass `null` to hide. */
33
+ footer?: React.ReactNode;
34
+ className?: string;
35
+ }
36
+ /**
37
+ * `CommandPalette` — ⌘K-style action launcher. Search + grouped items +
38
+ * keyboard nav. Rendered into `document.body`.
39
+ *
40
+ * The parent controls `open` via state — wire `Cmd/Ctrl+K` to toggle.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const [open, setOpen] = React.useState(false);
45
+ * React.useEffect(() => {
46
+ * const h = (e: KeyboardEvent) => {
47
+ * if ((e.metaKey || e.ctrlKey) && e.key === "k") { e.preventDefault(); setOpen(o => !o); }
48
+ * };
49
+ * window.addEventListener("keydown", h);
50
+ * return () => window.removeEventListener("keydown", h);
51
+ * }, []);
52
+ *
53
+ * <CommandPalette
54
+ * open={open}
55
+ * onOpenChange={setOpen}
56
+ * items={[
57
+ * { key: "new", label: "新建文件", icon: <Icon name="plus" size={14} />, group: "文件", shortcut: "⌘N", onSelect: () => {} },
58
+ * ...
59
+ * ]}
60
+ * />
61
+ * ```
62
+ */
63
+ declare const CommandPalette: React.FC<CommandPaletteProps>;
64
+
65
+ export { type CommandItem, CommandPalette, type CommandPaletteProps };
@@ -0,0 +1,65 @@
1
+ import * as React from 'react';
2
+
3
+ interface CommandItem {
4
+ key: string;
5
+ /** Displayed label; also matched against the search query by default. */
6
+ label: string;
7
+ /** Optional secondary line — e.g. "Open recent". */
8
+ description?: React.ReactNode;
9
+ /** Leading icon. */
10
+ icon?: React.ReactNode;
11
+ /** Right-aligned shortcut hint, e.g. `"⌘P"`. */
12
+ shortcut?: React.ReactNode;
13
+ /** Extra search terms beyond `label`. */
14
+ keywords?: string[];
15
+ /** Group heading. Items sharing a `group` appear under one heading. */
16
+ group?: string;
17
+ /** Ignored by default filter — still shown. */
18
+ disabled?: boolean;
19
+ onSelect?: () => void;
20
+ }
21
+ interface CommandPaletteProps {
22
+ open: boolean;
23
+ onOpenChange?: (open: boolean) => void;
24
+ items: CommandItem[];
25
+ placeholder?: string;
26
+ /** Custom matcher. Return true to keep the item. */
27
+ filter?: (item: CommandItem, query: string) => boolean;
28
+ /** Shown when no item matches the query. */
29
+ emptyText?: React.ReactNode;
30
+ /** Reset the query to empty whenever the palette opens. Default true. */
31
+ resetOnOpen?: boolean;
32
+ /** Footer node. Pass `null` to hide. */
33
+ footer?: React.ReactNode;
34
+ className?: string;
35
+ }
36
+ /**
37
+ * `CommandPalette` — ⌘K-style action launcher. Search + grouped items +
38
+ * keyboard nav. Rendered into `document.body`.
39
+ *
40
+ * The parent controls `open` via state — wire `Cmd/Ctrl+K` to toggle.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const [open, setOpen] = React.useState(false);
45
+ * React.useEffect(() => {
46
+ * const h = (e: KeyboardEvent) => {
47
+ * if ((e.metaKey || e.ctrlKey) && e.key === "k") { e.preventDefault(); setOpen(o => !o); }
48
+ * };
49
+ * window.addEventListener("keydown", h);
50
+ * return () => window.removeEventListener("keydown", h);
51
+ * }, []);
52
+ *
53
+ * <CommandPalette
54
+ * open={open}
55
+ * onOpenChange={setOpen}
56
+ * items={[
57
+ * { key: "new", label: "新建文件", icon: <Icon name="plus" size={14} />, group: "文件", shortcut: "⌘N", onSelect: () => {} },
58
+ * ...
59
+ * ]}
60
+ * />
61
+ * ```
62
+ */
63
+ declare const CommandPalette: React.FC<CommandPaletteProps>;
64
+
65
+ export { type CommandItem, CommandPalette, type CommandPaletteProps };
@@ -0,0 +1,5 @@
1
+ export { CommandPalette } from './chunk-XDFZRV3V.js';
2
+ import './chunk-WBMF7WM3.js';
3
+ import './chunk-GEYMWUW6.js';
4
+ //# sourceMappingURL=CommandPalette.js.map
5
+ //# sourceMappingURL=CommandPalette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"CommandPalette.js"}
@@ -0,0 +1,76 @@
1
+ /* ============ ContextMenu ============ */
2
+ .context-menu {
3
+ z-index: 5000;
4
+ padding: 6px;
5
+ background: var(--bg);
6
+ border-radius: var(--r-md);
7
+ box-shadow: var(--neu-float);
8
+ border: 1px solid var(--divider);
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 1px;
12
+ animation: menuIn 140ms var(--ease);
13
+ max-height: calc(100vh - 24px);
14
+ overflow-y: auto;
15
+ }
16
+
17
+ .context-menu-item {
18
+ display: grid;
19
+ grid-template-columns: 18px 1fr auto;
20
+ align-items: center;
21
+ gap: 8px;
22
+ padding: 6px 10px;
23
+ min-height: 28px;
24
+ border: none;
25
+ background: transparent;
26
+ box-shadow: none;
27
+ font: inherit;
28
+ font-size: 13px;
29
+ color: var(--fg);
30
+ text-align: left;
31
+ border-radius: var(--r-sm);
32
+ cursor: pointer;
33
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
34
+ box-shadow var(--dur-fast) var(--ease);
35
+ }
36
+ .context-menu-item:disabled { color: var(--fg-subtle); cursor: not-allowed; }
37
+ .context-menu-item.active:not(:disabled) {
38
+ background: var(--bg);
39
+ color: var(--accent-ink);
40
+ box-shadow: var(--neu-in-sm);
41
+ }
42
+ .context-menu-item.danger { color: var(--danger); }
43
+ .context-menu-item.danger.active:not(:disabled) {
44
+ background: var(--bg);
45
+ color: var(--danger);
46
+ box-shadow: var(--neu-in-sm);
47
+ }
48
+
49
+ .context-menu-icon {
50
+ display: inline-flex;
51
+ justify-content: center;
52
+ align-items: center;
53
+ color: var(--fg-muted);
54
+ }
55
+ .context-menu-item.active:not(:disabled) .context-menu-icon { color: inherit; }
56
+ .context-menu-item.danger .context-menu-icon { color: var(--danger); }
57
+
58
+ .context-menu-label {
59
+ overflow: hidden;
60
+ text-overflow: ellipsis;
61
+ white-space: nowrap;
62
+ }
63
+
64
+ .context-menu-shortcut {
65
+ font-family: var(--font-mono);
66
+ font-size: 11px;
67
+ color: var(--fg-subtle);
68
+ padding-left: 12px;
69
+ }
70
+ .context-menu-item.active:not(:disabled) .context-menu-shortcut { color: inherit; opacity: 0.8; }
71
+
72
+ .context-menu-divider {
73
+ height: 1px;
74
+ background: var(--divider);
75
+ margin: 4px 4px;
76
+ }