@fangxinyan/lumina 0.6.3 → 0.6.5

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 (255) hide show
  1. package/dist/{Alert-QBKIDY5H.css → Alert-HVPI6L4V.css} +2 -2
  2. package/dist/Alert.cjs +3 -3
  3. package/dist/Alert.js +2 -2
  4. package/dist/{AppShell-RCALXUCZ.css → AppShell-FZCD4C56.css} +4 -4
  5. package/dist/AppShell.cjs +5 -5
  6. package/dist/AppShell.js +1 -1
  7. package/dist/{AutoComplete-P5KZMZO5.css → AutoComplete-4YZBMW4E.css} +2 -2
  8. package/dist/AutoComplete.cjs +5 -5
  9. package/dist/AutoComplete.js +4 -4
  10. package/dist/{Avatar-R5A4AFKZ.css → Avatar-TNPOHVY5.css} +1 -1
  11. package/dist/Avatar.cjs +2 -2
  12. package/dist/Avatar.js +1 -1
  13. package/dist/Badge.cjs +2 -2
  14. package/dist/Badge.js +1 -1
  15. package/dist/{Button-4Z3Q6KII.css → Button-TUMZUQLI.css} +11 -11
  16. package/dist/Button.cjs +3 -3
  17. package/dist/Button.js +2 -2
  18. package/dist/{Calendar-LHZELUDL.css → Calendar-RUTPKREW.css} +4 -4
  19. package/dist/Calendar.cjs +3 -3
  20. package/dist/Calendar.js +2 -2
  21. package/dist/{Card-6RMVIHWX.css → Card-MA6SV7D5.css} +6 -6
  22. package/dist/Card.cjs +2 -2
  23. package/dist/Card.js +1 -1
  24. package/dist/{Cascader-3BLLA7EN.css → Cascader-ANEQUPMI.css} +8 -8
  25. package/dist/Cascader.cjs +5 -5
  26. package/dist/Cascader.js +4 -4
  27. package/dist/{Checkbox-U5EUDSYS.css → Checkbox-EDNPZRIP.css} +3 -3
  28. package/dist/Checkbox.cjs +3 -3
  29. package/dist/Checkbox.js +2 -2
  30. package/dist/{Collapse-66U5YJFY.css → Collapse-UNBHEPYP.css} +2 -2
  31. package/dist/Collapse.cjs +3 -3
  32. package/dist/Collapse.js +2 -2
  33. package/dist/{ColorPicker-SDDQGHCM.css → ColorPicker-LPG6QPYF.css} +7 -7
  34. package/dist/ColorPicker.cjs +2 -2
  35. package/dist/ColorPicker.js +1 -1
  36. package/dist/{CommandPalette-T45DBMPY.css → CommandPalette-RTKWNH2D.css} +3 -3
  37. package/dist/CommandPalette.cjs +5 -5
  38. package/dist/CommandPalette.js +4 -4
  39. package/dist/{ContextMenu-FKW6CQW4.css → ContextMenu-WRR2SSWL.css} +3 -3
  40. package/dist/ContextMenu.cjs +2 -2
  41. package/dist/ContextMenu.js +1 -1
  42. package/dist/{Divider-OEE4Q2KS.css → Divider-RPQCVH3J.css} +2 -2
  43. package/dist/Divider.cjs +2 -2
  44. package/dist/Divider.js +1 -1
  45. package/dist/{Drawer-IPGB4CXH.css → Drawer-7N3URAJ6.css} +8 -5
  46. package/dist/Drawer.cjs +3 -3
  47. package/dist/Drawer.js +2 -2
  48. package/dist/{Empty-DC2LPORC.css → Empty-CZTRZMZQ.css} +1 -1
  49. package/dist/Empty.cjs +2 -2
  50. package/dist/Empty.js +1 -1
  51. package/dist/{Form-5GRVZNDO.css → Form-NGCQWTMZ.css} +1 -1
  52. package/dist/Form.cjs +4 -4
  53. package/dist/Form.js +1 -1
  54. package/dist/Icon.cjs +49 -49
  55. package/dist/Icon.js +1 -1
  56. package/dist/{Image-MRYQCRQ5.css → Image-SGSRTHQX.css} +5 -5
  57. package/dist/Image.cjs +6 -6
  58. package/dist/Image.js +2 -2
  59. package/dist/{Input-HUBJ55OH.css → Input-7GDPGP3E.css} +12 -12
  60. package/dist/Input.cjs +5 -5
  61. package/dist/Input.js +3 -3
  62. package/dist/InputNumber.cjs +5 -5
  63. package/dist/InputNumber.js +4 -4
  64. package/dist/{List-W5BW4D2P.css → List-LSMU5QAC.css} +3 -3
  65. package/dist/List.cjs +2 -2
  66. package/dist/List.js +1 -1
  67. package/dist/{Message-2MZ3LFPU.css → Message-H222YGR6.css} +1 -1
  68. package/dist/Message.cjs +6 -6
  69. package/dist/Message.js +2 -2
  70. package/dist/{Modal-2QNDW4SO.css → Modal-MCFDYVUQ.css} +3 -3
  71. package/dist/Modal.cjs +4 -4
  72. package/dist/Modal.js +3 -3
  73. package/dist/{Pagination-YIRYJUXP.css → Pagination-YSZSNFHG.css} +5 -5
  74. package/dist/Pagination.cjs +7 -7
  75. package/dist/Pagination.js +6 -6
  76. package/dist/{Popover-DVGQGWX6.css → Popover-Y3LDCJPW.css} +1 -1
  77. package/dist/Popover.cjs +2 -2
  78. package/dist/Popover.js +1 -1
  79. package/dist/{Progress-CHV7DN6Y.css → Progress-CZNXCYGW.css} +1 -1
  80. package/dist/Progress.cjs +2 -2
  81. package/dist/Progress.js +1 -1
  82. package/dist/{Radio-GVFDPAZM.css → Radio-IQKASYDF.css} +4 -4
  83. package/dist/Radio.cjs +3 -3
  84. package/dist/Radio.js +1 -1
  85. package/dist/{Select-Z5VYPEEY.css → Select-YZ2NUJSX.css} +18 -18
  86. package/dist/Select.cjs +6 -6
  87. package/dist/Select.js +5 -5
  88. package/dist/Skeleton.cjs +2 -2
  89. package/dist/Skeleton.js +1 -1
  90. package/dist/{Slider-3JKA5EW6.css → Slider-UM2IZZBH.css} +7 -7
  91. package/dist/Slider.cjs +2 -2
  92. package/dist/Slider.js +1 -1
  93. package/dist/{Spin-3GJNMSIH.css → Spin-GONGPV4Q.css} +1 -1
  94. package/dist/Spin.cjs +2 -2
  95. package/dist/Spin.js +1 -1
  96. package/dist/Splitter.cjs +2 -2
  97. package/dist/Splitter.js +1 -1
  98. package/dist/{StatusBar-CDS2GPSI.css → StatusBar-FJKEEPXU.css} +3 -7
  99. package/dist/StatusBar.cjs +3 -3
  100. package/dist/StatusBar.js +1 -1
  101. package/dist/Surface-UDDN3DGL.css +42 -0
  102. package/dist/Surface.cjs +16 -0
  103. package/dist/Surface.d.cts +60 -0
  104. package/dist/Surface.d.ts +60 -0
  105. package/dist/Surface.js +3 -0
  106. package/dist/{Switch-36KJNDXM.css → Switch-COAQIOMH.css} +8 -5
  107. package/dist/Switch.cjs +2 -2
  108. package/dist/Switch.js +1 -1
  109. package/dist/{Table-ATJJQLKU.css → Table-IYJTPY6J.css} +16 -16
  110. package/dist/Table.cjs +9 -9
  111. package/dist/Table.js +8 -8
  112. package/dist/{TablePro-3XVHYLSL.css → TablePro-JRSBPXB5.css} +1 -1
  113. package/dist/TablePro.cjs +10 -10
  114. package/dist/TablePro.js +9 -9
  115. package/dist/{Tabs-BLSNI2T5.css → Tabs-X5U5PCPV.css} +2 -2
  116. package/dist/Tabs.cjs +2 -2
  117. package/dist/Tabs.js +1 -1
  118. package/dist/{Tag-HDYCDPFS.css → Tag-G2XWAL7A.css} +1 -1
  119. package/dist/Tag.cjs +3 -3
  120. package/dist/Tag.js +2 -2
  121. package/dist/{Textarea-YNET7IBH.css → Textarea-YHWKHIFE.css} +3 -3
  122. package/dist/Textarea.cjs +4 -4
  123. package/dist/Textarea.js +2 -2
  124. package/dist/Theme.cjs +11 -11
  125. package/dist/Theme.d.cts +5 -1
  126. package/dist/Theme.d.ts +5 -1
  127. package/dist/Theme.js +1 -1
  128. package/dist/ThemePanel-76LB3YA5.css +509 -0
  129. package/dist/ThemePanel.cjs +29 -0
  130. package/dist/ThemePanel.d.cts +80 -0
  131. package/dist/ThemePanel.d.ts +80 -0
  132. package/dist/ThemePanel.js +12 -0
  133. package/dist/{Timeline-3ZHOHPXT.css → Timeline-ZIM7QFQC.css} +1 -1
  134. package/dist/Timeline.cjs +3 -3
  135. package/dist/Timeline.js +2 -2
  136. package/dist/{Tooltip-DMKUPC24.css → Tooltip-5FSPJWLX.css} +4 -2
  137. package/dist/Tooltip.cjs +2 -2
  138. package/dist/Tooltip.d.cts +2 -0
  139. package/dist/Tooltip.d.ts +2 -0
  140. package/dist/Tooltip.js +1 -1
  141. package/dist/{Typography-NKPWTJCV.css → Typography-32QQLD4F.css} +41 -11
  142. package/dist/Typography.cjs +8 -7
  143. package/dist/Typography.d.cts +1 -1
  144. package/dist/Typography.d.ts +1 -1
  145. package/dist/Typography.js +3 -2
  146. package/dist/{chunk-DWAN57G4.js → chunk-2NT5QKEX.js} +3 -3
  147. package/dist/{chunk-6BWELOCT.js → chunk-2SCXQ7QS.js} +2 -2
  148. package/dist/{chunk-TP567B3L.cjs → chunk-2ZADGBUN.cjs} +5 -5
  149. package/dist/{chunk-CETNCRZ4.js → chunk-2ZFJTMEF.js} +4 -4
  150. package/dist/{chunk-I5WTQ5Y3.js → chunk-3YP7CBJT.js} +3 -3
  151. package/dist/{chunk-UUHFKIWP.cjs → chunk-4UKM4KAC.cjs} +2 -2
  152. package/dist/{chunk-HLFH5HWR.js → chunk-56PHETWO.js} +3 -3
  153. package/dist/{chunk-ET6DYQVZ.js → chunk-5JNDDWFZ.js} +132 -14
  154. package/dist/{chunk-MPVCYU2K.cjs → chunk-5NFSDFBB.cjs} +4 -4
  155. package/dist/{chunk-P6P4DGLF.cjs → chunk-66GXZQKL.cjs} +4 -4
  156. package/dist/{chunk-QP3VCSRY.cjs → chunk-66T76GII.cjs} +6 -6
  157. package/dist/chunk-6EOSMK34.cjs +194 -0
  158. package/dist/{chunk-WNM5RVXR.cjs → chunk-6GQPF3EI.cjs} +2 -2
  159. package/dist/{chunk-V272XR3F.cjs → chunk-6LARTGLP.cjs} +1 -1
  160. package/dist/chunk-6SPMHY54.js +191 -0
  161. package/dist/{chunk-YLIQ37KY.cjs → chunk-6XVLERA3.cjs} +2 -2
  162. package/dist/{chunk-FBYUZOZP.js → chunk-7D76MI37.js} +5 -5
  163. package/dist/{chunk-J5ZGYQZK.js → chunk-7NZ2A4MA.js} +155 -29
  164. package/dist/{chunk-KLEKKZ73.js → chunk-7ZNGHWVS.js} +1 -1
  165. package/dist/{chunk-7AG524YZ.cjs → chunk-ACQSRMLF.cjs} +5 -5
  166. package/dist/{chunk-JVUVOR6S.js → chunk-AJH2O4WC.js} +3 -3
  167. package/dist/{chunk-NTS5L4NQ.cjs → chunk-BJ6WUVEG.cjs} +4 -4
  168. package/dist/{chunk-S3VXH5L4.cjs → chunk-C24W6PTJ.cjs} +2 -2
  169. package/dist/{chunk-GMN74OEY.cjs → chunk-CBKJXKVI.cjs} +2 -2
  170. package/dist/{chunk-FWPBORRB.js → chunk-CEZ2DR4R.js} +3 -3
  171. package/dist/{chunk-SQGPSMSK.js → chunk-CNGKJYGZ.js} +3 -3
  172. package/dist/{chunk-PULGVK2I.cjs → chunk-D5PCIVID.cjs} +4 -4
  173. package/dist/{chunk-DG5VQ6BO.cjs → chunk-D64IPDUE.cjs} +4 -4
  174. package/dist/{chunk-VFFIE2VO.cjs → chunk-DYHNOYRC.cjs} +7 -7
  175. package/dist/{chunk-P6EZG2R7.cjs → chunk-DYSGXQUK.cjs} +7 -7
  176. package/dist/{chunk-H4LGWZMH.cjs → chunk-GBKUGKIY.cjs} +11 -11
  177. package/dist/{chunk-J2HZTJO6.js → chunk-GUZ2DNDC.js} +3 -3
  178. package/dist/{chunk-K6F25JXT.js → chunk-GZCU6HXD.js} +2 -2
  179. package/dist/{chunk-USQ43DJ5.js → chunk-HFUHQUPQ.js} +2 -2
  180. package/dist/{chunk-7JN6FJ55.js → chunk-HU7T64Y3.js} +2 -2
  181. package/dist/{chunk-X5GCOMC3.cjs → chunk-IDJCFYPP.cjs} +15 -15
  182. package/dist/{chunk-KD4YYIIO.cjs → chunk-IHK2FRTS.cjs} +2 -2
  183. package/dist/{chunk-Q5SZIU7Z.cjs → chunk-JFQ53MO4.cjs} +1 -1
  184. package/dist/{chunk-7PQJCLIR.js → chunk-KMG7OMOS.js} +2 -2
  185. package/dist/{chunk-2HQCUBA7.cjs → chunk-L27C5O4W.cjs} +4 -4
  186. package/dist/chunk-LFTCK2VM.cjs +1194 -0
  187. package/dist/{chunk-BVQ77VRY.js → chunk-LI4XJTEA.js} +3 -3
  188. package/dist/{chunk-45VJGBGN.js → chunk-LQLOOUS3.js} +2 -2
  189. package/dist/{chunk-PL6DRFUO.cjs → chunk-MOMLQP7B.cjs} +2 -2
  190. package/dist/{chunk-OF7JIYBY.cjs → chunk-MYHBC3HA.cjs} +2 -2
  191. package/dist/{chunk-LKK2AA7W.js → chunk-MYRLCN6V.js} +2 -2
  192. package/dist/{chunk-ZKE73UQF.cjs → chunk-N2BTMKF2.cjs} +5 -5
  193. package/dist/{chunk-6ZXQJRAT.cjs → chunk-N2COYOXE.cjs} +155 -29
  194. package/dist/{chunk-2TL37AP5.cjs → chunk-N3OLFKV5.cjs} +1 -1
  195. package/dist/{chunk-5JSDQ6QQ.cjs → chunk-NDO22RER.cjs} +2 -2
  196. package/dist/{chunk-ME5BZ2WA.js → chunk-NE7IUGMK.js} +3 -3
  197. package/dist/{chunk-F6RYCBQG.js → chunk-NFXHIO3G.js} +1 -1
  198. package/dist/chunk-NJCHFXGC.js +1170 -0
  199. package/dist/chunk-NT6CJYI3.cjs +129 -0
  200. package/dist/chunk-O43DOE7V.js +106 -0
  201. package/dist/{chunk-GNEZD7KE.cjs → chunk-O4BOBOYV.cjs} +2 -2
  202. package/dist/{chunk-XSN4TLN5.cjs → chunk-OGPDCBPD.cjs} +12 -12
  203. package/dist/{chunk-6YQTMI55.js → chunk-OHFZ7L4T.js} +2 -2
  204. package/dist/{chunk-7IYKKLV3.js → chunk-OHIFKN4E.js} +4 -4
  205. package/dist/{chunk-46VXFTEC.js → chunk-OQU3TJCF.js} +3 -3
  206. package/dist/{chunk-5TKC6IEN.js → chunk-PEJLXJQD.js} +1 -1
  207. package/dist/{chunk-HWFM4MAT.js → chunk-PKHITACT.js} +2 -2
  208. package/dist/{chunk-JCEHZ336.js → chunk-PNZJFLMY.js} +3 -3
  209. package/dist/{chunk-XRR3CYQL.js → chunk-QP7RXZES.js} +2 -2
  210. package/dist/{chunk-5MN3PMF4.cjs → chunk-QY76WTO5.cjs} +9 -9
  211. package/dist/{chunk-FGW5GJ22.cjs → chunk-R74TZKJS.cjs} +4 -4
  212. package/dist/{chunk-TGL5BGMR.js → chunk-REMJWNAT.js} +4 -4
  213. package/dist/{chunk-3YJU3D5S.cjs → chunk-RIUDYPRB.cjs} +62 -13
  214. package/dist/{chunk-SWBWZIL4.cjs → chunk-S6OKX4H7.cjs} +2 -2
  215. package/dist/{chunk-EC4WGEAJ.js → chunk-SABWUELE.js} +2 -2
  216. package/dist/{chunk-TEEFR2FD.js → chunk-SFAGHPBT.js} +62 -13
  217. package/dist/{chunk-QKQHZIF3.cjs → chunk-SG42F5VB.cjs} +2 -2
  218. package/dist/{chunk-5C2AI2SD.js → chunk-SQIWPU6V.js} +2 -2
  219. package/dist/{chunk-5DKRY67M.cjs → chunk-SYWTT5TY.cjs} +5 -5
  220. package/dist/{chunk-OBEKX4VR.js → chunk-TVUBGXWA.js} +2 -2
  221. package/dist/{chunk-7PNJI5UE.cjs → chunk-U2H4DRMV.cjs} +2 -2
  222. package/dist/{chunk-HKF2V5MM.cjs → chunk-VAXWWJJP.cjs} +9 -9
  223. package/dist/{chunk-5H5YP2TB.js → chunk-VNNQYJLT.js} +3 -3
  224. package/dist/{chunk-KGSADAOD.cjs → chunk-VSUMJX6Z.cjs} +2 -2
  225. package/dist/{chunk-K5IGFBDR.js → chunk-W5CJC7S7.js} +3 -3
  226. package/dist/{chunk-AXZ7ELMA.js → chunk-WEJKY3DF.js} +2 -2
  227. package/dist/{chunk-GIZU3H6H.js → chunk-WXWFMWWF.js} +3 -3
  228. package/dist/{chunk-UKS23N3L.js → chunk-XVP7IKLZ.js} +4 -4
  229. package/dist/{chunk-ELNT3CFO.js → chunk-Y5F7ZTBH.js} +2 -2
  230. package/dist/{chunk-QCILPZWP.js → chunk-YJEXAO2I.js} +2 -2
  231. package/dist/{chunk-7ABFUIOB.cjs → chunk-YNCDTKAE.cjs} +2 -2
  232. package/dist/{chunk-K7FV7W6U.cjs → chunk-YSCIMHOI.cjs} +5 -5
  233. package/dist/{chunk-BPOOVO5T.js → chunk-YSXD344H.js} +5 -5
  234. package/dist/{chunk-47VG2P34.js → chunk-YT5NLCRC.js} +1 -1
  235. package/dist/{chunk-R2TEDH2F.cjs → chunk-YU5JK247.cjs} +135 -17
  236. package/dist/{chunk-HZSIUOCN.cjs → chunk-YUKXNWVE.cjs} +1 -1
  237. package/dist/{chunk-65FIH5A3.js → chunk-YVTLHTG6.js} +2 -2
  238. package/dist/{chunk-GENABQYA.cjs → chunk-Z4PZ2ZHI.cjs} +2 -2
  239. package/dist/{chunk-6HMTV6P4.cjs → chunk-ZPKHGKVL.cjs} +4 -4
  240. package/dist/{chunk-AAGF7K3L.js → chunk-ZPP7LTHP.js} +3 -3
  241. package/dist/{chunk-IZOHYJUQ.cjs → chunk-ZWCDB5PP.cjs} +2 -2
  242. package/dist/index.cjs +214 -191
  243. package/dist/index.d.cts +3 -1
  244. package/dist/index.d.ts +3 -1
  245. package/dist/index.js +49 -46
  246. package/dist/styles.css +715 -175
  247. package/dist/{tokens-BIIUTPKN.css → tokens-EF34LSWI.css} +42 -17
  248. package/dist/tokens.css +42 -17
  249. package/docs/llms/surface.md +90 -0
  250. package/docs/llms/theme.md +24 -2
  251. package/docs/llms/themepanel.md +128 -0
  252. package/docs/llms/tooltip.md +1 -0
  253. package/docs/llms/typography.md +12 -2
  254. package/docs/llms.md +3 -1
  255. package/package.json +1 -1
@@ -1,9 +1,11 @@
1
- import { Icon } from './chunk-47VG2P34.js';
2
- import './tokens-BIIUTPKN.css';
1
+ import { useFloating } from './chunk-DUFRASGO.js';
2
+ import { Icon } from './chunk-YT5NLCRC.js';
3
+ import './tokens-EF34LSWI.css';
3
4
  import './shared-NJHRNLRH.css';
4
- import './Typography-NKPWTJCV.css';
5
+ import './Typography-32QQLD4F.css';
5
6
  import * as React from 'react';
6
- import { jsx, jsxs } from 'react/jsx-runtime';
7
+ import { createPortal } from 'react-dom';
8
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
7
9
 
8
10
  function toText(node) {
9
11
  if (node == null || node === false) return "";
@@ -31,6 +33,122 @@ function buildClass(props, base, extra) {
31
33
  props.className
32
34
  ].filter(Boolean).join(" ");
33
35
  }
36
+ function assignRef(ref, value) {
37
+ if (!ref) return;
38
+ if (typeof ref === "function") {
39
+ ref(value);
40
+ return;
41
+ }
42
+ ref.current = value;
43
+ }
44
+ var EllipsisTooltip = React.forwardRef(({ content, children }, forwardedRef) => {
45
+ const [open, setOpen] = React.useState(false);
46
+ const openTimerRef = React.useRef();
47
+ const closeTimerRef = React.useRef();
48
+ const childRef = children.ref;
49
+ const {
50
+ triggerRef,
51
+ floatingRef,
52
+ floatingStyle,
53
+ placement
54
+ } = useFloating({
55
+ open,
56
+ placement: "top",
57
+ panelWidth: 360,
58
+ panelHeight: 96,
59
+ alignCross: "center"
60
+ });
61
+ React.useEffect(() => {
62
+ return () => {
63
+ window.clearTimeout(openTimerRef.current);
64
+ window.clearTimeout(closeTimerRef.current);
65
+ };
66
+ }, []);
67
+ const show = React.useCallback(() => {
68
+ window.clearTimeout(closeTimerRef.current);
69
+ if (open || openTimerRef.current != null) return;
70
+ openTimerRef.current = window.setTimeout(() => {
71
+ openTimerRef.current = void 0;
72
+ setOpen(true);
73
+ }, 250);
74
+ }, [open]);
75
+ const hide = React.useCallback(() => {
76
+ window.clearTimeout(openTimerRef.current);
77
+ openTimerRef.current = void 0;
78
+ window.clearTimeout(closeTimerRef.current);
79
+ closeTimerRef.current = window.setTimeout(() => setOpen(false), 300);
80
+ }, []);
81
+ const setTriggerRef = React.useCallback(
82
+ (node) => {
83
+ triggerRef.current = node;
84
+ assignRef(forwardedRef, node);
85
+ assignRef(childRef, node);
86
+ },
87
+ [childRef, forwardedRef, triggerRef]
88
+ );
89
+ const childProps = children.props;
90
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
91
+ React.cloneElement(children, {
92
+ ref: setTriggerRef,
93
+ onMouseEnter: (event) => {
94
+ childProps.onMouseEnter?.(event);
95
+ show();
96
+ },
97
+ onMouseOver: (event) => {
98
+ childProps.onMouseOver?.(event);
99
+ show();
100
+ },
101
+ onMouseMove: (event) => {
102
+ childProps.onMouseMove?.(event);
103
+ show();
104
+ },
105
+ onMouseLeave: (event) => {
106
+ childProps.onMouseLeave?.(event);
107
+ hide();
108
+ },
109
+ onPointerEnter: (event) => {
110
+ childProps.onPointerEnter?.(event);
111
+ show();
112
+ },
113
+ onPointerMove: (event) => {
114
+ childProps.onPointerMove?.(event);
115
+ show();
116
+ },
117
+ onPointerLeave: (event) => {
118
+ childProps.onPointerLeave?.(event);
119
+ hide();
120
+ },
121
+ onFocus: (event) => {
122
+ childProps.onFocus?.(event);
123
+ show();
124
+ },
125
+ onBlur: (event) => {
126
+ childProps.onBlur?.(event);
127
+ hide();
128
+ }
129
+ }),
130
+ open && typeof document !== "undefined" && createPortal(
131
+ /* @__PURE__ */ jsx(
132
+ "div",
133
+ {
134
+ ref: floatingRef,
135
+ className: `typo-ellipsis-tooltip ${placement}`,
136
+ style: floatingStyle,
137
+ role: "tooltip",
138
+ onMouseEnter: show,
139
+ onMouseMove: show,
140
+ onMouseLeave: hide,
141
+ onPointerEnter: show,
142
+ onPointerMove: show,
143
+ onPointerLeave: hide,
144
+ children: content
145
+ }
146
+ ),
147
+ document.body
148
+ )
149
+ ] });
150
+ });
151
+ EllipsisTooltip.displayName = "Typography.EllipsisTooltip";
34
152
  var CopyAction = ({ config, fallbackText }) => {
35
153
  const [copied, setCopied] = React.useState(false);
36
154
  const timerRef = React.useRef(null);
@@ -230,7 +348,7 @@ function useTypographyBody(props) {
230
348
  }
231
349
  );
232
350
  }
233
- const titleAttr = wantClamp && ellConf.tooltip ? typeof ellConf.tooltip === "string" ? ellConf.tooltip : fallbackText : void 0;
351
+ const tooltipContent = wantClamp && !expanded && ellConf.tooltip ? ellConf.tooltip === true ? fallbackText : ellConf.tooltip : void 0;
234
352
  return {
235
353
  editing,
236
354
  editConf,
@@ -243,7 +361,7 @@ function useTypographyBody(props) {
243
361
  expandNode,
244
362
  style,
245
363
  extraCls,
246
- titleAttr
364
+ tooltipContent
247
365
  };
248
366
  }
249
367
  var Title = React.forwardRef((props, ref) => {
@@ -271,13 +389,12 @@ var Title = React.forwardRef((props, ref) => {
271
389
  }
272
390
  );
273
391
  }
274
- return /* @__PURE__ */ jsxs(
392
+ const element = /* @__PURE__ */ jsxs(
275
393
  Tag,
276
394
  {
277
395
  ref,
278
396
  className: buildClass(rest, `typo typo-title h${level}`, body.extraCls),
279
397
  style: body.style,
280
- title: body.titleAttr,
281
398
  children: [
282
399
  body.inner,
283
400
  body.expandNode,
@@ -286,6 +403,7 @@ var Title = React.forwardRef((props, ref) => {
286
403
  ]
287
404
  }
288
405
  );
406
+ return body.tooltipContent ? /* @__PURE__ */ jsx(EllipsisTooltip, { ref, content: body.tooltipContent, children: element }) : element;
289
407
  });
290
408
  Title.displayName = "Typography.Title";
291
409
  var Text = React.forwardRef((props, ref) => {
@@ -313,13 +431,12 @@ var Text = React.forwardRef((props, ref) => {
313
431
  }
314
432
  );
315
433
  }
316
- return /* @__PURE__ */ jsxs(
434
+ const element = /* @__PURE__ */ jsxs(
317
435
  Tag,
318
436
  {
319
437
  ref,
320
438
  className: buildClass(rest, "typo typo-text", body.extraCls),
321
439
  style: body.style,
322
- title: body.titleAttr,
323
440
  children: [
324
441
  body.inner,
325
442
  body.expandNode,
@@ -328,6 +445,7 @@ var Text = React.forwardRef((props, ref) => {
328
445
  ]
329
446
  }
330
447
  );
448
+ return body.tooltipContent ? /* @__PURE__ */ jsx(EllipsisTooltip, { ref, content: body.tooltipContent, children: element }) : element;
331
449
  });
332
450
  Text.displayName = "Typography.Text";
333
451
  var Paragraph = React.forwardRef(
@@ -354,13 +472,12 @@ var Paragraph = React.forwardRef(
354
472
  }
355
473
  );
356
474
  }
357
- return /* @__PURE__ */ jsxs(
475
+ const element = /* @__PURE__ */ jsxs(
358
476
  "p",
359
477
  {
360
478
  ref,
361
479
  className: buildClass(props, "typo typo-paragraph", body.extraCls),
362
480
  style: body.style,
363
- title: body.titleAttr,
364
481
  children: [
365
482
  body.inner,
366
483
  body.expandNode,
@@ -369,6 +486,7 @@ var Paragraph = React.forwardRef(
369
486
  ]
370
487
  }
371
488
  );
489
+ return body.tooltipContent ? /* @__PURE__ */ jsx(EllipsisTooltip, { ref, content: body.tooltipContent, children: element }) : element;
372
490
  }
373
491
  );
374
492
  Paragraph.displayName = "Typography.Paragraph";
@@ -431,13 +549,12 @@ var Link = React.forwardRef(
431
549
  }
432
550
  );
433
551
  }
434
- return /* @__PURE__ */ jsxs(
552
+ const element = /* @__PURE__ */ jsxs(
435
553
  "a",
436
554
  {
437
555
  ref,
438
556
  className: buildClass(props, "typo typo-link", body.extraCls),
439
557
  style: body.style,
440
- title: body.titleAttr,
441
558
  target,
442
559
  rel: safeRel,
443
560
  "aria-disabled": disabled || void 0,
@@ -458,6 +575,7 @@ var Link = React.forwardRef(
458
575
  ]
459
576
  }
460
577
  );
578
+ return body.tooltipContent ? /* @__PURE__ */ jsx(EllipsisTooltip, { ref, content: body.tooltipContent, children: element }) : element;
461
579
  }
462
580
  );
463
581
  Link.displayName = "Typography.Link";
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkV272XR3F_cjs = require('./chunk-V272XR3F.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('./Textarea-YNET7IBH.css');
6
+ require('./Textarea-YHWKHIFE.css');
7
7
  var React = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
@@ -86,7 +86,7 @@ var Textarea = React__namespace.forwardRef(
86
86
  tabIndex: -1,
87
87
  onMouseDown: (e) => e.preventDefault(),
88
88
  onClick: handleClear,
89
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "x", size: 12 })
89
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk6LARTGLP_cjs.Icon, { name: "x", size: 12 })
90
90
  }
91
91
  )
92
92
  ] });
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkYB3IWIOJ_cjs = require('./chunk-YB3IWIOJ.cjs');
4
- var chunkHKF2V5MM_cjs = require('./chunk-HKF2V5MM.cjs');
5
- require('./tokens-BIIUTPKN.css');
4
+ var chunkVAXWWJJP_cjs = require('./chunk-VAXWWJJP.cjs');
5
+ require('./tokens-EF34LSWI.css');
6
6
  require('./shared-NJHRNLRH.css');
7
- require('./AutoComplete-P5KZMZO5.css');
7
+ require('./AutoComplete-4YZBMW4E.css');
8
8
  var React = require('react');
9
9
  var reactDom = require('react-dom');
10
10
  var jsxRuntime = require('react/jsx-runtime');
@@ -168,7 +168,7 @@ var AutoComplete = React__namespace.forwardRef(
168
168
  ) : null;
169
169
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: triggerRef, className: `autocomplete ${className}`, children: [
170
170
  /* @__PURE__ */ jsxRuntime.jsx(
171
- chunkHKF2V5MM_cjs.Input,
171
+ chunkVAXWWJJP_cjs.Input,
172
172
  {
173
173
  ref,
174
174
  ...rest,
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkHKF2V5MM_cjs = require('./chunk-HKF2V5MM.cjs');
4
- var chunkV272XR3F_cjs = require('./chunk-V272XR3F.cjs');
5
- require('./tokens-BIIUTPKN.css');
3
+ var chunkVAXWWJJP_cjs = require('./chunk-VAXWWJJP.cjs');
4
+ var chunk6LARTGLP_cjs = require('./chunk-6LARTGLP.cjs');
5
+ require('./tokens-EF34LSWI.css');
6
6
  require('./shared-NJHRNLRH.css');
7
7
  require('./InputNumber-VXQIWLQC.css');
8
8
  var React = require('react');
@@ -117,7 +117,7 @@ var InputNumber = React__namespace.forwardRef(
117
117
  disabled: upDisabled,
118
118
  onMouseDown: (e) => e.preventDefault(),
119
119
  onClick: () => increment(step),
120
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevUp", size: 10, stroke: 2.5 })
120
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk6LARTGLP_cjs.Icon, { name: "chevUp", size: 10, stroke: 2.5 })
121
121
  }
122
122
  ),
123
123
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -129,7 +129,7 @@ var InputNumber = React__namespace.forwardRef(
129
129
  disabled: downDisabled,
130
130
  onMouseDown: (e) => e.preventDefault(),
131
131
  onClick: () => increment(-step),
132
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkV272XR3F_cjs.Icon, { name: "chevDown", size: 10, stroke: 2.5 })
132
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk6LARTGLP_cjs.Icon, { name: "chevDown", size: 10, stroke: 2.5 })
133
133
  }
134
134
  )
135
135
  ] }) : null;
@@ -138,7 +138,7 @@ var InputNumber = React__namespace.forwardRef(
138
138
  stepperSuffix
139
139
  ] }) : stepperSuffix ?? suffix;
140
140
  return /* @__PURE__ */ jsxRuntime.jsx(
141
- chunkHKF2V5MM_cjs.Input,
141
+ chunkVAXWWJJP_cjs.Input,
142
142
  {
143
143
  ref,
144
144
  id,
@@ -0,0 +1,194 @@
1
+ 'use strict';
2
+
3
+ // src/components/Theme/presets.ts
4
+ var LUMINA_THEME_PRESETS = {
5
+ light: {
6
+ base: "light",
7
+ accent: "sky",
8
+ density: "comfortable",
9
+ intensity: 5,
10
+ radius: 20,
11
+ font: "sf",
12
+ tokens: {
13
+ bg: "#e8eef5",
14
+ "bg-raised": "#edf2f8",
15
+ "bg-sunken": "#dde4ed",
16
+ fg: "#3a4558",
17
+ "fg-muted": "#7b8599",
18
+ "fg-subtle": "#9ca7ba",
19
+ border: "rgba(130, 148, 175, 0.14)",
20
+ divider: "rgba(130, 148, 175, 0.18)",
21
+ "shadow-dark": "rgba(163, 177, 198, 0.55)",
22
+ "shadow-light": "rgba(255, 255, 255, 0.95)",
23
+ "shadow-scale": "1",
24
+ "shadow-float-scale": "1"
25
+ }
26
+ },
27
+ dark: {
28
+ base: "dark",
29
+ accent: "sky",
30
+ density: "comfortable",
31
+ intensity: 5,
32
+ radius: 20,
33
+ font: "sf",
34
+ tokens: {
35
+ bg: "#1b2030",
36
+ "bg-raised": "#242a3c",
37
+ "bg-sunken": "#151a27",
38
+ fg: "#d8deeb",
39
+ "fg-muted": "#8b94ab",
40
+ "fg-subtle": "#5f6a82",
41
+ border: "rgba(0, 0, 0, 0.35)",
42
+ divider: "rgba(255, 255, 255, 0.06)",
43
+ "shadow-dark": "rgba(0, 0, 0, 0.55)",
44
+ "shadow-light": "rgba(130, 145, 180, 0.06)",
45
+ "shadow-scale": "1",
46
+ "shadow-float-scale": "1"
47
+ }
48
+ },
49
+ porcelain: {
50
+ base: "light",
51
+ accent: {
52
+ accent: "oklch(66% 0.14 175)",
53
+ ink: "oklch(39% 0.11 175)",
54
+ soft: "oklch(92% 0.04 175)",
55
+ glow: "oklch(66% 0.14 175 / 0.32)"
56
+ },
57
+ density: "comfortable",
58
+ intensity: 6,
59
+ radius: 24,
60
+ font: "sf",
61
+ tokens: {
62
+ bg: "#edf3f1",
63
+ "bg-raised": "#f5faf8",
64
+ "bg-sunken": "#dfe8e5",
65
+ fg: "#33434a",
66
+ "fg-muted": "#75868c",
67
+ "fg-subtle": "#9aa8ad",
68
+ border: "rgba(101, 134, 139, 0.13)",
69
+ divider: "rgba(101, 134, 139, 0.18)",
70
+ "shadow-dark": "rgba(143, 163, 168, 0.45)",
71
+ "shadow-light": "rgba(255, 255, 255, 0.96)",
72
+ "shadow-scale": "1",
73
+ "shadow-float-scale": "1"
74
+ }
75
+ },
76
+ graphite: {
77
+ base: "dark",
78
+ accent: {
79
+ accent: "oklch(72% 0.13 190)",
80
+ ink: "oklch(85% 0.1 190)",
81
+ soft: "oklch(31% 0.05 190)",
82
+ glow: "oklch(72% 0.13 190 / 0.18)"
83
+ },
84
+ intensity: 4,
85
+ radius: 18,
86
+ tokens: {
87
+ bg: "#181b22",
88
+ "bg-raised": "#20242d",
89
+ "bg-sunken": "#11141a",
90
+ fg: "#edf1f7",
91
+ "fg-muted": "#a3adbd",
92
+ "fg-subtle": "#667285",
93
+ border: "rgba(255, 255, 255, 0.07)",
94
+ divider: "rgba(255, 255, 255, 0.08)",
95
+ "shadow-dark": "rgba(0, 0, 0, 0.58)",
96
+ "shadow-light": "rgba(128, 146, 166, 0.07)",
97
+ "shadow-scale": "1",
98
+ "shadow-float-scale": "1"
99
+ }
100
+ },
101
+ ember: {
102
+ base: "dark",
103
+ accent: {
104
+ accent: "oklch(76% 0.15 62)",
105
+ ink: "oklch(86% 0.11 62)",
106
+ soft: "oklch(34% 0.07 62)",
107
+ glow: "oklch(76% 0.15 62 / 0.18)"
108
+ },
109
+ intensity: 5,
110
+ radius: 16,
111
+ tokens: {
112
+ bg: "#201a18",
113
+ "bg-raised": "#2a221f",
114
+ "bg-sunken": "#171211",
115
+ fg: "#f0e7df",
116
+ "fg-muted": "#b09f93",
117
+ "fg-subtle": "#78695f",
118
+ border: "rgba(255, 233, 212, 0.08)",
119
+ divider: "rgba(255, 233, 212, 0.09)",
120
+ "shadow-dark": "rgba(0, 0, 0, 0.54)",
121
+ "shadow-light": "rgba(232, 172, 118, 0.07)",
122
+ "shadow-scale": "1",
123
+ "shadow-float-scale": "1"
124
+ }
125
+ },
126
+ assistant: {
127
+ base: "light",
128
+ accent: {
129
+ accent: "#646cff",
130
+ ink: "#4f56d8",
131
+ soft: "rgba(100, 108, 255, 0.12)",
132
+ glow: "rgba(100, 108, 255, 0.26)"
133
+ },
134
+ density: "comfortable",
135
+ intensity: 4,
136
+ radius: 16,
137
+ font: "system",
138
+ tokens: {
139
+ bg: "#e6eaf4",
140
+ "bg-raised": "#f9f9f9",
141
+ "bg-sunken": "#d7dce8",
142
+ fg: "#213547",
143
+ "fg-muted": "#68768a",
144
+ "fg-subtle": "#9aa6b8",
145
+ border: "rgba(240, 247, 255, 0.72)",
146
+ divider: "rgba(33, 53, 71, 0.12)",
147
+ "shadow-dark": "#d1d5de",
148
+ "shadow-light": "#fbffff",
149
+ "shadow-scale": "1",
150
+ "shadow-float-scale": "1"
151
+ }
152
+ },
153
+ assistantDark: {
154
+ base: "dark",
155
+ accent: {
156
+ accent: "#818cf8",
157
+ ink: "#c4c9ff",
158
+ soft: "rgba(129, 140, 248, 0.17)",
159
+ glow: "rgba(129, 140, 248, 0.18)"
160
+ },
161
+ density: "comfortable",
162
+ intensity: 4,
163
+ radius: 16,
164
+ font: "system",
165
+ tokens: {
166
+ bg: "#2a2a36",
167
+ "bg-raised": "#33333f",
168
+ "bg-sunken": "#20202b",
169
+ fg: "#d4d7e0",
170
+ "fg-muted": "#9ca1b0",
171
+ "fg-subtle": "#6f7484",
172
+ border: "#3e4455",
173
+ divider: "rgba(255, 255, 255, 0.08)",
174
+ "shadow-dark": "#1a1a24",
175
+ "shadow-light": "#3a3a46",
176
+ "shadow-scale": "1",
177
+ "shadow-float-scale": "1"
178
+ }
179
+ }
180
+ };
181
+ function cloneLuminaThemePreset(key) {
182
+ const preset = LUMINA_THEME_PRESETS[key];
183
+ return {
184
+ ...preset,
185
+ accent: typeof preset.accent === "object" ? { ...preset.accent } : preset.accent,
186
+ tokens: { ...preset.tokens }
187
+ };
188
+ }
189
+ function pickLuminaThemePresets(keys) {
190
+ return Object.fromEntries(keys.map((key) => [key, cloneLuminaThemePreset(key)]));
191
+ }
192
+
193
+ exports.cloneLuminaThemePreset = cloneLuminaThemePreset;
194
+ exports.pickLuminaThemePresets = pickLuminaThemePresets;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- require('./tokens-BIIUTPKN.css');
3
+ require('./tokens-EF34LSWI.css');
4
4
  require('./shared-NJHRNLRH.css');
5
- require('./Switch-36KJNDXM.css');
5
+ require('./Switch-COAQIOMH.css');
6
6
  var React = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('./tokens-BIIUTPKN.css');
3
+ require('./tokens-EF34LSWI.css');
4
4
  require('./shared-NJHRNLRH.css');
5
5
  var React = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');