@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
@@ -0,0 +1,80 @@
1
+ import * as React from 'react';
2
+ import { ThemeMode, ThemePreset, ThemeBaseMode } from './Theme.cjs';
3
+
4
+ type ThemePanelSection = "mode" | "presets" | "accent" | "shadow" | "intensity" | "radius" | "font" | "density";
5
+ interface ThemePanelPresetOption {
6
+ /** Mode key. If it exists in `theme.themes`, the registered preset is used. */
7
+ key: ThemeMode;
8
+ label: React.ReactNode;
9
+ description?: React.ReactNode;
10
+ /** Optional preset to apply and register on click. */
11
+ preset?: ThemePreset;
12
+ }
13
+ interface ThemePanelModeOption {
14
+ key: ThemeMode;
15
+ label: React.ReactNode;
16
+ }
17
+ interface ThemePanelCreatedThemeMeta {
18
+ key: ThemeMode;
19
+ label: string;
20
+ description: string;
21
+ }
22
+ interface ThemePanelCreateThemePayload extends ThemePanelCreatedThemeMeta {
23
+ preset: ThemePreset;
24
+ /** Ready-to-append preset option for callers that control `presetOptions`. */
25
+ presetOption: ThemePanelPresetOption;
26
+ }
27
+ interface ThemePanelDeleteThemePayload extends ThemePanelCreatedThemeMeta {
28
+ preset?: ThemePreset;
29
+ }
30
+ type ThemePanelDefaultPresetKey = "light" | "dark" | "porcelain" | "assistant" | "assistantDark";
31
+ type ThemePanelDefaultPreset = ThemePreset & {
32
+ base: ThemeBaseMode;
33
+ tokens: NonNullable<ThemePreset["tokens"]>;
34
+ };
35
+ declare const THEME_PANEL_DEFAULT_THEME_PRESETS: Record<ThemePanelDefaultPresetKey, ThemePanelDefaultPreset>;
36
+ declare const THEME_PANEL_DEFAULT_PRESET_OPTIONS: ThemePanelPresetOption[];
37
+ interface ThemePanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
38
+ /** Header title. Pass `null` to hide the title text while keeping the panel layout. */
39
+ title?: React.ReactNode;
40
+ /** Secondary header text. */
41
+ description?: React.ReactNode;
42
+ /** Sections to render, in order. */
43
+ sections?: ThemePanelSection[];
44
+ /** Built-in mode buttons. */
45
+ modeOptions?: ThemePanelModeOption[];
46
+ /** Named theme preset cards. Defaults to Lumina presets plus registered `theme.themes`. */
47
+ presetOptions?: ThemePanelPresetOption[];
48
+ /** Initial color used by the custom accent picker. */
49
+ defaultCustomAccent?: string;
50
+ /** Show the inline create-theme flow in the preset section. */
51
+ allowCreateTheme?: boolean;
52
+ /** Default name for a newly created theme. */
53
+ defaultCreateThemeName?: string;
54
+ /** Prefix used when generating a mode key for a created theme. */
55
+ createThemeKeyPrefix?: string;
56
+ /** Called after a custom theme is saved into the nearest ThemeProvider. */
57
+ onCreateTheme?: (payload: ThemePanelCreateThemePayload) => void;
58
+ /** Show delete actions for non-default named themes. */
59
+ allowDeleteTheme?: boolean;
60
+ /** Called after a non-default theme is removed from the nearest ThemeProvider. */
61
+ onDeleteTheme?: (payload: ThemePanelDeleteThemePayload) => void;
62
+ /** Show the reset button. */
63
+ showReset?: boolean;
64
+ /** Compact typography and spacing. */
65
+ compact?: boolean;
66
+ }
67
+ /**
68
+ * `ThemePanel` — ready-made controls for quickly editing and saving the nearest Lumina theme.
69
+ *
70
+ * @example
71
+ * ```tsx
72
+ * <ThemeProvider>
73
+ * <ThemePanel />
74
+ * <App />
75
+ * </ThemeProvider>
76
+ * ```
77
+ */
78
+ declare const ThemePanel: React.ForwardRefExoticComponent<ThemePanelProps & React.RefAttributes<HTMLDivElement>>;
79
+
80
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, type ThemePanelCreateThemePayload, type ThemePanelCreatedThemeMeta, type ThemePanelDeleteThemePayload, type ThemePanelModeOption, type ThemePanelPresetOption, type ThemePanelProps, type ThemePanelSection };
@@ -0,0 +1,80 @@
1
+ import * as React from 'react';
2
+ import { ThemeMode, ThemePreset, ThemeBaseMode } from './Theme.js';
3
+
4
+ type ThemePanelSection = "mode" | "presets" | "accent" | "shadow" | "intensity" | "radius" | "font" | "density";
5
+ interface ThemePanelPresetOption {
6
+ /** Mode key. If it exists in `theme.themes`, the registered preset is used. */
7
+ key: ThemeMode;
8
+ label: React.ReactNode;
9
+ description?: React.ReactNode;
10
+ /** Optional preset to apply and register on click. */
11
+ preset?: ThemePreset;
12
+ }
13
+ interface ThemePanelModeOption {
14
+ key: ThemeMode;
15
+ label: React.ReactNode;
16
+ }
17
+ interface ThemePanelCreatedThemeMeta {
18
+ key: ThemeMode;
19
+ label: string;
20
+ description: string;
21
+ }
22
+ interface ThemePanelCreateThemePayload extends ThemePanelCreatedThemeMeta {
23
+ preset: ThemePreset;
24
+ /** Ready-to-append preset option for callers that control `presetOptions`. */
25
+ presetOption: ThemePanelPresetOption;
26
+ }
27
+ interface ThemePanelDeleteThemePayload extends ThemePanelCreatedThemeMeta {
28
+ preset?: ThemePreset;
29
+ }
30
+ type ThemePanelDefaultPresetKey = "light" | "dark" | "porcelain" | "assistant" | "assistantDark";
31
+ type ThemePanelDefaultPreset = ThemePreset & {
32
+ base: ThemeBaseMode;
33
+ tokens: NonNullable<ThemePreset["tokens"]>;
34
+ };
35
+ declare const THEME_PANEL_DEFAULT_THEME_PRESETS: Record<ThemePanelDefaultPresetKey, ThemePanelDefaultPreset>;
36
+ declare const THEME_PANEL_DEFAULT_PRESET_OPTIONS: ThemePanelPresetOption[];
37
+ interface ThemePanelProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
38
+ /** Header title. Pass `null` to hide the title text while keeping the panel layout. */
39
+ title?: React.ReactNode;
40
+ /** Secondary header text. */
41
+ description?: React.ReactNode;
42
+ /** Sections to render, in order. */
43
+ sections?: ThemePanelSection[];
44
+ /** Built-in mode buttons. */
45
+ modeOptions?: ThemePanelModeOption[];
46
+ /** Named theme preset cards. Defaults to Lumina presets plus registered `theme.themes`. */
47
+ presetOptions?: ThemePanelPresetOption[];
48
+ /** Initial color used by the custom accent picker. */
49
+ defaultCustomAccent?: string;
50
+ /** Show the inline create-theme flow in the preset section. */
51
+ allowCreateTheme?: boolean;
52
+ /** Default name for a newly created theme. */
53
+ defaultCreateThemeName?: string;
54
+ /** Prefix used when generating a mode key for a created theme. */
55
+ createThemeKeyPrefix?: string;
56
+ /** Called after a custom theme is saved into the nearest ThemeProvider. */
57
+ onCreateTheme?: (payload: ThemePanelCreateThemePayload) => void;
58
+ /** Show delete actions for non-default named themes. */
59
+ allowDeleteTheme?: boolean;
60
+ /** Called after a non-default theme is removed from the nearest ThemeProvider. */
61
+ onDeleteTheme?: (payload: ThemePanelDeleteThemePayload) => void;
62
+ /** Show the reset button. */
63
+ showReset?: boolean;
64
+ /** Compact typography and spacing. */
65
+ compact?: boolean;
66
+ }
67
+ /**
68
+ * `ThemePanel` — ready-made controls for quickly editing and saving the nearest Lumina theme.
69
+ *
70
+ * @example
71
+ * ```tsx
72
+ * <ThemeProvider>
73
+ * <ThemePanel />
74
+ * <App />
75
+ * </ThemeProvider>
76
+ * ```
77
+ */
78
+ declare const ThemePanel: React.ForwardRefExoticComponent<ThemePanelProps & React.RefAttributes<HTMLDivElement>>;
79
+
80
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel, type ThemePanelCreateThemePayload, type ThemePanelCreatedThemeMeta, type ThemePanelDeleteThemePayload, type ThemePanelModeOption, type ThemePanelPresetOption, type ThemePanelProps, type ThemePanelSection };
@@ -0,0 +1,12 @@
1
+ export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-NJCHFXGC.js';
2
+ import './chunk-HU7T64Y3.js';
3
+ import './chunk-6SPMHY54.js';
4
+ import './chunk-7NZ2A4MA.js';
5
+ import './chunk-YJEXAO2I.js';
6
+ import './chunk-HFUHQUPQ.js';
7
+ import './chunk-GZCU6HXD.js';
8
+ import './chunk-DUFRASGO.js';
9
+ import './chunk-XVP7IKLZ.js';
10
+ import './chunk-56PHETWO.js';
11
+ import './chunk-CNGKJYGZ.js';
12
+ import './chunk-YT5NLCRC.js';
@@ -71,7 +71,7 @@
71
71
  width: 12px;
72
72
  height: 12px;
73
73
  border-radius: var(--r-pill);
74
- box-shadow: var(--neu-out-sm);
74
+ box-shadow: var(--neu-shadow-control);
75
75
  flex-shrink: 0;
76
76
  display: flex;
77
77
  align-items: center;
package/dist/Timeline.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkNTS5L4NQ_cjs = require('./chunk-NTS5L4NQ.cjs');
4
- require('./chunk-QKQHZIF3.cjs');
3
+ var chunkBJ6WUVEG_cjs = require('./chunk-BJ6WUVEG.cjs');
4
+ require('./chunk-SG42F5VB.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Timeline", {
9
9
  enumerable: true,
10
- get: function () { return chunkNTS5L4NQ_cjs.Timeline; }
10
+ get: function () { return chunkBJ6WUVEG_cjs.Timeline; }
11
11
  });
package/dist/Timeline.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Timeline } from './chunk-46VXFTEC.js';
2
- import './chunk-ELNT3CFO.js';
1
+ export { Timeline } from './chunk-OQU3TJCF.js';
2
+ import './chunk-Y5F7ZTBH.js';
@@ -12,7 +12,7 @@
12
12
  font-size: 11px;
13
13
  font-weight: 500;
14
14
  white-space: nowrap;
15
- box-shadow: var(--neu-out-sm);
15
+ box-shadow: var(--neu-shadow-control);
16
16
  pointer-events: none;
17
17
  animation: fadeIn var(--dur) var(--ease);
18
18
  z-index: 1000;
package/dist/Tooltip.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunk3YJU3D5S_cjs = require('./chunk-3YJU3D5S.cjs');
3
+ var chunkF3LHLYX6_cjs = require('./chunk-F3LHLYX6.cjs');
4
4
  require('./chunk-YB3IWIOJ.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Tooltip", {
9
9
  enumerable: true,
10
- get: function () { return chunk3YJU3D5S_cjs.Tooltip; }
10
+ get: function () { return chunkF3LHLYX6_cjs.Tooltip; }
11
11
  });
package/dist/Tooltip.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Tooltip } from './chunk-TEEFR2FD.js';
1
+ export { Tooltip } from './chunk-XHQGMMH7.js';
2
2
  import './chunk-DUFRASGO.js';
@@ -48,7 +48,7 @@
48
48
  padding: 1px 6px;
49
49
  border-radius: 5px;
50
50
  background: var(--bg-sunken);
51
- box-shadow: var(--neu-in-sm);
51
+ box-shadow: var(--neu-shadow-inset);
52
52
  color: var(--accent-ink);
53
53
  margin: 0 2px;
54
54
  }
@@ -59,7 +59,7 @@
59
59
  padding: 1px 7px;
60
60
  border-radius: 5px;
61
61
  background: var(--bg-raised);
62
- box-shadow: var(--neu-flat);
62
+ box-shadow: var(--neu-shadow-subtle);
63
63
  border: 1px solid var(--border);
64
64
  color: var(--fg);
65
65
  margin: 0 2px;
@@ -145,7 +145,7 @@
145
145
  .typo-action:hover {
146
146
  color: var(--accent-ink);
147
147
  background: var(--bg);
148
- box-shadow: var(--neu-flat);
148
+ box-shadow: var(--neu-shadow-subtle);
149
149
  }
150
150
  .typo-action:focus-visible {
151
151
  outline: 2px solid var(--accent-glow);
@@ -169,7 +169,7 @@
169
169
  font: inherit;
170
170
  color: inherit;
171
171
  background: var(--bg-sunken);
172
- box-shadow: var(--neu-in);
172
+ box-shadow: var(--neu-shadow-inset-strong);
173
173
  border: none;
174
174
  outline: none;
175
175
  width: 100%;
@@ -184,7 +184,7 @@
184
184
  font-family: inherit;
185
185
  }
186
186
  .typo-editor:focus {
187
- box-shadow: var(--neu-in), 0 0 0 3px var(--accent-glow);
187
+ box-shadow: var(--neu-shadow-inset-strong), 0 0 0 3px var(--accent-glow);
188
188
  }
189
189
 
190
190
  /* ---- Ellipsis ---- */
@@ -1,27 +1,27 @@
1
1
  'use strict';
2
2
 
3
- var chunkMQV2XN4B_cjs = require('./chunk-MQV2XN4B.cjs');
4
- require('./chunk-TJII7BQ2.cjs');
3
+ var chunk5JPAUQ5H_cjs = require('./chunk-5JPAUQ5H.cjs');
4
+ require('./chunk-6LARTGLP.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Link", {
9
9
  enumerable: true,
10
- get: function () { return chunkMQV2XN4B_cjs.Link; }
10
+ get: function () { return chunk5JPAUQ5H_cjs.Link; }
11
11
  });
12
12
  Object.defineProperty(exports, "Paragraph", {
13
13
  enumerable: true,
14
- get: function () { return chunkMQV2XN4B_cjs.Paragraph; }
14
+ get: function () { return chunk5JPAUQ5H_cjs.Paragraph; }
15
15
  });
16
16
  Object.defineProperty(exports, "Text", {
17
17
  enumerable: true,
18
- get: function () { return chunkMQV2XN4B_cjs.Text; }
18
+ get: function () { return chunk5JPAUQ5H_cjs.Text; }
19
19
  });
20
20
  Object.defineProperty(exports, "Title", {
21
21
  enumerable: true,
22
- get: function () { return chunkMQV2XN4B_cjs.Title; }
22
+ get: function () { return chunk5JPAUQ5H_cjs.Title; }
23
23
  });
24
24
  Object.defineProperty(exports, "Typography", {
25
25
  enumerable: true,
26
- get: function () { return chunkMQV2XN4B_cjs.Typography; }
26
+ get: function () { return chunk5JPAUQ5H_cjs.Typography; }
27
27
  });
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { IconName } from './Icon.cjs';
3
+ import 'react/jsx-runtime';
3
4
 
4
5
  type TypographyType = "secondary" | "success" | "warning" | "danger";
5
6
  interface CopyableConfig {
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { IconName } from './Icon.js';
3
+ import 'react/jsx-runtime';
3
4
 
4
5
  type TypographyType = "secondary" | "success" | "warning" | "danger";
5
6
  interface CopyableConfig {
@@ -1,2 +1,2 @@
1
- export { Link, Paragraph, Text, Title, Typography } from './chunk-CXWEOAVU.js';
2
- import './chunk-OF3SGLZY.js';
1
+ export { Link, Paragraph, Text, Title, Typography } from './chunk-BCFCSVGJ.js';
2
+ import './chunk-YT5NLCRC.js';
@@ -0,0 +1,243 @@
1
+ import { Icon } from './chunk-YT5NLCRC.js';
2
+ import './tokens-EF34LSWI.css';
3
+ import './shared-NJHRNLRH.css';
4
+ import './Image-SGSRTHQX.css';
5
+ import * as React from 'react';
6
+ import ReactDOM from 'react-dom';
7
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
+
9
+ var Image = React.forwardRef(({
10
+ src,
11
+ alt,
12
+ width = 200,
13
+ height,
14
+ variant = "framed",
15
+ frame,
16
+ padding,
17
+ objectFit,
18
+ objectPosition,
19
+ preview,
20
+ hover = true,
21
+ placeholder,
22
+ imgProps,
23
+ className = "",
24
+ style,
25
+ ...rest
26
+ }, ref) => {
27
+ const [loaded, setLoaded] = React.useState(false);
28
+ const [err, setErr] = React.useState(false);
29
+ const [open, setOpen] = React.useState(false);
30
+ const visualFrame = frame ?? variant === "framed";
31
+ const resolvedHeight = height ?? (variant === "icon" ? width : 140);
32
+ const resolvedPadding = padding ?? (visualFrame ? void 0 : 0);
33
+ const resolvedObjectFit = objectFit ?? (variant === "icon" ? "contain" : "cover");
34
+ const canPreview = (preview ?? variant === "framed") && loaded && !err;
35
+ const {
36
+ className: imgClassName = "",
37
+ style: imgStyle,
38
+ onLoad,
39
+ onError,
40
+ ...imageRest
41
+ } = imgProps ?? {};
42
+ React.useEffect(() => {
43
+ setLoaded(false);
44
+ setErr(false);
45
+ setOpen(false);
46
+ }, [src]);
47
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
48
+ /* @__PURE__ */ jsx(
49
+ "div",
50
+ {
51
+ ref,
52
+ className: `n-image ${variant} ${visualFrame ? "framed" : "unframed"} ${hover ? "hover" : ""} ${canPreview ? "clickable" : ""} ${className}`,
53
+ style: { width, ...resolvedPadding !== void 0 ? { padding: resolvedPadding } : {}, ...style },
54
+ onClick: () => canPreview && setOpen(true),
55
+ ...rest,
56
+ children: /* @__PURE__ */ jsxs("div", { className: "n-image-frame", style: { width: "100%", height: resolvedHeight }, children: [
57
+ !err && src && /* @__PURE__ */ jsx(
58
+ "img",
59
+ {
60
+ ...imageRest,
61
+ src,
62
+ alt,
63
+ className: imgClassName,
64
+ style: { objectFit: resolvedObjectFit, objectPosition, ...imgStyle },
65
+ onLoad: (event) => {
66
+ setLoaded(true);
67
+ onLoad?.(event);
68
+ },
69
+ onError: (event) => {
70
+ setErr(true);
71
+ onError?.(event);
72
+ }
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsx("div", { className: `n-image-placeholder ${loaded && !err ? "loaded" : ""}`, children: placeholder ?? /* @__PURE__ */ jsx(Icon, { name: "image", size: 28 }) }),
76
+ canPreview && /* @__PURE__ */ jsxs(Fragment, { children: [
77
+ /* @__PURE__ */ jsxs("div", { className: "image-hint", children: [
78
+ /* @__PURE__ */ jsx(Icon, { name: "eye", size: 14 }),
79
+ /* @__PURE__ */ jsx("span", { children: "\u70B9\u51FB\u67E5\u770B" })
80
+ ] }),
81
+ /* @__PURE__ */ jsxs("div", { className: "image-actions", onClick: (e) => e.stopPropagation(), children: [
82
+ /* @__PURE__ */ jsx(
83
+ "button",
84
+ {
85
+ type: "button",
86
+ className: "ia-btn",
87
+ onClick: () => setOpen(true),
88
+ "aria-label": "\u9884\u89C8",
89
+ children: /* @__PURE__ */ jsx(Icon, { name: "eye", size: 13 })
90
+ }
91
+ ),
92
+ src && /* @__PURE__ */ jsx("a", { className: "ia-btn", href: src, download: true, "aria-label": "\u4E0B\u8F7D", children: /* @__PURE__ */ jsx(Icon, { name: "download", size: 13 }) })
93
+ ] })
94
+ ] })
95
+ ] })
96
+ }
97
+ ),
98
+ open && typeof document !== "undefined" && ReactDOM.createPortal(
99
+ /* @__PURE__ */ jsx("div", { className: "image-preview-overlay", onClick: () => setOpen(false), children: /* @__PURE__ */ jsx("img", { src, alt, onClick: (e) => e.stopPropagation() }) }),
100
+ document.body
101
+ )
102
+ ] });
103
+ });
104
+ Image.displayName = "Image";
105
+ var ImageGrid = React.forwardRef(({
106
+ images,
107
+ columns,
108
+ itemHeight = 130,
109
+ minItemWidth = 160,
110
+ gap = 14,
111
+ imageProps,
112
+ className = "",
113
+ style,
114
+ ...rest
115
+ }, ref) => /* @__PURE__ */ jsx(
116
+ "div",
117
+ {
118
+ ref,
119
+ className,
120
+ style: {
121
+ display: "grid",
122
+ gap,
123
+ gridTemplateColumns: columns ? `repeat(${columns}, 1fr)` : `repeat(auto-fill, minmax(${typeof minItemWidth === "number" ? `${minItemWidth}px` : minItemWidth}, 1fr))`,
124
+ ...style
125
+ },
126
+ ...rest,
127
+ children: images.map((img, i) => /* @__PURE__ */ jsx(
128
+ Image,
129
+ {
130
+ ...imageProps,
131
+ ...img,
132
+ src: img.src,
133
+ alt: img.alt,
134
+ width: img.width ?? "100%",
135
+ height: img.height ?? itemHeight
136
+ },
137
+ i
138
+ ))
139
+ }
140
+ ));
141
+ ImageGrid.displayName = "ImageGrid";
142
+ var SpriteImage = React.forwardRef(({
143
+ src,
144
+ sprite,
145
+ alt,
146
+ width,
147
+ height,
148
+ scale = 1,
149
+ backgroundSize,
150
+ variant = "icon",
151
+ frame,
152
+ padding,
153
+ className = "",
154
+ style,
155
+ ...rest
156
+ }, ref) => {
157
+ const visualFrame = frame ?? variant === "framed";
158
+ const resolvedWidth = width ?? sprite.width * scale;
159
+ const resolvedHeight = height ?? sprite.height * scale;
160
+ const resolvedPadding = padding ?? (visualFrame ? void 0 : 0);
161
+ return /* @__PURE__ */ jsx(
162
+ "div",
163
+ {
164
+ ref,
165
+ className: `n-sprite-image ${variant} ${visualFrame ? "framed" : "unframed"} ${className}`,
166
+ role: alt ? "img" : void 0,
167
+ "aria-label": alt || void 0,
168
+ "aria-hidden": alt === "" ? true : void 0,
169
+ style: { width: resolvedWidth, ...resolvedPadding !== void 0 ? { padding: resolvedPadding } : {}, ...style },
170
+ ...rest,
171
+ children: /* @__PURE__ */ jsx("div", { className: "n-sprite-image-frame", style: { height: resolvedHeight }, children: /* @__PURE__ */ jsx(
172
+ "span",
173
+ {
174
+ className: "n-sprite-image-sprite",
175
+ style: {
176
+ width: sprite.width,
177
+ height: sprite.height,
178
+ backgroundImage: `url(${JSON.stringify(src)})`,
179
+ backgroundPosition: `${-sprite.x}px ${-sprite.y}px`,
180
+ backgroundSize,
181
+ transform: scale !== 1 ? `scale(${scale})` : void 0
182
+ }
183
+ }
184
+ ) })
185
+ }
186
+ );
187
+ });
188
+ SpriteImage.displayName = "SpriteImage";
189
+ var insetStyle = (inset) => {
190
+ if (inset == null) return { inset: 0 };
191
+ if (typeof inset === "number" || typeof inset === "string") return { inset };
192
+ return inset;
193
+ };
194
+ var LayeredImage = React.forwardRef(({
195
+ layers,
196
+ width = 64,
197
+ height = 64,
198
+ variant = "icon",
199
+ frame,
200
+ padding,
201
+ className = "",
202
+ style,
203
+ ...rest
204
+ }, ref) => {
205
+ const visualFrame = frame ?? variant === "framed";
206
+ const resolvedPadding = padding ?? (visualFrame ? void 0 : 0);
207
+ return /* @__PURE__ */ jsx(
208
+ "div",
209
+ {
210
+ ref,
211
+ className: `n-layered-image ${variant} ${visualFrame ? "framed" : "unframed"} ${className}`,
212
+ style: { width, ...resolvedPadding !== void 0 ? { padding: resolvedPadding } : {}, ...style },
213
+ ...rest,
214
+ children: /* @__PURE__ */ jsx("div", { className: "n-layered-image-frame", style: { height }, children: layers.map(({ src: layerSrc, alt: layerAlt = "", fit = "contain", inset, zIndex, className: layerClassName = "", style: layerStyle, ...layerRest }, index) => /* @__PURE__ */ jsx(
215
+ "span",
216
+ {
217
+ className: "n-layered-image-layer",
218
+ style: {
219
+ zIndex,
220
+ ...insetStyle(inset)
221
+ },
222
+ children: /* @__PURE__ */ jsx(
223
+ "img",
224
+ {
225
+ ...layerRest,
226
+ src: layerSrc,
227
+ alt: layerAlt,
228
+ className: layerClassName,
229
+ style: {
230
+ objectFit: fit,
231
+ ...layerStyle
232
+ }
233
+ }
234
+ )
235
+ },
236
+ `${layerSrc}-${index}`
237
+ )) })
238
+ }
239
+ );
240
+ });
241
+ LayeredImage.displayName = "LayeredImage";
242
+
243
+ export { Image, ImageGrid, LayeredImage, SpriteImage };
@@ -1,6 +1,6 @@
1
- import './tokens-BIIUTPKN.css';
1
+ import './tokens-EF34LSWI.css';
2
2
  import './shared-NJHRNLRH.css';
3
- import './StatusBar-CDS2GPSI.css';
3
+ import './StatusBar-FJKEEPXU.css';
4
4
  import * as React from 'react';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
 
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkTJII7BQ2_cjs = require('./chunk-TJII7BQ2.cjs');
4
- require('./tokens-BIIUTPKN.css');
3
+ var chunk6LARTGLP_cjs = require('./chunk-6LARTGLP.cjs');
4
+ require('./tokens-EF34LSWI.css');
5
5
  require('./shared-NJHRNLRH.css');
6
- require('./Button-SDQD25AG.css');
6
+ require('./Button-TUMZUQLI.css');
7
7
  var React = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
@@ -64,12 +64,12 @@ var Button = React__namespace.forwardRef(
64
64
  className: cls,
65
65
  disabled: disabled || loading,
66
66
  title: tip,
67
- "aria-label": ariaLabel ?? (onlyIcon ? tip ?? icon : void 0),
67
+ "aria-label": ariaLabel ?? (onlyIcon ? tip ?? (typeof icon === "string" ? icon : void 0) : void 0),
68
68
  ...rest,
69
69
  children: [
70
- loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner", "aria-hidden": true }) : icon ? /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: icon, size: 15 }) : null,
70
+ loading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "spinner", "aria-hidden": true }) : chunk6LARTGLP_cjs.renderIconSlot(icon, { size: 15, className: "btn-icon-slot" }),
71
71
  content,
72
- trailingIcon && /* @__PURE__ */ jsxRuntime.jsx(chunkTJII7BQ2_cjs.Icon, { name: trailingIcon, size: 15 })
72
+ chunk6LARTGLP_cjs.renderIconSlot(trailingIcon, { size: 15, className: "btn-icon-slot" })
73
73
  ]
74
74
  }
75
75
  );
@@ -1,8 +1,8 @@
1
- import { Select } from './chunk-WKKSAGYH.js';
2
- import { Icon } from './chunk-OF3SGLZY.js';
3
- import './tokens-BIIUTPKN.css';
1
+ import { Select } from './chunk-7D76MI37.js';
2
+ import { Icon } from './chunk-YT5NLCRC.js';
3
+ import './tokens-EF34LSWI.css';
4
4
  import './shared-NJHRNLRH.css';
5
- import './Pagination-YIRYJUXP.css';
5
+ import './Pagination-YSZSNFHG.css';
6
6
  import * as React from 'react';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
@@ -1,7 +1,7 @@
1
- import { Icon } from './chunk-OF3SGLZY.js';
2
- import './tokens-BIIUTPKN.css';
1
+ import { renderIconSlot, Icon } from './chunk-YT5NLCRC.js';
2
+ import './tokens-EF34LSWI.css';
3
3
  import './shared-NJHRNLRH.css';
4
- import './Alert-JJ7GB3UU.css';
4
+ import './Alert-HVPI6L4V.css';
5
5
  import * as React from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
@@ -17,7 +17,7 @@ var Alert = React.forwardRef(({
17
17
  className = "",
18
18
  ...rest
19
19
  }, ref) => {
20
- const iconName = icon ?? (tone === "success" ? "check2" : tone === "warning" || tone === "danger" ? "alert" : "info");
20
+ const iconNode = icon ?? (tone === "success" ? "check2" : tone === "warning" || tone === "danger" ? "alert" : "info");
21
21
  return /* @__PURE__ */ jsxs(
22
22
  "div",
23
23
  {
@@ -26,7 +26,7 @@ var Alert = React.forwardRef(({
26
26
  role: "alert",
27
27
  ...rest,
28
28
  children: [
29
- showIcon && /* @__PURE__ */ jsx("span", { className: "alert-ico", children: /* @__PURE__ */ jsx(Icon, { name: iconName, size: 14 }) }),
29
+ showIcon && /* @__PURE__ */ jsx("span", { className: "alert-ico", children: renderIconSlot(iconNode, { size: 14 }) }),
30
30
  /* @__PURE__ */ jsxs("div", { className: "alert-body", children: [
31
31
  title && /* @__PURE__ */ jsx("div", { className: "alert-title", children: title }),
32
32
  children && /* @__PURE__ */ jsx("div", { className: "alert-desc", children })