@fangxinyan/lumina 0.6.2 → 0.6.4

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 (284) hide show
  1. package/README.md +2 -1
  2. package/dist/{Alert-JJ7GB3UU.css → Alert-HVPI6L4V.css} +9 -2
  3. package/dist/Alert.cjs +3 -3
  4. package/dist/Alert.d.cts +3 -2
  5. package/dist/Alert.d.ts +3 -2
  6. package/dist/Alert.js +2 -2
  7. package/dist/{AppShell-RCALXUCZ.css → AppShell-FZCD4C56.css} +4 -4
  8. package/dist/AppShell.cjs +5 -5
  9. package/dist/AppShell.js +1 -1
  10. package/dist/{AutoComplete-P5KZMZO5.css → AutoComplete-4YZBMW4E.css} +2 -2
  11. package/dist/AutoComplete.cjs +5 -5
  12. package/dist/AutoComplete.js +4 -4
  13. package/dist/{Avatar-R5A4AFKZ.css → Avatar-TNPOHVY5.css} +1 -1
  14. package/dist/Avatar.cjs +2 -2
  15. package/dist/Avatar.js +1 -1
  16. package/dist/Badge.cjs +2 -2
  17. package/dist/Badge.d.cts +1 -0
  18. package/dist/Badge.d.ts +1 -0
  19. package/dist/Badge.js +1 -1
  20. package/dist/Button-TUMZUQLI.css +118 -0
  21. package/dist/Button.cjs +3 -3
  22. package/dist/Button.d.cts +6 -5
  23. package/dist/Button.d.ts +6 -5
  24. package/dist/Button.js +2 -2
  25. package/dist/{Calendar-LHZELUDL.css → Calendar-RUTPKREW.css} +4 -4
  26. package/dist/Calendar.cjs +3 -3
  27. package/dist/Calendar.js +2 -2
  28. package/dist/{Card-6RMVIHWX.css → Card-MA6SV7D5.css} +6 -6
  29. package/dist/Card.cjs +2 -2
  30. package/dist/Card.js +1 -1
  31. package/dist/{Cascader-C2DFSMKJ.css → Cascader-ANEQUPMI.css} +21 -8
  32. package/dist/Cascader.cjs +5 -5
  33. package/dist/Cascader.d.cts +4 -2
  34. package/dist/Cascader.d.ts +4 -2
  35. package/dist/Cascader.js +4 -4
  36. package/dist/{Checkbox-U5EUDSYS.css → Checkbox-EDNPZRIP.css} +3 -3
  37. package/dist/Checkbox.cjs +3 -3
  38. package/dist/Checkbox.js +2 -2
  39. package/dist/{Collapse-66U5YJFY.css → Collapse-UNBHEPYP.css} +2 -2
  40. package/dist/Collapse.cjs +3 -3
  41. package/dist/Collapse.js +2 -2
  42. package/dist/{ColorPicker-SDDQGHCM.css → ColorPicker-LPG6QPYF.css} +7 -7
  43. package/dist/ColorPicker.cjs +2 -2
  44. package/dist/ColorPicker.js +1 -1
  45. package/dist/{CommandPalette-T45DBMPY.css → CommandPalette-RTKWNH2D.css} +3 -3
  46. package/dist/CommandPalette.cjs +5 -5
  47. package/dist/CommandPalette.js +4 -4
  48. package/dist/{ContextMenu-FKW6CQW4.css → ContextMenu-WRR2SSWL.css} +3 -3
  49. package/dist/ContextMenu.cjs +2 -2
  50. package/dist/ContextMenu.js +1 -1
  51. package/dist/{Divider-OEE4Q2KS.css → Divider-RPQCVH3J.css} +2 -2
  52. package/dist/Divider.cjs +2 -2
  53. package/dist/Divider.js +1 -1
  54. package/dist/{Drawer-IPGB4CXH.css → Drawer-7N3URAJ6.css} +8 -5
  55. package/dist/Drawer.cjs +3 -3
  56. package/dist/Drawer.js +2 -2
  57. package/dist/{Empty-DC2LPORC.css → Empty-CZTRZMZQ.css} +1 -1
  58. package/dist/Empty.cjs +2 -2
  59. package/dist/Empty.js +1 -1
  60. package/dist/{Form-5GRVZNDO.css → Form-NGCQWTMZ.css} +1 -1
  61. package/dist/Form.cjs +4 -4
  62. package/dist/Form.js +1 -1
  63. package/dist/Icon.cjs +55 -47
  64. package/dist/Icon.d.cts +9 -1
  65. package/dist/Icon.d.ts +9 -1
  66. package/dist/Icon.js +1 -1
  67. package/dist/{Image-4MN34O6P.css → Image-SGSRTHQX.css} +81 -3
  68. package/dist/Image.cjs +12 -4
  69. package/dist/Image.d.cts +79 -6
  70. package/dist/Image.d.ts +79 -6
  71. package/dist/Image.js +2 -2
  72. package/dist/{Input-3G4ONWNU.css → Input-7GDPGP3E.css} +22 -12
  73. package/dist/Input.cjs +5 -5
  74. package/dist/Input.d.cts +4 -3
  75. package/dist/Input.d.ts +4 -3
  76. package/dist/Input.js +3 -3
  77. package/dist/InputNumber.cjs +5 -5
  78. package/dist/InputNumber.js +4 -4
  79. package/dist/{List-W5BW4D2P.css → List-LSMU5QAC.css} +3 -3
  80. package/dist/List.cjs +2 -2
  81. package/dist/List.js +1 -1
  82. package/dist/{Message-2MZ3LFPU.css → Message-H222YGR6.css} +1 -1
  83. package/dist/Message.cjs +6 -6
  84. package/dist/Message.js +2 -2
  85. package/dist/{Modal-2QNDW4SO.css → Modal-MCFDYVUQ.css} +3 -3
  86. package/dist/Modal.cjs +4 -4
  87. package/dist/Modal.d.cts +1 -0
  88. package/dist/Modal.d.ts +1 -0
  89. package/dist/Modal.js +3 -3
  90. package/dist/{Pagination-YIRYJUXP.css → Pagination-YSZSNFHG.css} +5 -5
  91. package/dist/Pagination.cjs +7 -7
  92. package/dist/Pagination.js +6 -6
  93. package/dist/{Popover-DVGQGWX6.css → Popover-Y3LDCJPW.css} +1 -1
  94. package/dist/Popover.cjs +2 -2
  95. package/dist/Popover.js +1 -1
  96. package/dist/{Progress-CHV7DN6Y.css → Progress-CZNXCYGW.css} +1 -1
  97. package/dist/Progress.cjs +2 -2
  98. package/dist/Progress.js +1 -1
  99. package/dist/{Radio-GVFDPAZM.css → Radio-IQKASYDF.css} +4 -4
  100. package/dist/Radio.cjs +3 -3
  101. package/dist/Radio.js +1 -1
  102. package/dist/{Select-JVBQAZBG.css → Select-YZ2NUJSX.css} +44 -19
  103. package/dist/Select.cjs +6 -6
  104. package/dist/Select.d.cts +4 -3
  105. package/dist/Select.d.ts +4 -3
  106. package/dist/Select.js +5 -5
  107. package/dist/Skeleton.cjs +2 -2
  108. package/dist/Skeleton.js +1 -1
  109. package/dist/{Slider-3JKA5EW6.css → Slider-UM2IZZBH.css} +7 -7
  110. package/dist/Slider.cjs +2 -2
  111. package/dist/Slider.js +1 -1
  112. package/dist/{Spin-3GJNMSIH.css → Spin-GONGPV4Q.css} +1 -1
  113. package/dist/Spin.cjs +2 -2
  114. package/dist/Spin.js +1 -1
  115. package/dist/Splitter.cjs +2 -2
  116. package/dist/Splitter.js +1 -1
  117. package/dist/{StatusBar-CDS2GPSI.css → StatusBar-FJKEEPXU.css} +3 -7
  118. package/dist/StatusBar.cjs +3 -3
  119. package/dist/StatusBar.js +1 -1
  120. package/dist/Surface-UDDN3DGL.css +42 -0
  121. package/dist/Surface.cjs +16 -0
  122. package/dist/Surface.d.cts +60 -0
  123. package/dist/Surface.d.ts +60 -0
  124. package/dist/Surface.js +3 -0
  125. package/dist/{Switch-36KJNDXM.css → Switch-COAQIOMH.css} +8 -5
  126. package/dist/Switch.cjs +2 -2
  127. package/dist/Switch.js +1 -1
  128. package/dist/{Table-ATJJQLKU.css → Table-IYJTPY6J.css} +16 -16
  129. package/dist/Table.cjs +9 -9
  130. package/dist/Table.js +8 -8
  131. package/dist/{TablePro-3XVHYLSL.css → TablePro-JRSBPXB5.css} +1 -1
  132. package/dist/TablePro.cjs +10 -10
  133. package/dist/TablePro.js +9 -9
  134. package/dist/{Tabs-BLSNI2T5.css → Tabs-X5U5PCPV.css} +2 -2
  135. package/dist/Tabs.cjs +2 -2
  136. package/dist/Tabs.js +1 -1
  137. package/dist/{Tag-LB3OOJAO.css → Tag-G2XWAL7A.css} +15 -2
  138. package/dist/Tag.cjs +3 -3
  139. package/dist/Tag.d.cts +4 -3
  140. package/dist/Tag.d.ts +4 -3
  141. package/dist/Tag.js +2 -2
  142. package/dist/{Textarea-YNET7IBH.css → Textarea-YHWKHIFE.css} +3 -3
  143. package/dist/Textarea.cjs +4 -4
  144. package/dist/Textarea.js +2 -2
  145. package/dist/Theme.cjs +14 -10
  146. package/dist/Theme.d.cts +34 -7
  147. package/dist/Theme.d.ts +34 -7
  148. package/dist/Theme.js +1 -1
  149. package/dist/ThemePanel-76LB3YA5.css +509 -0
  150. package/dist/ThemePanel.cjs +29 -0
  151. package/dist/ThemePanel.d.cts +80 -0
  152. package/dist/ThemePanel.d.ts +80 -0
  153. package/dist/ThemePanel.js +12 -0
  154. package/dist/{Timeline-3ZHOHPXT.css → Timeline-ZIM7QFQC.css} +1 -1
  155. package/dist/Timeline.cjs +3 -3
  156. package/dist/Timeline.js +2 -2
  157. package/dist/{Tooltip-DMKUPC24.css → Tooltip-WI23DSRQ.css} +1 -1
  158. package/dist/Tooltip.cjs +2 -2
  159. package/dist/Tooltip.js +1 -1
  160. package/dist/{Typography-NKPWTJCV.css → Typography-GQNIJ4XD.css} +5 -5
  161. package/dist/Typography.cjs +7 -7
  162. package/dist/Typography.d.cts +1 -0
  163. package/dist/Typography.d.ts +1 -0
  164. package/dist/Typography.js +2 -2
  165. package/dist/chunk-2NT5QKEX.js +243 -0
  166. package/dist/{chunk-6BWELOCT.js → chunk-2SCXQ7QS.js} +2 -2
  167. package/dist/{chunk-5WAXZJG5.cjs → chunk-2ZADGBUN.cjs} +6 -6
  168. package/dist/{chunk-7NGMQIST.js → chunk-2ZFJTMEF.js} +4 -4
  169. package/dist/{chunk-UMDGS4BP.js → chunk-3YP7CBJT.js} +5 -5
  170. package/dist/{chunk-UUHFKIWP.cjs → chunk-4UKM4KAC.cjs} +2 -2
  171. package/dist/{chunk-WGZ2KJTZ.js → chunk-56PHETWO.js} +3 -3
  172. package/dist/{chunk-MQV2XN4B.cjs → chunk-5JPAUQ5H.cjs} +7 -7
  173. package/dist/{chunk-OQBDU5I2.cjs → chunk-5NFSDFBB.cjs} +4 -4
  174. package/dist/{chunk-SKMP2A5O.cjs → chunk-66GXZQKL.cjs} +4 -4
  175. package/dist/{chunk-TZJH5HBT.cjs → chunk-66T76GII.cjs} +6 -6
  176. package/dist/chunk-6EOSMK34.cjs +194 -0
  177. package/dist/{chunk-WNM5RVXR.cjs → chunk-6GQPF3EI.cjs} +2 -2
  178. package/dist/{chunk-TJII7BQ2.cjs → chunk-6LARTGLP.cjs} +11 -1
  179. package/dist/chunk-6SPMHY54.js +191 -0
  180. package/dist/{chunk-YLIQ37KY.cjs → chunk-6XVLERA3.cjs} +2 -2
  181. package/dist/{chunk-WKKSAGYH.js → chunk-7D76MI37.js} +8 -8
  182. package/dist/chunk-7NZ2A4MA.js +495 -0
  183. package/dist/{chunk-KLEKKZ73.js → chunk-7ZNGHWVS.js} +1 -1
  184. package/dist/{chunk-4WTU5P3O.cjs → chunk-ACQSRMLF.cjs} +5 -5
  185. package/dist/{chunk-FFZ6OMZI.js → chunk-AJH2O4WC.js} +3 -3
  186. package/dist/{chunk-CXWEOAVU.js → chunk-BCFCSVGJ.js} +3 -3
  187. package/dist/{chunk-NTS5L4NQ.cjs → chunk-BJ6WUVEG.cjs} +4 -4
  188. package/dist/{chunk-S3VXH5L4.cjs → chunk-C24W6PTJ.cjs} +2 -2
  189. package/dist/{chunk-GMN74OEY.cjs → chunk-CBKJXKVI.cjs} +2 -2
  190. package/dist/{chunk-33NCTOEB.js → chunk-CEZ2DR4R.js} +3 -3
  191. package/dist/{chunk-JD7A6VM3.js → chunk-CNGKJYGZ.js} +6 -6
  192. package/dist/{chunk-TEG7NJHS.cjs → chunk-D5PCIVID.cjs} +4 -4
  193. package/dist/{chunk-K2KYM7LW.cjs → chunk-D64IPDUE.cjs} +4 -4
  194. package/dist/chunk-DYHNOYRC.cjs +271 -0
  195. package/dist/{chunk-CUXV6QNN.cjs → chunk-DYSGXQUK.cjs} +7 -7
  196. package/dist/{chunk-3YJU3D5S.cjs → chunk-F3LHLYX6.cjs} +2 -2
  197. package/dist/{chunk-HPFQXYKG.cjs → chunk-GBKUGKIY.cjs} +11 -11
  198. package/dist/{chunk-MUXP7ASL.js → chunk-GUZ2DNDC.js} +3 -3
  199. package/dist/{chunk-K6F25JXT.js → chunk-GZCU6HXD.js} +2 -2
  200. package/dist/{chunk-USQ43DJ5.js → chunk-HFUHQUPQ.js} +2 -2
  201. package/dist/{chunk-7JN6FJ55.js → chunk-HU7T64Y3.js} +2 -2
  202. package/dist/{chunk-OYMJVU66.cjs → chunk-IDJCFYPP.cjs} +16 -16
  203. package/dist/{chunk-KD4YYIIO.cjs → chunk-IHK2FRTS.cjs} +2 -2
  204. package/dist/{chunk-Q5SZIU7Z.cjs → chunk-JFQ53MO4.cjs} +1 -1
  205. package/dist/{chunk-7PQJCLIR.js → chunk-KMG7OMOS.js} +2 -2
  206. package/dist/{chunk-MT7UWY6T.cjs → chunk-L27C5O4W.cjs} +4 -4
  207. package/dist/chunk-LFTCK2VM.cjs +1194 -0
  208. package/dist/{chunk-EJBHR2P5.js → chunk-LI4XJTEA.js} +3 -3
  209. package/dist/{chunk-45VJGBGN.js → chunk-LQLOOUS3.js} +2 -2
  210. package/dist/{chunk-PL6DRFUO.cjs → chunk-MOMLQP7B.cjs} +2 -2
  211. package/dist/{chunk-OF7JIYBY.cjs → chunk-MYHBC3HA.cjs} +2 -2
  212. package/dist/{chunk-LKK2AA7W.js → chunk-MYRLCN6V.js} +2 -2
  213. package/dist/{chunk-6ACKL3WH.cjs → chunk-N2BTMKF2.cjs} +5 -5
  214. package/dist/chunk-N2COYOXE.cjs +526 -0
  215. package/dist/{chunk-2TL37AP5.cjs → chunk-N3OLFKV5.cjs} +1 -1
  216. package/dist/{chunk-5JSDQ6QQ.cjs → chunk-NDO22RER.cjs} +2 -2
  217. package/dist/{chunk-XD3JGL5O.js → chunk-NE7IUGMK.js} +3 -3
  218. package/dist/{chunk-F6RYCBQG.js → chunk-NFXHIO3G.js} +1 -1
  219. package/dist/chunk-NJCHFXGC.js +1170 -0
  220. package/dist/chunk-NT6CJYI3.cjs +129 -0
  221. package/dist/chunk-O43DOE7V.js +106 -0
  222. package/dist/{chunk-GNEZD7KE.cjs → chunk-O4BOBOYV.cjs} +2 -2
  223. package/dist/{chunk-3AS5B7MQ.cjs → chunk-OGPDCBPD.cjs} +12 -12
  224. package/dist/{chunk-6YQTMI55.js → chunk-OHFZ7L4T.js} +2 -2
  225. package/dist/{chunk-CEJ7VBR6.js → chunk-OHIFKN4E.js} +4 -4
  226. package/dist/{chunk-46VXFTEC.js → chunk-OQU3TJCF.js} +3 -3
  227. package/dist/{chunk-5TKC6IEN.js → chunk-PEJLXJQD.js} +1 -1
  228. package/dist/{chunk-HWFM4MAT.js → chunk-PKHITACT.js} +2 -2
  229. package/dist/{chunk-CHMCL7AV.js → chunk-PNZJFLMY.js} +3 -3
  230. package/dist/{chunk-XRR3CYQL.js → chunk-QP7RXZES.js} +2 -2
  231. package/dist/{chunk-QGHYQCF3.cjs → chunk-QY76WTO5.cjs} +9 -9
  232. package/dist/{chunk-EIY7KEJ3.cjs → chunk-R74TZKJS.cjs} +4 -4
  233. package/dist/{chunk-GNEZQMKH.js → chunk-REMJWNAT.js} +5 -5
  234. package/dist/{chunk-SWBWZIL4.cjs → chunk-S6OKX4H7.cjs} +2 -2
  235. package/dist/{chunk-EC4WGEAJ.js → chunk-SABWUELE.js} +2 -2
  236. package/dist/{chunk-QKQHZIF3.cjs → chunk-SG42F5VB.cjs} +2 -2
  237. package/dist/{chunk-5C2AI2SD.js → chunk-SQIWPU6V.js} +2 -2
  238. package/dist/{chunk-ZIP7F4UF.cjs → chunk-SYWTT5TY.cjs} +5 -5
  239. package/dist/{chunk-OBEKX4VR.js → chunk-TVUBGXWA.js} +2 -2
  240. package/dist/{chunk-7PNJI5UE.cjs → chunk-U2H4DRMV.cjs} +2 -2
  241. package/dist/{chunk-6LZ54NPO.cjs → chunk-VAXWWJJP.cjs} +34 -24
  242. package/dist/{chunk-DQTSTJ6O.js → chunk-VNNQYJLT.js} +4 -4
  243. package/dist/{chunk-KGSADAOD.cjs → chunk-VSUMJX6Z.cjs} +2 -2
  244. package/dist/{chunk-ON4DEDMI.js → chunk-W5CJC7S7.js} +3 -3
  245. package/dist/{chunk-AXZ7ELMA.js → chunk-WEJKY3DF.js} +2 -2
  246. package/dist/{chunk-EQEJTN3V.js → chunk-WXWFMWWF.js} +3 -3
  247. package/dist/{chunk-TEEFR2FD.js → chunk-XHQGMMH7.js} +2 -2
  248. package/dist/{chunk-XTIN5545.js → chunk-XVP7IKLZ.js} +32 -22
  249. package/dist/{chunk-ELNT3CFO.js → chunk-Y5F7ZTBH.js} +2 -2
  250. package/dist/{chunk-QCILPZWP.js → chunk-YJEXAO2I.js} +2 -2
  251. package/dist/{chunk-7ABFUIOB.cjs → chunk-YNCDTKAE.cjs} +2 -2
  252. package/dist/{chunk-35ZGBAA3.cjs → chunk-YSCIMHOI.cjs} +6 -6
  253. package/dist/{chunk-AWXCSX6J.js → chunk-YSXD344H.js} +5 -5
  254. package/dist/{chunk-OF3SGLZY.js → chunk-YT5NLCRC.js} +10 -2
  255. package/dist/{chunk-HZSIUOCN.cjs → chunk-YUKXNWVE.cjs} +1 -1
  256. package/dist/{chunk-65FIH5A3.js → chunk-YVTLHTG6.js} +2 -2
  257. package/dist/{chunk-GENABQYA.cjs → chunk-Z4PZ2ZHI.cjs} +2 -2
  258. package/dist/{chunk-FBVVRTX2.cjs → chunk-ZPKHGKVL.cjs} +4 -4
  259. package/dist/{chunk-FJNWUELL.js → chunk-ZPP7LTHP.js} +3 -3
  260. package/dist/{chunk-IZOHYJUQ.cjs → chunk-ZWCDB5PP.cjs} +2 -2
  261. package/dist/index.cjs +226 -183
  262. package/dist/index.d.cts +7 -5
  263. package/dist/index.d.ts +7 -5
  264. package/dist/index.js +49 -46
  265. package/dist/styles.css +873 -200
  266. package/dist/{tokens-BIIUTPKN.css → tokens-EF34LSWI.css} +42 -17
  267. package/dist/tokens.css +42 -17
  268. package/docs/llms/alert.md +4 -3
  269. package/docs/llms/button.md +4 -3
  270. package/docs/llms/cascader.md +3 -0
  271. package/docs/llms/image.md +72 -1
  272. package/docs/llms/input.md +3 -2
  273. package/docs/llms/select.md +2 -2
  274. package/docs/llms/surface.md +90 -0
  275. package/docs/llms/tag.md +3 -2
  276. package/docs/llms/theme.md +65 -6
  277. package/docs/llms/themepanel.md +128 -0
  278. package/docs/llms.md +6 -4
  279. package/package.json +16 -1
  280. package/dist/Button-SDQD25AG.css +0 -98
  281. package/dist/chunk-B2KEZQ6S.cjs +0 -116
  282. package/dist/chunk-NN25YMOL.js +0 -251
  283. package/dist/chunk-PH3YECMF.js +0 -90
  284. package/dist/chunk-RF2EY5JS.cjs +0 -281
@@ -14,11 +14,11 @@
14
14
  border: none;
15
15
  border-radius: var(--r-md);
16
16
  background: var(--bg);
17
- box-shadow: var(--neu-out-sm);
17
+ box-shadow: var(--neu-shadow-control);
18
18
  display: inline-flex;
19
19
  align-items: center;
20
20
  gap: 8px;
21
- font-size: 13px;
21
+ font-size: var(--fs-md);
22
22
  font-family: inherit;
23
23
  color: var(--fg);
24
24
  cursor: pointer;
@@ -33,21 +33,46 @@
33
33
  flex: 1;
34
34
  min-width: 0;
35
35
  }
36
- .select-value > span {
36
+ .select-value-label {
37
37
  white-space: nowrap;
38
38
  overflow: hidden;
39
39
  text-overflow: ellipsis;
40
40
  }
41
+ .select-icon,
42
+ .menu-item-icon {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ line-height: 0;
47
+ flex-shrink: 0;
48
+ }
49
+ .select-icon img,
50
+ .menu-item-icon img {
51
+ display: block;
52
+ width: 16px;
53
+ height: 16px;
54
+ object-fit: contain;
55
+ }
56
+ .select.sm .select-icon img,
57
+ .select.sm .menu-item-icon img {
58
+ width: 14px;
59
+ height: 14px;
60
+ }
61
+ .select.lg .select-icon img,
62
+ .select.lg .menu-item-icon img {
63
+ width: 18px;
64
+ height: 18px;
65
+ }
41
66
  .select.invalid .select-trigger {
42
- box-shadow: var(--neu-out-sm), 0 0 0 2px color-mix(in oklch, var(--danger) 30%, transparent);
67
+ box-shadow: var(--neu-shadow-control), 0 0 0 2px color-mix(in oklch, var(--danger) 30%, transparent);
43
68
  }
44
69
  .select.invalid.open .select-trigger {
45
- box-shadow: var(--neu-in-sm), 0 0 0 2px color-mix(in oklch, var(--danger) 30%, transparent);
70
+ box-shadow: var(--neu-shadow-inset), 0 0 0 2px color-mix(in oklch, var(--danger) 30%, transparent);
46
71
  }
47
- .select.sm .select-trigger { height: 30px; padding: 0 32px 0 12px; font-size: 12px; border-radius: var(--r-sm); }
48
- .select.lg .select-trigger { height: 48px; padding: 0 36px 0 18px; font-size: 14px; border-radius: var(--r-lg); }
72
+ .select.sm .select-trigger { height: var(--ctrl-h-sm); padding: 0 32px 0 var(--ctrl-pad-x-sm); font-size: var(--fs-sm); border-radius: var(--r-sm); }
73
+ .select.lg .select-trigger { height: var(--field-h-lg); padding: 0 36px 0 var(--ctrl-pad-x); font-size: var(--fs-lg); border-radius: var(--r-lg); }
49
74
  .select-trigger:hover { color: var(--accent-ink); }
50
- .select.open .select-trigger { box-shadow: var(--neu-in-sm); color: var(--accent-ink); }
75
+ .select.open .select-trigger { box-shadow: var(--neu-shadow-inset); color: var(--accent-ink); }
51
76
  .select-trigger .placeholder { color: var(--fg-subtle); }
52
77
  .select-caret {
53
78
  position: absolute;
@@ -96,7 +121,7 @@
96
121
  height: 20px;
97
122
  border-radius: 999px;
98
123
  background: var(--bg);
99
- box-shadow: var(--neu-out-sm);
124
+ box-shadow: var(--neu-shadow-control);
100
125
  display: inline-grid;
101
126
  place-items: center;
102
127
  cursor: pointer;
@@ -106,7 +131,7 @@
106
131
  z-index: 1;
107
132
  }
108
133
  .select:hover .select-clear { opacity: 1; }
109
- .select-clear:hover { color: var(--accent-ink); box-shadow: var(--neu-in-sm); }
134
+ .select-clear:hover { color: var(--accent-ink); box-shadow: var(--neu-shadow-inset); }
110
135
 
111
136
  /* Multi-select menu: leading checkbox per item */
112
137
  .menu-check {
@@ -114,7 +139,7 @@
114
139
  height: 16px;
115
140
  border-radius: 5px;
116
141
  background: var(--bg);
117
- box-shadow: var(--neu-in-sm);
142
+ box-shadow: var(--neu-shadow-inset);
118
143
  display: inline-grid;
119
144
  place-items: center;
120
145
  flex-shrink: 0;
@@ -123,7 +148,7 @@
123
148
  }
124
149
  .menu-check.on {
125
150
  background: var(--accent);
126
- box-shadow: var(--neu-out-sm), 0 1px 4px var(--accent-glow);
151
+ box-shadow: var(--neu-shadow-control), 0 1px 4px var(--accent-glow);
127
152
  }
128
153
 
129
154
  /* Menu search — flush with menu, single subtle separator (no nested frame) */
@@ -143,7 +168,7 @@
143
168
  justify-content: center;
144
169
  gap: 10px;
145
170
  padding: 26px 12px;
146
- font-size: 12px;
171
+ font-size: var(--fs-sm);
147
172
  color: var(--fg-muted);
148
173
  }
149
174
  .menu-state .menu-state-ico {
@@ -151,7 +176,7 @@
151
176
  height: 40px;
152
177
  border-radius: var(--r-md);
153
178
  background: var(--bg);
154
- box-shadow: var(--neu-in-sm);
179
+ box-shadow: var(--neu-shadow-inset);
155
180
  display: grid;
156
181
  place-items: center;
157
182
  color: var(--fg-subtle);
@@ -182,7 +207,7 @@
182
207
  text-overflow: ellipsis;
183
208
  }
184
209
  .menu-item-desc {
185
- font-size: 11px;
210
+ font-size: var(--fs-xs);
186
211
  color: var(--fg-subtle);
187
212
  white-space: nowrap;
188
213
  overflow: hidden;
@@ -193,7 +218,7 @@
193
218
  /* Keyboard / hover highlight — soft raised pill */
194
219
  .menu-item.highlight:not([disabled]) {
195
220
  background: var(--bg);
196
- box-shadow: var(--neu-out-sm);
221
+ box-shadow: var(--neu-shadow-control);
197
222
  color: var(--accent-ink);
198
223
  }
199
224
  .menu-item[disabled] {
@@ -204,7 +229,7 @@
204
229
  .menu {
205
230
  background: var(--bg);
206
231
  border-radius: var(--r-md);
207
- box-shadow: var(--neu-float);
232
+ box-shadow: var(--neu-shadow-float);
208
233
  padding: 6px;
209
234
  min-width: 180px;
210
235
  z-index: 1000;
@@ -215,7 +240,7 @@
215
240
  .menu-item {
216
241
  padding: 9px 12px;
217
242
  border-radius: var(--r-sm);
218
- font-size: 13px;
243
+ font-size: var(--fs-md);
219
244
  cursor: pointer;
220
245
  color: var(--fg);
221
246
  display: flex;
@@ -228,7 +253,7 @@
228
253
  width: 100%;
229
254
  text-align: left;
230
255
  }
231
- .menu-item:hover { background: var(--bg); box-shadow: var(--neu-flat); color: var(--accent-ink); }
256
+ .menu-item:hover { background: var(--bg); box-shadow: var(--neu-shadow-subtle); color: var(--accent-ink); }
232
257
  .menu-item.active { color: var(--accent-ink); font-weight: 500; }
233
258
  .menu-item .tick { margin-left: auto; color: var(--accent); opacity: 0; }
234
259
  .menu-item.active .tick { opacity: 1; }
package/dist/Select.cjs CHANGED
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkOYMJVU66_cjs = require('./chunk-OYMJVU66.cjs');
4
- require('./chunk-ZIP7F4UF.cjs');
3
+ var chunkIDJCFYPP_cjs = require('./chunk-IDJCFYPP.cjs');
4
+ require('./chunk-SYWTT5TY.cjs');
5
5
  require('./chunk-YB3IWIOJ.cjs');
6
- require('./chunk-6LZ54NPO.cjs');
7
- require('./chunk-OQBDU5I2.cjs');
8
- require('./chunk-TJII7BQ2.cjs');
6
+ require('./chunk-VAXWWJJP.cjs');
7
+ require('./chunk-5NFSDFBB.cjs');
8
+ require('./chunk-6LARTGLP.cjs');
9
9
 
10
10
 
11
11
 
12
12
  Object.defineProperty(exports, "Select", {
13
13
  enumerable: true,
14
- get: function () { return chunkOYMJVU66_cjs.Select; }
14
+ get: function () { return chunkIDJCFYPP_cjs.Select; }
15
15
  });
package/dist/Select.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- import { IconName } from './Icon.cjs';
2
+ import { IconSlot } from './Icon.cjs';
3
+ import 'react/jsx-runtime';
3
4
 
4
5
  interface SelectOption<T extends string | number = string> {
5
6
  value: T;
@@ -8,8 +9,8 @@ interface SelectOption<T extends string | number = string> {
8
9
  text?: string;
9
10
  /** Secondary line shown beneath the label. */
10
11
  description?: React.ReactNode;
11
- /** Leading icon. */
12
- icon?: IconName;
12
+ /** Leading icon. Accepts a built-in icon name or custom React node. */
13
+ icon?: IconSlot;
13
14
  disabled?: boolean;
14
15
  }
15
16
  interface SelectOptionGroup<T extends string | number = string> {
package/dist/Select.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- import { IconName } from './Icon.js';
2
+ import { IconSlot } from './Icon.js';
3
+ import 'react/jsx-runtime';
3
4
 
4
5
  interface SelectOption<T extends string | number = string> {
5
6
  value: T;
@@ -8,8 +9,8 @@ interface SelectOption<T extends string | number = string> {
8
9
  text?: string;
9
10
  /** Secondary line shown beneath the label. */
10
11
  description?: React.ReactNode;
11
- /** Leading icon. */
12
- icon?: IconName;
12
+ /** Leading icon. Accepts a built-in icon name or custom React node. */
13
+ icon?: IconSlot;
13
14
  disabled?: boolean;
14
15
  }
15
16
  interface SelectOptionGroup<T extends string | number = string> {
package/dist/Select.js CHANGED
@@ -1,6 +1,6 @@
1
- export { Select } from './chunk-WKKSAGYH.js';
2
- import './chunk-DQTSTJ6O.js';
1
+ export { Select } from './chunk-7D76MI37.js';
2
+ import './chunk-VNNQYJLT.js';
3
3
  import './chunk-DUFRASGO.js';
4
- import './chunk-XTIN5545.js';
5
- import './chunk-WGZ2KJTZ.js';
6
- import './chunk-OF3SGLZY.js';
4
+ import './chunk-XVP7IKLZ.js';
5
+ import './chunk-56PHETWO.js';
6
+ import './chunk-YT5NLCRC.js';
package/dist/Skeleton.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkHZSIUOCN_cjs = require('./chunk-HZSIUOCN.cjs');
3
+ var chunkYUKXNWVE_cjs = require('./chunk-YUKXNWVE.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Skeleton", {
8
8
  enumerable: true,
9
- get: function () { return chunkHZSIUOCN_cjs.Skeleton; }
9
+ get: function () { return chunkYUKXNWVE_cjs.Skeleton; }
10
10
  });
package/dist/Skeleton.js CHANGED
@@ -1 +1 @@
1
- export { Skeleton } from './chunk-5TKC6IEN.js';
1
+ export { Skeleton } from './chunk-PEJLXJQD.js';
@@ -26,7 +26,7 @@
26
26
  height: 10px;
27
27
  border-radius: 999px;
28
28
  background: var(--bg);
29
- box-shadow: var(--neu-in-sm);
29
+ box-shadow: var(--neu-shadow-inset);
30
30
  touch-action: none;
31
31
  z-index: 1;
32
32
  }
@@ -47,7 +47,7 @@
47
47
  width: 22px; height: 22px;
48
48
  border-radius: 999px;
49
49
  background: var(--bg-raised);
50
- box-shadow: var(--neu-out-sm);
50
+ box-shadow: var(--neu-shadow-control);
51
51
  transform: translate(-50%, -50%);
52
52
  transition: all var(--dur-fast) var(--ease);
53
53
  display: grid; place-items: center;
@@ -62,7 +62,7 @@
62
62
  background: var(--slider-thumb-color, var(--accent));
63
63
  }
64
64
  .slider-thumb:focus-visible {
65
- box-shadow: var(--neu-out-sm), 0 0 0 3px var(--accent-glow);
65
+ box-shadow: var(--neu-shadow-control), 0 0 0 3px var(--accent-glow);
66
66
  }
67
67
  .slider:hover .slider-thumb { transform: translate(-50%, -50%) scale(1.08); }
68
68
 
@@ -77,13 +77,13 @@
77
77
  /* Tone variants */
78
78
  .slider.success .slider-thumb { --slider-thumb-color: var(--success); }
79
79
  .slider.success .slider-fill { background: linear-gradient(90deg, color-mix(in oklch, var(--success) 70%, white), var(--success)); box-shadow: 0 0 10px color-mix(in oklch, var(--success) 35%, transparent); }
80
- .slider.success .slider-thumb:focus-visible { box-shadow: var(--neu-out-sm), 0 0 0 3px color-mix(in oklch, var(--success) 35%, transparent); }
80
+ .slider.success .slider-thumb:focus-visible { box-shadow: var(--neu-shadow-control), 0 0 0 3px color-mix(in oklch, var(--success) 35%, transparent); }
81
81
  .slider.warning .slider-thumb { --slider-thumb-color: var(--warning); }
82
82
  .slider.warning .slider-fill { background: linear-gradient(90deg, color-mix(in oklch, var(--warning) 70%, white), var(--warning)); box-shadow: 0 0 10px color-mix(in oklch, var(--warning) 35%, transparent); }
83
- .slider.warning .slider-thumb:focus-visible { box-shadow: var(--neu-out-sm), 0 0 0 3px color-mix(in oklch, var(--warning) 35%, transparent); }
83
+ .slider.warning .slider-thumb:focus-visible { box-shadow: var(--neu-shadow-control), 0 0 0 3px color-mix(in oklch, var(--warning) 35%, transparent); }
84
84
  .slider.danger .slider-thumb { --slider-thumb-color: var(--danger); }
85
85
  .slider.danger .slider-fill { background: linear-gradient(90deg, color-mix(in oklch, var(--danger) 70%, white), var(--danger)); box-shadow: 0 0 10px color-mix(in oklch, var(--danger) 35%, transparent); }
86
- .slider.danger .slider-thumb:focus-visible { box-shadow: var(--neu-out-sm), 0 0 0 3px color-mix(in oklch, var(--danger) 35%, transparent); }
86
+ .slider.danger .slider-thumb:focus-visible { box-shadow: var(--neu-shadow-control), 0 0 0 3px color-mix(in oklch, var(--danger) 35%, transparent); }
87
87
 
88
88
  /* Marks */
89
89
  .slider-marks {
@@ -110,7 +110,7 @@
110
110
  width: 6px; height: 6px;
111
111
  border-radius: 999px;
112
112
  background: var(--bg);
113
- box-shadow: var(--neu-in-sm);
113
+ box-shadow: var(--neu-shadow-inset);
114
114
  position: absolute;
115
115
  top: -12px;
116
116
  left: 50%;
package/dist/Slider.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkIZOHYJUQ_cjs = require('./chunk-IZOHYJUQ.cjs');
3
+ var chunkZWCDB5PP_cjs = require('./chunk-ZWCDB5PP.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Slider", {
8
8
  enumerable: true,
9
- get: function () { return chunkIZOHYJUQ_cjs.Slider; }
9
+ get: function () { return chunkZWCDB5PP_cjs.Slider; }
10
10
  });
package/dist/Slider.js CHANGED
@@ -1 +1 @@
1
- export { Slider } from './chunk-7JN6FJ55.js';
1
+ export { Slider } from './chunk-HU7T64Y3.js';
@@ -20,7 +20,7 @@
20
20
  border: none;
21
21
  border-radius: 50%;
22
22
  background: var(--bg);
23
- box-shadow: var(--neu-in-sm);
23
+ box-shadow: var(--neu-shadow-inset);
24
24
  animation: none;
25
25
  }
26
26
 
package/dist/Spin.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkQKQHZIF3_cjs = require('./chunk-QKQHZIF3.cjs');
3
+ var chunkSG42F5VB_cjs = require('./chunk-SG42F5VB.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Spin", {
8
8
  enumerable: true,
9
- get: function () { return chunkQKQHZIF3_cjs.Spin; }
9
+ get: function () { return chunkSG42F5VB_cjs.Spin; }
10
10
  });
package/dist/Spin.js CHANGED
@@ -1 +1 @@
1
- export { Spin } from './chunk-ELNT3CFO.js';
1
+ export { Spin } from './chunk-Y5F7ZTBH.js';
package/dist/Splitter.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunk2TL37AP5_cjs = require('./chunk-2TL37AP5.cjs');
3
+ var chunkN3OLFKV5_cjs = require('./chunk-N3OLFKV5.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Splitter", {
8
8
  enumerable: true,
9
- get: function () { return chunk2TL37AP5_cjs.Splitter; }
9
+ get: function () { return chunkN3OLFKV5_cjs.Splitter; }
10
10
  });
package/dist/Splitter.js CHANGED
@@ -1 +1 @@
1
- export { Splitter } from './chunk-KLEKKZ73.js';
1
+ export { Splitter } from './chunk-7ZNGHWVS.js';
@@ -46,13 +46,9 @@
46
46
 
47
47
  .statusbar-item.tone-muted { color: var(--fg-subtle); }
48
48
  .statusbar-item.tone-accent { color: var(--accent-ink); }
49
- .statusbar-item.tone-success { color: oklch(52% 0.14 150); }
50
- .statusbar-item.tone-warning { color: oklch(58% 0.14 75); }
51
- .statusbar-item.tone-danger { color: oklch(56% 0.18 25); }
52
-
53
- [data-theme="dark"] .statusbar-item.tone-success { color: oklch(78% 0.14 150); }
54
- [data-theme="dark"] .statusbar-item.tone-warning { color: oklch(82% 0.14 75); }
55
- [data-theme="dark"] .statusbar-item.tone-danger { color: oklch(76% 0.16 25); }
49
+ .statusbar-item.tone-success { color: var(--success); }
50
+ .statusbar-item.tone-warning { color: var(--warning); }
51
+ .statusbar-item.tone-danger { color: var(--danger); }
56
52
 
57
53
  .statusbar-item-icon { display: inline-flex; flex-shrink: 0; }
58
54
  .statusbar-item-label { overflow: hidden; text-overflow: ellipsis; }
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var chunkYLIQ37KY_cjs = require('./chunk-YLIQ37KY.cjs');
3
+ var chunk6XVLERA3_cjs = require('./chunk-6XVLERA3.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "StatusBar", {
8
8
  enumerable: true,
9
- get: function () { return chunkYLIQ37KY_cjs.StatusBar; }
9
+ get: function () { return chunk6XVLERA3_cjs.StatusBar; }
10
10
  });
11
11
  Object.defineProperty(exports, "StatusBarItem", {
12
12
  enumerable: true,
13
- get: function () { return chunkYLIQ37KY_cjs.StatusBarItem; }
13
+ get: function () { return chunk6XVLERA3_cjs.StatusBarItem; }
14
14
  });
package/dist/StatusBar.js CHANGED
@@ -1 +1 @@
1
- export { StatusBar, StatusBarItem } from './chunk-6BWELOCT.js';
1
+ export { StatusBar, StatusBarItem } from './chunk-2SCXQ7QS.js';
@@ -0,0 +1,42 @@
1
+ /* ============ Surface ============ */
2
+ .surface {
3
+ position: relative;
4
+ box-sizing: border-box;
5
+ min-width: 0;
6
+ color: var(--fg);
7
+ background: var(--bg);
8
+ border-radius: var(--r-lg);
9
+ }
10
+
11
+ .surface.tone-raised { background: var(--bg-raised); }
12
+ .surface.tone-sunken { background: var(--bg-sunken); }
13
+ .surface.tone-accent {
14
+ color: var(--accent-ink);
15
+ background: var(--accent-soft);
16
+ }
17
+
18
+ .surface.plain { box-shadow: none; }
19
+ .surface.raised { box-shadow: var(--neu-shadow-panel); }
20
+ .surface.sunken { box-shadow: var(--neu-shadow-inset-strong); }
21
+ .surface.floating { box-shadow: var(--neu-shadow-float); }
22
+ .surface.bordered { border: 1px solid var(--border); }
23
+
24
+ .surface.pad-none { padding: 0; }
25
+ .surface.pad-sm { padding: var(--gap-3); }
26
+ .surface.pad-md { padding: var(--gap-5); }
27
+ .surface.pad-lg { padding: var(--gap-8); }
28
+ .surface.pad-xl { padding: var(--gap-10); }
29
+
30
+ .surface.radius-none { border-radius: 0; }
31
+ .surface.radius-sm { border-radius: var(--r-sm); }
32
+ .surface.radius-md { border-radius: var(--r-md); }
33
+ .surface.radius-lg { border-radius: var(--r-lg); }
34
+ .surface.radius-xl { border-radius: var(--r-xl); }
35
+
36
+ .surface.height-content { min-height: 0; }
37
+ .surface.height-fill { min-height: 100%; }
38
+ .surface.height-screen { min-height: 100vh; }
39
+ .surface.scrollable { overflow: auto; }
40
+
41
+ .surface > *:first-child { margin-top: 0; }
42
+ .surface > *:last-child { margin-bottom: 0; }
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var chunkNT6CJYI3_cjs = require('./chunk-NT6CJYI3.cjs');
4
+ require('./chunk-6EOSMK34.cjs');
5
+ require('./chunk-N2COYOXE.cjs');
6
+
7
+
8
+
9
+ Object.defineProperty(exports, "SURFACE_THEME_PRESETS", {
10
+ enumerable: true,
11
+ get: function () { return chunkNT6CJYI3_cjs.SURFACE_THEME_PRESETS; }
12
+ });
13
+ Object.defineProperty(exports, "Surface", {
14
+ enumerable: true,
15
+ get: function () { return chunkNT6CJYI3_cjs.Surface; }
16
+ });
@@ -0,0 +1,60 @@
1
+ import * as React from 'react';
2
+ import { ThemePreset, ThemeMode, ThemeBaseMode, AccentKey, CustomAccentInput, DensityMode, FontConfig, ThemeTokens, ThemePresets } from './Theme.cjs';
3
+
4
+ type SurfacePreset = "inherit" | "mist" | "porcelain" | "graphite" | "ember";
5
+ type SurfaceTone = "base" | "raised" | "sunken" | "accent";
6
+ type SurfaceVariant = "plain" | "raised" | "sunken" | "floating";
7
+ type SurfacePadding = "none" | "sm" | "md" | "lg" | "xl";
8
+ type SurfaceRadius = "none" | "sm" | "md" | "lg" | "xl";
9
+ type SurfaceHeight = "content" | "fill" | "screen";
10
+ declare const SURFACE_THEME_PRESETS: Record<Exclude<SurfacePreset, "inherit">, ThemePreset>;
11
+ interface SurfaceProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "color"> {
12
+ /** Built-in local surface palette. `inherit` keeps the surrounding theme. */
13
+ preset?: SurfacePreset;
14
+ /** Background token used by the visible surface. */
15
+ tone?: SurfaceTone;
16
+ /** Neumorphic depth treatment for the surface itself. */
17
+ variant?: SurfaceVariant;
18
+ /** Inner padding. */
19
+ padding?: SurfacePadding;
20
+ /** Corner radius for the visible surface. */
21
+ radius?: SurfaceRadius;
22
+ /** Height behavior for page-sized surfaces. */
23
+ height?: SurfaceHeight;
24
+ /** Adds a subtle token-driven border. */
25
+ bordered?: boolean;
26
+ /** Allows the surface to scroll when constrained by its parent. */
27
+ scrollable?: boolean;
28
+ /** Local theme mode. Inherits the nearest ThemeProvider when omitted. */
29
+ mode?: ThemeMode;
30
+ /** Base light/dark color scheme for custom modes. */
31
+ colorScheme?: ThemeBaseMode;
32
+ /** Local accent palette or preset key. */
33
+ accent?: AccentKey | CustomAccentInput;
34
+ /** Local density. */
35
+ density?: DensityMode;
36
+ /** Local shadow strength, 1..10. */
37
+ intensity?: number;
38
+ /** Local theme radius in px. This is separate from the surface's own `radius` prop. */
39
+ themeRadius?: number;
40
+ /** Local font preset or stack. */
41
+ font?: FontConfig;
42
+ /** Local token overrides. */
43
+ tokens?: ThemeTokens;
44
+ /** Local custom mode registry. */
45
+ themes?: ThemePresets;
46
+ children?: React.ReactNode;
47
+ }
48
+ /**
49
+ * `Surface` — theme-aware background container for Lumina content.
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <Surface preset="graphite" padding="lg" radius="xl">
54
+ * <Card>Content that needs the graphite surface tokens.</Card>
55
+ * </Surface>
56
+ * ```
57
+ */
58
+ declare const Surface: React.ForwardRefExoticComponent<SurfaceProps & React.RefAttributes<HTMLDivElement>>;
59
+
60
+ export { SURFACE_THEME_PRESETS, Surface, type SurfaceHeight, type SurfacePadding, type SurfacePreset, type SurfaceProps, type SurfaceRadius, type SurfaceTone, type SurfaceVariant };
@@ -0,0 +1,60 @@
1
+ import * as React from 'react';
2
+ import { ThemePreset, ThemeMode, ThemeBaseMode, AccentKey, CustomAccentInput, DensityMode, FontConfig, ThemeTokens, ThemePresets } from './Theme.js';
3
+
4
+ type SurfacePreset = "inherit" | "mist" | "porcelain" | "graphite" | "ember";
5
+ type SurfaceTone = "base" | "raised" | "sunken" | "accent";
6
+ type SurfaceVariant = "plain" | "raised" | "sunken" | "floating";
7
+ type SurfacePadding = "none" | "sm" | "md" | "lg" | "xl";
8
+ type SurfaceRadius = "none" | "sm" | "md" | "lg" | "xl";
9
+ type SurfaceHeight = "content" | "fill" | "screen";
10
+ declare const SURFACE_THEME_PRESETS: Record<Exclude<SurfacePreset, "inherit">, ThemePreset>;
11
+ interface SurfaceProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "color"> {
12
+ /** Built-in local surface palette. `inherit` keeps the surrounding theme. */
13
+ preset?: SurfacePreset;
14
+ /** Background token used by the visible surface. */
15
+ tone?: SurfaceTone;
16
+ /** Neumorphic depth treatment for the surface itself. */
17
+ variant?: SurfaceVariant;
18
+ /** Inner padding. */
19
+ padding?: SurfacePadding;
20
+ /** Corner radius for the visible surface. */
21
+ radius?: SurfaceRadius;
22
+ /** Height behavior for page-sized surfaces. */
23
+ height?: SurfaceHeight;
24
+ /** Adds a subtle token-driven border. */
25
+ bordered?: boolean;
26
+ /** Allows the surface to scroll when constrained by its parent. */
27
+ scrollable?: boolean;
28
+ /** Local theme mode. Inherits the nearest ThemeProvider when omitted. */
29
+ mode?: ThemeMode;
30
+ /** Base light/dark color scheme for custom modes. */
31
+ colorScheme?: ThemeBaseMode;
32
+ /** Local accent palette or preset key. */
33
+ accent?: AccentKey | CustomAccentInput;
34
+ /** Local density. */
35
+ density?: DensityMode;
36
+ /** Local shadow strength, 1..10. */
37
+ intensity?: number;
38
+ /** Local theme radius in px. This is separate from the surface's own `radius` prop. */
39
+ themeRadius?: number;
40
+ /** Local font preset or stack. */
41
+ font?: FontConfig;
42
+ /** Local token overrides. */
43
+ tokens?: ThemeTokens;
44
+ /** Local custom mode registry. */
45
+ themes?: ThemePresets;
46
+ children?: React.ReactNode;
47
+ }
48
+ /**
49
+ * `Surface` — theme-aware background container for Lumina content.
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <Surface preset="graphite" padding="lg" radius="xl">
54
+ * <Card>Content that needs the graphite surface tokens.</Card>
55
+ * </Surface>
56
+ * ```
57
+ */
58
+ declare const Surface: React.ForwardRefExoticComponent<SurfaceProps & React.RefAttributes<HTMLDivElement>>;
59
+
60
+ export { SURFACE_THEME_PRESETS, Surface, type SurfaceHeight, type SurfacePadding, type SurfacePreset, type SurfaceProps, type SurfaceRadius, type SurfaceTone, type SurfaceVariant };
@@ -0,0 +1,3 @@
1
+ export { SURFACE_THEME_PRESETS, Surface } from './chunk-O43DOE7V.js';
2
+ import './chunk-6SPMHY54.js';
3
+ import './chunk-7NZ2A4MA.js';
@@ -19,7 +19,7 @@
19
19
  padding: 0;
20
20
  border-radius: 999px;
21
21
  background: var(--bg);
22
- box-shadow: var(--neu-in-sm);
22
+ box-shadow: var(--neu-shadow-inset);
23
23
  cursor: inherit;
24
24
  flex-shrink: 0;
25
25
  transition: all var(--dur) var(--ease);
@@ -27,9 +27,9 @@
27
27
  .switch.sm { --w: 36px; --h: 20px; }
28
28
  .switch.lg { --w: 58px; --h: 32px; }
29
29
  /* When checkedChildren / unCheckedChildren are present, widen the track to fit. */
30
- .switch.with-children { --w: 60px; }
31
- .switch.with-children.sm { --w: 46px; }
32
- .switch.with-children.lg { --w: 74px; }
30
+ .switch.with-children { --w: 72px; }
31
+ .switch.with-children.sm { --w: 60px; }
32
+ .switch.with-children.lg { --w: 86px; }
33
33
 
34
34
  .switch-thumb {
35
35
  position: absolute;
@@ -39,7 +39,7 @@
39
39
  height: calc(var(--h) - 6px);
40
40
  border-radius: 999px;
41
41
  background: var(--bg-raised);
42
- box-shadow: var(--neu-out-sm);
42
+ box-shadow: var(--neu-shadow-control);
43
43
  transition: all var(--dur) var(--ease);
44
44
  z-index: 1;
45
45
  }
@@ -68,6 +68,9 @@
68
68
  display: inline-flex;
69
69
  align-items: center;
70
70
  justify-content: center;
71
+ min-width: 0;
72
+ overflow: hidden;
73
+ white-space: nowrap;
71
74
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
72
75
  }
73
76
  /* Checked label sits on the left side of the track (thumb pushes right). */
package/dist/Switch.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkWNM5RVXR_cjs = require('./chunk-WNM5RVXR.cjs');
3
+ var chunk6GQPF3EI_cjs = require('./chunk-6GQPF3EI.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Switch", {
8
8
  enumerable: true,
9
- get: function () { return chunkWNM5RVXR_cjs.Switch; }
9
+ get: function () { return chunk6GQPF3EI_cjs.Switch; }
10
10
  });
package/dist/Switch.js CHANGED
@@ -1 +1 @@
1
- export { Switch } from './chunk-QCILPZWP.js';
1
+ export { Switch } from './chunk-YJEXAO2I.js';