@fangxinyan/lumina 0.6.0 → 0.6.2

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 (460) hide show
  1. package/dist/Alert.cjs +3 -5
  2. package/dist/Alert.js +2 -4
  3. package/dist/AppShell.cjs +5 -7
  4. package/dist/AppShell.js +1 -3
  5. package/dist/AutoComplete.cjs +6 -7
  6. package/dist/AutoComplete.d.cts +1 -1
  7. package/dist/AutoComplete.d.ts +1 -1
  8. package/dist/AutoComplete.js +5 -6
  9. package/dist/Avatar.cjs +2 -4
  10. package/dist/Avatar.js +1 -3
  11. package/dist/Badge-DPGLV3D3.css +22 -0
  12. package/dist/Badge.cjs +10 -0
  13. package/dist/Badge.d.cts +18 -0
  14. package/dist/Badge.d.ts +18 -0
  15. package/dist/Badge.js +1 -0
  16. package/dist/Button.cjs +3 -9
  17. package/dist/Button.d.cts +5 -10
  18. package/dist/Button.d.ts +5 -10
  19. package/dist/Button.js +2 -4
  20. package/dist/Calendar.cjs +3 -5
  21. package/dist/Calendar.js +2 -4
  22. package/dist/{Card-RG7ECXL2.css → Card-6RMVIHWX.css} +7 -13
  23. package/dist/Card.cjs +2 -8
  24. package/dist/Card.d.cts +7 -11
  25. package/dist/Card.d.ts +7 -11
  26. package/dist/Card.js +1 -3
  27. package/dist/{Cascader-VSYEKQCG.css → Cascader-C2DFSMKJ.css} +64 -0
  28. package/dist/Cascader.cjs +6 -6
  29. package/dist/Cascader.d.cts +18 -2
  30. package/dist/Cascader.d.ts +18 -2
  31. package/dist/Cascader.js +5 -5
  32. package/dist/{Checkbox-SKJATVSN.css → Checkbox-U5EUDSYS.css} +5 -35
  33. package/dist/Checkbox.cjs +3 -9
  34. package/dist/Checkbox.d.cts +1 -18
  35. package/dist/Checkbox.d.ts +1 -18
  36. package/dist/Checkbox.js +2 -4
  37. package/dist/Collapse-66U5YJFY.css +53 -0
  38. package/dist/Collapse.cjs +11 -0
  39. package/dist/Collapse.d.cts +32 -0
  40. package/dist/Collapse.d.ts +32 -0
  41. package/dist/Collapse.js +2 -0
  42. package/dist/ColorPicker.cjs +3 -5
  43. package/dist/ColorPicker.js +2 -4
  44. package/dist/CommandPalette.cjs +5 -6
  45. package/dist/CommandPalette.js +4 -5
  46. package/dist/ContextMenu.cjs +2 -4
  47. package/dist/ContextMenu.js +1 -3
  48. package/dist/Divider.cjs +2 -4
  49. package/dist/Divider.js +1 -3
  50. package/dist/Drawer.cjs +3 -5
  51. package/dist/Drawer.js +2 -4
  52. package/dist/Empty-DC2LPORC.css +28 -0
  53. package/dist/Empty.cjs +2 -12
  54. package/dist/Empty.d.cts +1 -62
  55. package/dist/Empty.d.ts +1 -62
  56. package/dist/Empty.js +1 -3
  57. package/dist/Form.cjs +4 -6
  58. package/dist/Form.d.cts +1 -1
  59. package/dist/Form.d.ts +1 -1
  60. package/dist/Form.js +1 -3
  61. package/dist/Icon.cjs +179 -5
  62. package/dist/Icon.d.cts +96 -3
  63. package/dist/Icon.d.ts +96 -3
  64. package/dist/Icon.js +1 -3
  65. package/dist/Image.cjs +4 -6
  66. package/dist/Image.js +2 -4
  67. package/dist/{Input-33CAH4O6.css → Input-3G4ONWNU.css} +15 -42
  68. package/dist/Input.cjs +6 -7
  69. package/dist/Input.d.cts +19 -23
  70. package/dist/Input.d.ts +19 -23
  71. package/dist/Input.js +3 -4
  72. package/dist/InputNumber.cjs +5 -6
  73. package/dist/InputNumber.d.cts +1 -1
  74. package/dist/InputNumber.d.ts +1 -1
  75. package/dist/InputNumber.js +4 -5
  76. package/dist/List.cjs +2 -4
  77. package/dist/List.js +1 -3
  78. package/dist/Message-2MZ3LFPU.css +45 -0
  79. package/dist/Message.cjs +23 -0
  80. package/dist/Message.d.cts +54 -0
  81. package/dist/Message.d.ts +54 -0
  82. package/dist/Message.js +2 -0
  83. package/dist/{Modal-XSDMU4XJ.css → Modal-2QNDW4SO.css} +27 -0
  84. package/dist/Modal.cjs +4 -6
  85. package/dist/Modal.d.cts +28 -4
  86. package/dist/Modal.d.ts +28 -4
  87. package/dist/Modal.js +3 -5
  88. package/dist/Pagination.cjs +8 -8
  89. package/dist/Pagination.js +7 -7
  90. package/dist/Popover.cjs +3 -5
  91. package/dist/Popover.d.cts +11 -3
  92. package/dist/Popover.d.ts +11 -3
  93. package/dist/Popover.js +2 -4
  94. package/dist/Progress.cjs +2 -4
  95. package/dist/Progress.js +1 -3
  96. package/dist/Radio-GVFDPAZM.css +97 -0
  97. package/dist/Radio.cjs +14 -0
  98. package/dist/Radio.d.cts +36 -0
  99. package/dist/Radio.d.ts +36 -0
  100. package/dist/Radio.js +1 -0
  101. package/dist/{Select-J3CCVFJ7.css → Select-JVBQAZBG.css} +7 -23
  102. package/dist/Select.cjs +7 -7
  103. package/dist/Select.d.cts +25 -4
  104. package/dist/Select.d.ts +25 -4
  105. package/dist/Select.js +6 -6
  106. package/dist/Skeleton-CVWH2VWN.css +40 -0
  107. package/dist/Skeleton.cjs +10 -0
  108. package/dist/Skeleton.d.cts +30 -0
  109. package/dist/Skeleton.d.ts +30 -0
  110. package/dist/Skeleton.js +1 -0
  111. package/dist/Slider.cjs +2 -4
  112. package/dist/Slider.js +1 -3
  113. package/dist/Spin-3GJNMSIH.css +94 -0
  114. package/dist/Spin.cjs +10 -0
  115. package/dist/Spin.d.cts +20 -0
  116. package/dist/Spin.d.ts +20 -0
  117. package/dist/Spin.js +1 -0
  118. package/dist/Splitter.cjs +2 -4
  119. package/dist/Splitter.js +1 -3
  120. package/dist/StatusBar.cjs +3 -5
  121. package/dist/StatusBar.js +1 -3
  122. package/dist/Switch.cjs +2 -4
  123. package/dist/Switch.js +1 -3
  124. package/dist/{Table-2LPTOUIR.css → Table-ATJJQLKU.css} +0 -53
  125. package/dist/Table.cjs +10 -14
  126. package/dist/Table.d.cts +2 -21
  127. package/dist/Table.d.ts +2 -21
  128. package/dist/Table.js +9 -9
  129. package/dist/TablePro-3XVHYLSL.css +45 -0
  130. package/dist/TablePro.cjs +19 -0
  131. package/dist/TablePro.d.cts +21 -0
  132. package/dist/TablePro.d.ts +21 -0
  133. package/dist/TablePro.js +10 -0
  134. package/dist/{Tabs-RHK6XAFF.css → Tabs-BLSNI2T5.css} +0 -34
  135. package/dist/Tabs.cjs +2 -8
  136. package/dist/Tabs.d.cts +1 -16
  137. package/dist/Tabs.d.ts +1 -16
  138. package/dist/Tabs.js +1 -3
  139. package/dist/Tag-LB3OOJAO.css +29 -0
  140. package/dist/Tag.cjs +3 -9
  141. package/dist/Tag.d.cts +1 -11
  142. package/dist/Tag.d.ts +1 -11
  143. package/dist/Tag.js +2 -4
  144. package/dist/Textarea-YNET7IBH.css +54 -0
  145. package/dist/Textarea.cjs +15 -0
  146. package/dist/Textarea.d.cts +25 -0
  147. package/dist/Textarea.d.ts +25 -0
  148. package/dist/Textarea.js +2 -0
  149. package/dist/Theme.cjs +10 -12
  150. package/dist/Theme.js +1 -3
  151. package/dist/{Timeline-RHZAZKZ7.css → Timeline-3ZHOHPXT.css} +2 -2
  152. package/dist/Timeline.cjs +3 -5
  153. package/dist/Timeline.d.cts +1 -1
  154. package/dist/Timeline.d.ts +1 -1
  155. package/dist/Timeline.js +2 -4
  156. package/dist/Tooltip.cjs +3 -5
  157. package/dist/Tooltip.d.cts +17 -4
  158. package/dist/Tooltip.d.ts +17 -4
  159. package/dist/Tooltip.js +2 -4
  160. package/dist/Typography.cjs +7 -9
  161. package/dist/Typography.js +2 -4
  162. package/dist/{chunk-74VZZAUT.cjs → chunk-2TL37AP5.cjs} +0 -2
  163. package/dist/{chunk-4DNHASZU.js → chunk-33NCTOEB.js} +1 -3
  164. package/dist/{chunk-KA3XLPQJ.cjs → chunk-35ZGBAA3.cjs} +3 -5
  165. package/dist/{chunk-IL523MTN.cjs → chunk-3AS5B7MQ.cjs} +13 -34
  166. package/dist/{chunk-ZA36BJIY.cjs → chunk-3YJU3D5S.cjs} +30 -9
  167. package/dist/chunk-45VJGBGN.js +25 -0
  168. package/dist/{chunk-JS6U7UQS.js → chunk-46VXFTEC.js} +3 -5
  169. package/dist/{chunk-V24B7KWT.cjs → chunk-4WTU5P3O.cjs} +3 -5
  170. package/dist/{chunk-3LJO33HI.js → chunk-5C2AI2SD.js} +0 -2
  171. package/dist/{chunk-FCIPCZAK.cjs → chunk-5JSDQ6QQ.cjs} +0 -2
  172. package/dist/{chunk-A3IJM7IX.js → chunk-5TKC6IEN.js} +4 -57
  173. package/dist/{chunk-JF2WNLPF.cjs → chunk-5WAXZJG5.cjs} +12 -21
  174. package/dist/{chunk-E6K6GYUC.js → chunk-65FIH5A3.js} +0 -2
  175. package/dist/chunk-6ACKL3WH.cjs +138 -0
  176. package/dist/{chunk-DCX36FYD.js → chunk-6BWELOCT.js} +0 -2
  177. package/dist/{chunk-WFFWVQK4.cjs → chunk-6LZ54NPO.cjs} +70 -76
  178. package/dist/{chunk-2LIX7ZHX.js → chunk-6YQTMI55.js} +0 -2
  179. package/dist/{chunk-SREMTSVI.cjs → chunk-7ABFUIOB.cjs} +0 -2
  180. package/dist/{chunk-2TZ2R7L2.js → chunk-7JN6FJ55.js} +0 -2
  181. package/dist/{chunk-DB5JMXOI.js → chunk-7NGMQIST.js} +2 -4
  182. package/dist/{chunk-Y7BZMMAV.cjs → chunk-7PNJI5UE.cjs} +0 -2
  183. package/dist/{chunk-KWE2PXJQ.js → chunk-7PQJCLIR.js} +0 -2
  184. package/dist/{chunk-5VIOJW6M.js → chunk-AWXCSX6J.js} +6 -26
  185. package/dist/chunk-AXZ7ELMA.js +41 -0
  186. package/dist/{chunk-XMINE4TN.cjs → chunk-B2KEZQ6S.cjs} +5 -7
  187. package/dist/chunk-CEJ7VBR6.js +283 -0
  188. package/dist/{chunk-ZPDMAMWC.js → chunk-CHMCL7AV.js} +1 -3
  189. package/dist/{chunk-MU4GGX6C.cjs → chunk-CUXV6QNN.cjs} +5 -7
  190. package/dist/{chunk-WLFMOWUY.js → chunk-CXWEOAVU.js} +1 -3
  191. package/dist/{chunk-D242UJZO.js → chunk-DQTSTJ6O.js} +3 -20
  192. package/dist/{chunk-ANAQER3T.js → chunk-DUFRASGO.js} +0 -2
  193. package/dist/{chunk-EARCKSI7.js → chunk-EC4WGEAJ.js} +0 -2
  194. package/dist/chunk-EIY7KEJ3.cjs +132 -0
  195. package/dist/{chunk-LSQD2GFA.js → chunk-EJBHR2P5.js} +3 -5
  196. package/dist/chunk-ELNT3CFO.js +64 -0
  197. package/dist/{chunk-ZN6VS6SO.js → chunk-EQEJTN3V.js} +3 -45
  198. package/dist/chunk-F6RYCBQG.js +25 -0
  199. package/dist/{chunk-S3OSBW7R.cjs → chunk-FBVVRTX2.cjs} +3 -46
  200. package/dist/chunk-FFZ6OMZI.js +110 -0
  201. package/dist/{chunk-MXIWTYNC.js → chunk-FJNWUELL.js} +3 -5
  202. package/dist/chunk-GENABQYA.cjs +47 -0
  203. package/dist/chunk-GMN74OEY.cjs +63 -0
  204. package/dist/{chunk-AXRABZLY.cjs → chunk-GNEZD7KE.cjs} +0 -2
  205. package/dist/chunk-GNEZQMKH.js +218 -0
  206. package/dist/{chunk-JAGJQDAV.cjs → chunk-HPFQXYKG.cjs} +159 -10
  207. package/dist/{chunk-XYGRVPUA.js → chunk-HWFM4MAT.js} +19 -9
  208. package/dist/{chunk-TC5ZL2OS.cjs → chunk-HZSIUOCN.cjs} +2 -57
  209. package/dist/{chunk-N6ZLZUBF.cjs → chunk-IZOHYJUQ.cjs} +0 -2
  210. package/dist/{chunk-6FSOJLY6.js → chunk-JD7A6VM3.js} +11 -19
  211. package/dist/chunk-K2KYM7LW.cjs +28 -0
  212. package/dist/{chunk-X3QINITU.js → chunk-K6F25JXT.js} +1 -3
  213. package/dist/{chunk-NRP3X3PE.cjs → chunk-KD4YYIIO.cjs} +1 -34
  214. package/dist/chunk-KGSADAOD.cjs +170 -0
  215. package/dist/{chunk-ZHCQEJ2Z.js → chunk-KLEKKZ73.js} +0 -2
  216. package/dist/{chunk-QRSPBK3X.js → chunk-LKK2AA7W.js} +0 -2
  217. package/dist/{chunk-V5KSJITO.cjs → chunk-MQV2XN4B.cjs} +5 -7
  218. package/dist/{chunk-2TNJ7TC4.cjs → chunk-MT7UWY6T.cjs} +2 -4
  219. package/dist/chunk-MUXP7ASL.js +26 -0
  220. package/dist/{chunk-W6I67HQQ.js → chunk-NN25YMOL.js} +0 -2
  221. package/dist/{chunk-474MXYO5.cjs → chunk-NTS5L4NQ.cjs} +3 -5
  222. package/dist/{chunk-CVEGVB2C.js → chunk-OBEKX4VR.js} +2 -34
  223. package/dist/chunk-OF3SGLZY.js +385 -0
  224. package/dist/{chunk-6TRVGFFX.cjs → chunk-OF7JIYBY.cjs} +2 -4
  225. package/dist/chunk-ON4DEDMI.js +113 -0
  226. package/dist/chunk-OQBDU5I2.cjs +104 -0
  227. package/dist/{chunk-ZM4P6ELG.cjs → chunk-OYMJVU66.cjs} +50 -41
  228. package/dist/{chunk-4JHFGSNH.js → chunk-PH3YECMF.js} +1 -3
  229. package/dist/{chunk-3EGZ6TBF.cjs → chunk-PL6DRFUO.cjs} +0 -2
  230. package/dist/chunk-Q5SZIU7Z.cjs +47 -0
  231. package/dist/{chunk-SWB57EA2.js → chunk-QCILPZWP.js} +0 -2
  232. package/dist/chunk-QGHYQCF3.cjs +240 -0
  233. package/dist/chunk-QKQHZIF3.cjs +86 -0
  234. package/dist/{chunk-Q7CDWNM6.cjs → chunk-RF2EY5JS.cjs} +0 -2
  235. package/dist/{chunk-2K5HZLXW.cjs → chunk-S3VXH5L4.cjs} +0 -2
  236. package/dist/{chunk-P4CGE5C7.cjs → chunk-SKMP2A5O.cjs} +5 -7
  237. package/dist/{chunk-RXL26GSI.cjs → chunk-SWBWZIL4.cjs} +0 -2
  238. package/dist/{chunk-YRAQRENN.js → chunk-TEEFR2FD.js} +29 -8
  239. package/dist/{chunk-YVSZLQTQ.cjs → chunk-TEG7NJHS.cjs} +3 -5
  240. package/dist/{chunk-DH4NYYJP.cjs → chunk-TJII7BQ2.cjs} +263 -4
  241. package/dist/{chunk-HHSVGNJA.cjs → chunk-TZJH5HBT.cjs} +6 -8
  242. package/dist/{chunk-T7ZBJJC4.js → chunk-UMDGS4BP.js} +1 -3
  243. package/dist/chunk-USQ43DJ5.js +147 -0
  244. package/dist/{chunk-RNVE2LMJ.cjs → chunk-UUHFKIWP.cjs} +20 -10
  245. package/dist/chunk-WGZ2KJTZ.js +81 -0
  246. package/dist/{chunk-RHZOBQON.js → chunk-WKKSAGYH.js} +40 -31
  247. package/dist/{chunk-XXE5TQ7I.cjs → chunk-WNM5RVXR.cjs} +0 -2
  248. package/dist/{chunk-4XSP4HHZ.js → chunk-XD3JGL5O.js} +2 -4
  249. package/dist/{chunk-44AVDO3T.js → chunk-XRR3CYQL.js} +0 -2
  250. package/dist/{chunk-ZZXNHPF3.js → chunk-XTIN5545.js} +68 -74
  251. package/dist/{chunk-3XIDJEYR.cjs → chunk-YB3IWIOJ.cjs} +0 -2
  252. package/dist/{chunk-EHZXEZI2.cjs → chunk-YLIQ37KY.cjs} +0 -2
  253. package/dist/{chunk-QCNHDDSD.cjs → chunk-ZIP7F4UF.cjs} +4 -22
  254. package/dist/index.cjs +346 -158
  255. package/dist/index.d.cts +23 -17
  256. package/dist/index.d.ts +23 -17
  257. package/dist/index.js +47 -43
  258. package/dist/styles.css +313 -192
  259. package/docs/llms/badge.md +3 -3
  260. package/docs/llms/button.md +7 -38
  261. package/docs/llms/card.md +6 -12
  262. package/docs/llms/cascader.md +19 -0
  263. package/docs/llms/{accordion.md → collapse.md} +13 -11
  264. package/docs/llms/drawer.md +1 -1
  265. package/docs/llms/form.md +1 -1
  266. package/docs/llms/input.md +25 -16
  267. package/docs/llms/message.md +63 -0
  268. package/docs/llms/modal.md +30 -0
  269. package/docs/llms/popover.md +18 -1
  270. package/docs/llms/radio.md +37 -1
  271. package/docs/llms/select.md +20 -0
  272. package/docs/llms/spin.md +59 -0
  273. package/docs/llms/table.md +3 -3
  274. package/docs/llms/tooltip.md +16 -3
  275. package/docs/llms.md +5 -5
  276. package/package.json +19 -53
  277. package/dist/Accordion-REMDCQUD.css +0 -44
  278. package/dist/Accordion.cjs +0 -13
  279. package/dist/Accordion.cjs.map +0 -1
  280. package/dist/Accordion.d.cts +0 -33
  281. package/dist/Accordion.d.ts +0 -33
  282. package/dist/Accordion.js +0 -4
  283. package/dist/Accordion.js.map +0 -1
  284. package/dist/Alert.cjs.map +0 -1
  285. package/dist/Alert.js.map +0 -1
  286. package/dist/AppShell.cjs.map +0 -1
  287. package/dist/AppShell.js.map +0 -1
  288. package/dist/AutoComplete.cjs.map +0 -1
  289. package/dist/AutoComplete.js.map +0 -1
  290. package/dist/Avatar.cjs.map +0 -1
  291. package/dist/Avatar.js.map +0 -1
  292. package/dist/Button.cjs.map +0 -1
  293. package/dist/Button.js.map +0 -1
  294. package/dist/Calendar.cjs.map +0 -1
  295. package/dist/Calendar.js.map +0 -1
  296. package/dist/Card.cjs.map +0 -1
  297. package/dist/Card.js.map +0 -1
  298. package/dist/Cascader.cjs.map +0 -1
  299. package/dist/Cascader.js.map +0 -1
  300. package/dist/Checkbox.cjs.map +0 -1
  301. package/dist/Checkbox.js.map +0 -1
  302. package/dist/ColorPicker.cjs.map +0 -1
  303. package/dist/ColorPicker.js.map +0 -1
  304. package/dist/CommandPalette.cjs.map +0 -1
  305. package/dist/CommandPalette.js.map +0 -1
  306. package/dist/ContextMenu.cjs.map +0 -1
  307. package/dist/ContextMenu.js.map +0 -1
  308. package/dist/Divider.cjs.map +0 -1
  309. package/dist/Divider.js.map +0 -1
  310. package/dist/Drawer.cjs.map +0 -1
  311. package/dist/Drawer.js.map +0 -1
  312. package/dist/Empty-NQ72W3D7.css +0 -160
  313. package/dist/Empty.cjs.map +0 -1
  314. package/dist/Empty.js.map +0 -1
  315. package/dist/Form.cjs.map +0 -1
  316. package/dist/Form.js.map +0 -1
  317. package/dist/Icon.cjs.map +0 -1
  318. package/dist/Icon.js.map +0 -1
  319. package/dist/Image.cjs.map +0 -1
  320. package/dist/Image.js.map +0 -1
  321. package/dist/Input.cjs.map +0 -1
  322. package/dist/Input.js.map +0 -1
  323. package/dist/InputNumber.cjs.map +0 -1
  324. package/dist/InputNumber.js.map +0 -1
  325. package/dist/List.cjs.map +0 -1
  326. package/dist/List.js.map +0 -1
  327. package/dist/Modal.cjs.map +0 -1
  328. package/dist/Modal.js.map +0 -1
  329. package/dist/Pagination.cjs.map +0 -1
  330. package/dist/Pagination.js.map +0 -1
  331. package/dist/Popover.cjs.map +0 -1
  332. package/dist/Popover.js.map +0 -1
  333. package/dist/Progress.cjs.map +0 -1
  334. package/dist/Progress.js.map +0 -1
  335. package/dist/Select.cjs.map +0 -1
  336. package/dist/Select.js.map +0 -1
  337. package/dist/Slider.cjs.map +0 -1
  338. package/dist/Slider.js.map +0 -1
  339. package/dist/Splitter.cjs.map +0 -1
  340. package/dist/Splitter.js.map +0 -1
  341. package/dist/StatusBar.cjs.map +0 -1
  342. package/dist/StatusBar.js.map +0 -1
  343. package/dist/Switch.cjs.map +0 -1
  344. package/dist/Switch.js.map +0 -1
  345. package/dist/Table.cjs.map +0 -1
  346. package/dist/Table.js.map +0 -1
  347. package/dist/Tabs.cjs.map +0 -1
  348. package/dist/Tabs.js.map +0 -1
  349. package/dist/Tag-FGDY3W7E.css +0 -51
  350. package/dist/Tag.cjs.map +0 -1
  351. package/dist/Tag.js.map +0 -1
  352. package/dist/Theme.cjs.map +0 -1
  353. package/dist/Theme.js.map +0 -1
  354. package/dist/Timeline.cjs.map +0 -1
  355. package/dist/Timeline.js.map +0 -1
  356. package/dist/Toast-YSACW3EM.css +0 -45
  357. package/dist/Toast.cjs +0 -17
  358. package/dist/Toast.cjs.map +0 -1
  359. package/dist/Toast.d.cts +0 -26
  360. package/dist/Toast.d.ts +0 -26
  361. package/dist/Toast.js +0 -4
  362. package/dist/Toast.js.map +0 -1
  363. package/dist/Tooltip.cjs.map +0 -1
  364. package/dist/Tooltip.js.map +0 -1
  365. package/dist/Typography.cjs.map +0 -1
  366. package/dist/Typography.js.map +0 -1
  367. package/dist/chunk-2K5HZLXW.cjs.map +0 -1
  368. package/dist/chunk-2LIX7ZHX.js.map +0 -1
  369. package/dist/chunk-2TNJ7TC4.cjs.map +0 -1
  370. package/dist/chunk-2TZ2R7L2.js.map +0 -1
  371. package/dist/chunk-3EGZ6TBF.cjs.map +0 -1
  372. package/dist/chunk-3LJO33HI.js.map +0 -1
  373. package/dist/chunk-3XIDJEYR.cjs.map +0 -1
  374. package/dist/chunk-44AVDO3T.js.map +0 -1
  375. package/dist/chunk-474MXYO5.cjs.map +0 -1
  376. package/dist/chunk-4DNHASZU.js.map +0 -1
  377. package/dist/chunk-4JHFGSNH.js.map +0 -1
  378. package/dist/chunk-4SCDDSXY.js +0 -41
  379. package/dist/chunk-4SCDDSXY.js.map +0 -1
  380. package/dist/chunk-4XSP4HHZ.js.map +0 -1
  381. package/dist/chunk-5VIOJW6M.js.map +0 -1
  382. package/dist/chunk-6CAEGNCK.js +0 -101
  383. package/dist/chunk-6CAEGNCK.js.map +0 -1
  384. package/dist/chunk-6FSOJLY6.js.map +0 -1
  385. package/dist/chunk-6TRVGFFX.cjs.map +0 -1
  386. package/dist/chunk-74VZZAUT.cjs.map +0 -1
  387. package/dist/chunk-A3IJM7IX.js.map +0 -1
  388. package/dist/chunk-ANAQER3T.js.map +0 -1
  389. package/dist/chunk-AXRABZLY.cjs.map +0 -1
  390. package/dist/chunk-BSHHQOFY.js +0 -170
  391. package/dist/chunk-BSHHQOFY.js.map +0 -1
  392. package/dist/chunk-CVEGVB2C.js.map +0 -1
  393. package/dist/chunk-D242UJZO.js.map +0 -1
  394. package/dist/chunk-DB5JMXOI.js.map +0 -1
  395. package/dist/chunk-DCX36FYD.js.map +0 -1
  396. package/dist/chunk-DH4NYYJP.cjs.map +0 -1
  397. package/dist/chunk-DUNQNSVK.js +0 -125
  398. package/dist/chunk-DUNQNSVK.js.map +0 -1
  399. package/dist/chunk-E6K6GYUC.js.map +0 -1
  400. package/dist/chunk-EARCKSI7.js.map +0 -1
  401. package/dist/chunk-EHZXEZI2.cjs.map +0 -1
  402. package/dist/chunk-FBQLNAUI.cjs +0 -123
  403. package/dist/chunk-FBQLNAUI.cjs.map +0 -1
  404. package/dist/chunk-FCIPCZAK.cjs.map +0 -1
  405. package/dist/chunk-FSOJHDXH.js +0 -76
  406. package/dist/chunk-FSOJHDXH.js.map +0 -1
  407. package/dist/chunk-HHSVGNJA.cjs.map +0 -1
  408. package/dist/chunk-HQO7EZNQ.cjs +0 -147
  409. package/dist/chunk-HQO7EZNQ.cjs.map +0 -1
  410. package/dist/chunk-IL523MTN.cjs.map +0 -1
  411. package/dist/chunk-JAGJQDAV.cjs.map +0 -1
  412. package/dist/chunk-JF2WNLPF.cjs.map +0 -1
  413. package/dist/chunk-JS6U7UQS.js.map +0 -1
  414. package/dist/chunk-KA3XLPQJ.cjs.map +0 -1
  415. package/dist/chunk-KWE2PXJQ.js.map +0 -1
  416. package/dist/chunk-LSQD2GFA.js.map +0 -1
  417. package/dist/chunk-MU4GGX6C.cjs.map +0 -1
  418. package/dist/chunk-MUFMJPRT.cjs +0 -64
  419. package/dist/chunk-MUFMJPRT.cjs.map +0 -1
  420. package/dist/chunk-MXIWTYNC.js.map +0 -1
  421. package/dist/chunk-N6ZLZUBF.cjs.map +0 -1
  422. package/dist/chunk-NRP3X3PE.cjs.map +0 -1
  423. package/dist/chunk-P4CGE5C7.cjs.map +0 -1
  424. package/dist/chunk-PX5ABNKV.js +0 -134
  425. package/dist/chunk-PX5ABNKV.js.map +0 -1
  426. package/dist/chunk-Q7CDWNM6.cjs.map +0 -1
  427. package/dist/chunk-QCNHDDSD.cjs.map +0 -1
  428. package/dist/chunk-QRSPBK3X.js.map +0 -1
  429. package/dist/chunk-RHZOBQON.js.map +0 -1
  430. package/dist/chunk-RNVE2LMJ.cjs.map +0 -1
  431. package/dist/chunk-RXL26GSI.cjs.map +0 -1
  432. package/dist/chunk-S3OSBW7R.cjs.map +0 -1
  433. package/dist/chunk-SREMTSVI.cjs.map +0 -1
  434. package/dist/chunk-SWB57EA2.js.map +0 -1
  435. package/dist/chunk-T7ZBJJC4.js.map +0 -1
  436. package/dist/chunk-TC5ZL2OS.cjs.map +0 -1
  437. package/dist/chunk-V24B7KWT.cjs.map +0 -1
  438. package/dist/chunk-V5KSJITO.cjs.map +0 -1
  439. package/dist/chunk-W6I67HQQ.js.map +0 -1
  440. package/dist/chunk-WFFWVQK4.cjs.map +0 -1
  441. package/dist/chunk-WLFMOWUY.js.map +0 -1
  442. package/dist/chunk-X3QINITU.js.map +0 -1
  443. package/dist/chunk-XMFVAYBP.cjs +0 -102
  444. package/dist/chunk-XMFVAYBP.cjs.map +0 -1
  445. package/dist/chunk-XMINE4TN.cjs.map +0 -1
  446. package/dist/chunk-XXE5TQ7I.cjs.map +0 -1
  447. package/dist/chunk-XYGRVPUA.js.map +0 -1
  448. package/dist/chunk-Y7BZMMAV.cjs.map +0 -1
  449. package/dist/chunk-YRAQRENN.js.map +0 -1
  450. package/dist/chunk-YVSZLQTQ.cjs.map +0 -1
  451. package/dist/chunk-ZA36BJIY.cjs.map +0 -1
  452. package/dist/chunk-ZHCQEJ2Z.js.map +0 -1
  453. package/dist/chunk-ZM4P6ELG.cjs.map +0 -1
  454. package/dist/chunk-ZN6VS6SO.js.map +0 -1
  455. package/dist/chunk-ZPDMAMWC.js.map +0 -1
  456. package/dist/chunk-ZZXNHPF3.js.map +0 -1
  457. package/dist/index.cjs.map +0 -1
  458. package/dist/index.js.map +0 -1
  459. package/docs/llms/spinner.md +0 -58
  460. package/docs/llms/toast.md +0 -51
@@ -0,0 +1,97 @@
1
+ /* ============ Radio ============ */
2
+ .radio {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 10px;
6
+ cursor: pointer;
7
+ user-select: none;
8
+ font-size: 13px;
9
+ color: var(--fg);
10
+ }
11
+ .radio.disabled { opacity: 0.5; cursor: not-allowed; }
12
+
13
+ .radio-dot {
14
+ width: 20px; height: 20px;
15
+ border: none;
16
+ padding: 0;
17
+ border-radius: 999px;
18
+ background: var(--bg);
19
+ box-shadow: var(--neu-in-sm);
20
+ cursor: inherit;
21
+ position: relative;
22
+ flex-shrink: 0;
23
+ transition: all var(--dur) var(--ease);
24
+ }
25
+ .radio.checked .radio-dot {
26
+ background: var(--accent);
27
+ box-shadow: var(--neu-out-sm), 0 2px 8px var(--accent-glow);
28
+ }
29
+ .radio.checked .radio-dot::after {
30
+ content: "";
31
+ position: absolute;
32
+ top: 50%; left: 50%;
33
+ transform: translate(-50%, -50%);
34
+ width: 8px; height: 8px;
35
+ border-radius: 999px;
36
+ background: var(--bg);
37
+ }
38
+
39
+ .radio-group { display: flex; gap: 14px; }
40
+ .radio-group.vertical { flex-direction: column; gap: 10px; }
41
+ .radio-group.horizontal { flex-direction: row; flex-wrap: wrap; }
42
+
43
+ .radio-group.segmented {
44
+ position: relative;
45
+ display: inline-flex;
46
+ padding: 4px;
47
+ border-radius: var(--r-md);
48
+ background: var(--bg);
49
+ box-shadow: var(--neu-in-sm);
50
+ gap: 2px;
51
+ flex-wrap: nowrap;
52
+ }
53
+
54
+ .radio-group.segmented .radio {
55
+ position: relative;
56
+ z-index: 1;
57
+ height: 32px;
58
+ padding: 6px 14px;
59
+ border-radius: calc(var(--r-md) - 4px);
60
+ color: var(--fg-muted);
61
+ font-size: 12px;
62
+ gap: 6px;
63
+ transition: all var(--dur-fast) var(--ease);
64
+ }
65
+
66
+ .radio-group.segmented .radio:hover { color: var(--fg); }
67
+ .radio-group.segmented .radio.checked {
68
+ color: var(--accent-ink);
69
+ font-weight: 600;
70
+ }
71
+ .radio-group.segmented .radio-dot { display: none; }
72
+ .radio-group.segmented .radio-label { line-height: 1; }
73
+ .radio-group.segmented .radio.disabled { opacity: 0.4; }
74
+ .radio-group.segmented.sm .radio { height: 26px; padding: 4px 10px; font-size: 11px; }
75
+ .radio-group.segmented.lg .radio { height: 38px; padding: 8px 18px; font-size: 13px; }
76
+
77
+ .radio-segment-thumb {
78
+ position: absolute;
79
+ top: 4px;
80
+ bottom: 4px;
81
+ left: 0;
82
+ border-radius: calc(var(--r-md) - 4px);
83
+ background: var(--bg);
84
+ box-shadow: var(--neu-out-sm);
85
+ pointer-events: none;
86
+ transition:
87
+ transform var(--dur-slow) var(--ease),
88
+ width var(--dur-slow) var(--ease),
89
+ opacity var(--dur-fast) var(--ease);
90
+ will-change: transform, width;
91
+ }
92
+
93
+ @media (prefers-reduced-motion: reduce) {
94
+ .radio-segment-thumb {
95
+ transition: none;
96
+ }
97
+ }
package/dist/Radio.cjs ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var chunkKGSADAOD_cjs = require('./chunk-KGSADAOD.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Radio", {
8
+ enumerable: true,
9
+ get: function () { return chunkKGSADAOD_cjs.Radio; }
10
+ });
11
+ Object.defineProperty(exports, "RadioGroup", {
12
+ enumerable: true,
13
+ get: function () { return chunkKGSADAOD_cjs.RadioGroup; }
14
+ });
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+
3
+ interface RadioProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange" | "children" | "id"> {
4
+ checked?: boolean;
5
+ defaultChecked?: boolean;
6
+ onChange?: (checked: boolean) => void;
7
+ disabled?: boolean;
8
+ label?: React.ReactNode;
9
+ className?: string;
10
+ id?: string;
11
+ }
12
+ declare const RadioRoot: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLLabelElement>>;
13
+ interface RadioOption<T extends string | number = string> {
14
+ value: T;
15
+ label: React.ReactNode;
16
+ disabled?: boolean;
17
+ }
18
+ interface RadioGroupProps<T extends string | number = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
19
+ options: RadioOption<T>[];
20
+ value?: T;
21
+ defaultValue?: T;
22
+ onChange?: (value: T) => void;
23
+ name?: string;
24
+ direction?: "vertical" | "horizontal";
25
+ variant?: "default" | "segmented";
26
+ size?: "sm" | "md" | "lg";
27
+ className?: string;
28
+ }
29
+ type RadioGroupComponent = <T extends string | number = string>(props: RadioGroupProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
30
+ /** `RadioGroup` — mutually exclusive options. */
31
+ declare const RadioGroup: RadioGroupComponent;
32
+ declare const Radio: typeof RadioRoot & {
33
+ Group: typeof RadioGroup;
34
+ };
35
+
36
+ export { Radio, RadioGroup, type RadioGroupProps, type RadioOption, type RadioProps };
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+
3
+ interface RadioProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange" | "children" | "id"> {
4
+ checked?: boolean;
5
+ defaultChecked?: boolean;
6
+ onChange?: (checked: boolean) => void;
7
+ disabled?: boolean;
8
+ label?: React.ReactNode;
9
+ className?: string;
10
+ id?: string;
11
+ }
12
+ declare const RadioRoot: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLLabelElement>>;
13
+ interface RadioOption<T extends string | number = string> {
14
+ value: T;
15
+ label: React.ReactNode;
16
+ disabled?: boolean;
17
+ }
18
+ interface RadioGroupProps<T extends string | number = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
19
+ options: RadioOption<T>[];
20
+ value?: T;
21
+ defaultValue?: T;
22
+ onChange?: (value: T) => void;
23
+ name?: string;
24
+ direction?: "vertical" | "horizontal";
25
+ variant?: "default" | "segmented";
26
+ size?: "sm" | "md" | "lg";
27
+ className?: string;
28
+ }
29
+ type RadioGroupComponent = <T extends string | number = string>(props: RadioGroupProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
30
+ /** `RadioGroup` — mutually exclusive options. */
31
+ declare const RadioGroup: RadioGroupComponent;
32
+ declare const Radio: typeof RadioRoot & {
33
+ Group: typeof RadioGroup;
34
+ };
35
+
36
+ export { Radio, RadioGroup, type RadioGroupProps, type RadioOption, type RadioProps };
package/dist/Radio.js ADDED
@@ -0,0 +1 @@
1
+ export { Radio, RadioGroup } from './chunk-USQ43DJ5.js';
@@ -128,32 +128,12 @@
128
128
 
129
129
  /* Menu search — flush with menu, single subtle separator (no nested frame) */
130
130
  .menu-search {
131
- display: flex;
132
- align-items: center;
133
- gap: 8px;
134
- height: 32px;
135
- padding: 0 6px;
131
+ display: block;
132
+ padding: 4px 2px 8px;
136
133
  margin: -2px -2px 4px;
137
134
  border-bottom: 1px solid var(--divider);
138
- color: var(--fg-subtle);
139
- transition: color var(--dur) var(--ease);
140
135
  }
141
- .menu-search:focus-within { color: var(--accent); }
142
- .menu-search input {
143
- flex: 1;
144
- min-width: 0;
145
- border: none;
146
- outline: none;
147
- background: transparent;
148
- color: var(--fg);
149
- font-size: 13px;
150
- font-family: inherit;
151
- height: 100%;
152
- padding: 0;
153
- }
154
- .menu-search input::placeholder { color: var(--fg-subtle); }
155
- .menu-search input:focus,
156
- .menu-search input:focus-visible { box-shadow: none; }
136
+ .menu-search .input-wrap { width: 100%; }
157
137
 
158
138
  /* Menu state (loading / empty) */
159
139
  .menu-state {
@@ -179,8 +159,12 @@
179
159
  .menu-state .menu-state-ico .spinner {
180
160
  width: 16px;
181
161
  height: 16px;
162
+ display: inline-block;
163
+ border-radius: 999px;
164
+ border: 2px solid var(--accent);
182
165
  border-color: var(--accent);
183
166
  border-right-color: transparent;
167
+ animation: spin 0.8s linear infinite;
184
168
  }
185
169
 
186
170
  /* Option body — supports description line under label */
package/dist/Select.cjs CHANGED
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkZM4P6ELG_cjs = require('./chunk-ZM4P6ELG.cjs');
4
- require('./chunk-QCNHDDSD.cjs');
5
- require('./chunk-3XIDJEYR.cjs');
6
- require('./chunk-DH4NYYJP.cjs');
3
+ var chunkOYMJVU66_cjs = require('./chunk-OYMJVU66.cjs');
4
+ require('./chunk-ZIP7F4UF.cjs');
5
+ require('./chunk-YB3IWIOJ.cjs');
6
+ require('./chunk-6LZ54NPO.cjs');
7
+ require('./chunk-OQBDU5I2.cjs');
8
+ require('./chunk-TJII7BQ2.cjs');
7
9
 
8
10
 
9
11
 
10
12
  Object.defineProperty(exports, "Select", {
11
13
  enumerable: true,
12
- get: function () { return chunkZM4P6ELG_cjs.Select; }
14
+ get: function () { return chunkOYMJVU66_cjs.Select; }
13
15
  });
14
- //# sourceMappingURL=Select.cjs.map
15
- //# sourceMappingURL=Select.cjs.map
package/dist/Select.d.cts CHANGED
@@ -18,6 +18,13 @@ interface SelectOptionGroup<T extends string | number = string> {
18
18
  options: SelectOption<T>[];
19
19
  }
20
20
  type SelectItem<T extends string | number = string> = SelectOption<T> | SelectOptionGroup<T>;
21
+ type SelectFilterOption<T extends string | number = string> = boolean | ((input: string, option: SelectOption<T>) => boolean);
22
+ type SelectSingleChangeHandler<T extends string | number = string> = {
23
+ bivarianceHack(value: any): void;
24
+ }["bivarianceHack"];
25
+ type SelectMultiChangeHandler<T extends string | number = string> = {
26
+ bivarianceHack(value: T[]): void;
27
+ }["bivarianceHack"];
21
28
  interface BaseSelectProps<T extends string | number = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
22
29
  /** Flat or mixed (groups + options) item list. */
23
30
  options: SelectItem<T>[];
@@ -28,10 +35,18 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
28
35
  invalid?: boolean;
29
36
  /** Show a small × to clear the selection (single mode) or all selections (multi). */
30
37
  clearable?: boolean;
38
+ /** Alias for `clearable`. */
39
+ allowClear?: boolean | {
40
+ clearIcon?: React.ReactNode;
41
+ };
31
42
  /** Add a search input at the top of the menu. */
32
43
  searchable?: boolean;
44
+ /** Alias for `searchable`. */
45
+ showSearch?: boolean;
33
46
  /** Custom filter — defaults to label/text/value substring match. */
34
- filterOption?: (input: string, option: SelectOption<T>) => boolean;
47
+ filterOption?: SelectFilterOption<T>;
48
+ /** Field used by the default filter. */
49
+ optionFilterProp?: "label" | "value" | "text" | string;
35
50
  /** Show spinner instead of options. */
36
51
  loading?: boolean;
37
52
  /** Custom empty content when no options match. */
@@ -43,12 +58,16 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
43
58
  className?: string;
44
59
  /** Class for the popped-out menu. */
45
60
  menuClassName?: string;
61
+ /** Alias for `menuClassName`. */
62
+ popupClassName?: string;
63
+ /** Additional alias for `menuClassName`. */
64
+ dropdownClassName?: string;
46
65
  }
47
66
  interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {
48
67
  multiple?: false;
49
68
  value?: T;
50
69
  defaultValue?: T;
51
- onChange?: (value: T) => void;
70
+ onChange?: SelectSingleChangeHandler<T>;
52
71
  /** Fired when user clears the selection via the × button. */
53
72
  onClear?: () => void;
54
73
  }
@@ -56,7 +75,9 @@ interface MultiSelectProps<T extends string | number = string> extends BaseSelec
56
75
  multiple: true;
57
76
  value?: T[];
58
77
  defaultValue?: T[];
59
- onChange?: (value: T[]) => void;
78
+ onChange?: SelectMultiChangeHandler<T>;
79
+ /** Fired when user clears all selections via the × button. */
80
+ onClear?: () => void;
60
81
  /** Max selected items shown as tags before collapsing to "+N". */
61
82
  maxTagCount?: number;
62
83
  }
@@ -68,4 +89,4 @@ type SelectComponent = {
68
89
  /** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */
69
90
  declare const Select: SelectComponent;
70
91
 
71
- export { type MultiSelectProps, Select, type SelectItem, type SelectOption, type SelectOptionGroup, type SelectProps, type SingleSelectProps };
92
+ export { type MultiSelectProps, Select, type SelectFilterOption, type SelectItem, type SelectMultiChangeHandler, type SelectOption, type SelectOptionGroup, type SelectProps, type SelectSingleChangeHandler, type SingleSelectProps };
package/dist/Select.d.ts CHANGED
@@ -18,6 +18,13 @@ interface SelectOptionGroup<T extends string | number = string> {
18
18
  options: SelectOption<T>[];
19
19
  }
20
20
  type SelectItem<T extends string | number = string> = SelectOption<T> | SelectOptionGroup<T>;
21
+ type SelectFilterOption<T extends string | number = string> = boolean | ((input: string, option: SelectOption<T>) => boolean);
22
+ type SelectSingleChangeHandler<T extends string | number = string> = {
23
+ bivarianceHack(value: any): void;
24
+ }["bivarianceHack"];
25
+ type SelectMultiChangeHandler<T extends string | number = string> = {
26
+ bivarianceHack(value: T[]): void;
27
+ }["bivarianceHack"];
21
28
  interface BaseSelectProps<T extends string | number = string> extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
22
29
  /** Flat or mixed (groups + options) item list. */
23
30
  options: SelectItem<T>[];
@@ -28,10 +35,18 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
28
35
  invalid?: boolean;
29
36
  /** Show a small × to clear the selection (single mode) or all selections (multi). */
30
37
  clearable?: boolean;
38
+ /** Alias for `clearable`. */
39
+ allowClear?: boolean | {
40
+ clearIcon?: React.ReactNode;
41
+ };
31
42
  /** Add a search input at the top of the menu. */
32
43
  searchable?: boolean;
44
+ /** Alias for `searchable`. */
45
+ showSearch?: boolean;
33
46
  /** Custom filter — defaults to label/text/value substring match. */
34
- filterOption?: (input: string, option: SelectOption<T>) => boolean;
47
+ filterOption?: SelectFilterOption<T>;
48
+ /** Field used by the default filter. */
49
+ optionFilterProp?: "label" | "value" | "text" | string;
35
50
  /** Show spinner instead of options. */
36
51
  loading?: boolean;
37
52
  /** Custom empty content when no options match. */
@@ -43,12 +58,16 @@ interface BaseSelectProps<T extends string | number = string> extends Omit<React
43
58
  className?: string;
44
59
  /** Class for the popped-out menu. */
45
60
  menuClassName?: string;
61
+ /** Alias for `menuClassName`. */
62
+ popupClassName?: string;
63
+ /** Additional alias for `menuClassName`. */
64
+ dropdownClassName?: string;
46
65
  }
47
66
  interface SingleSelectProps<T extends string | number = string> extends BaseSelectProps<T> {
48
67
  multiple?: false;
49
68
  value?: T;
50
69
  defaultValue?: T;
51
- onChange?: (value: T) => void;
70
+ onChange?: SelectSingleChangeHandler<T>;
52
71
  /** Fired when user clears the selection via the × button. */
53
72
  onClear?: () => void;
54
73
  }
@@ -56,7 +75,9 @@ interface MultiSelectProps<T extends string | number = string> extends BaseSelec
56
75
  multiple: true;
57
76
  value?: T[];
58
77
  defaultValue?: T[];
59
- onChange?: (value: T[]) => void;
78
+ onChange?: SelectMultiChangeHandler<T>;
79
+ /** Fired when user clears all selections via the × button. */
80
+ onClear?: () => void;
60
81
  /** Max selected items shown as tags before collapsing to "+N". */
61
82
  maxTagCount?: number;
62
83
  }
@@ -68,4 +89,4 @@ type SelectComponent = {
68
89
  /** `Select` — neumorphic dropdown. Set `multiple` for tag-style multi-select. */
69
90
  declare const Select: SelectComponent;
70
91
 
71
- export { type MultiSelectProps, Select, type SelectItem, type SelectOption, type SelectOptionGroup, type SelectProps, type SingleSelectProps };
92
+ export { type MultiSelectProps, Select, type SelectFilterOption, type SelectItem, type SelectMultiChangeHandler, type SelectOption, type SelectOptionGroup, type SelectProps, type SelectSingleChangeHandler, type SingleSelectProps };
package/dist/Select.js CHANGED
@@ -1,6 +1,6 @@
1
- export { Select } from './chunk-RHZOBQON.js';
2
- import './chunk-D242UJZO.js';
3
- import './chunk-ANAQER3T.js';
4
- import './chunk-BSHHQOFY.js';
5
- //# sourceMappingURL=Select.js.map
6
- //# sourceMappingURL=Select.js.map
1
+ export { Select } from './chunk-WKKSAGYH.js';
2
+ import './chunk-DQTSTJ6O.js';
3
+ import './chunk-DUFRASGO.js';
4
+ import './chunk-XTIN5545.js';
5
+ import './chunk-WGZ2KJTZ.js';
6
+ import './chunk-OF3SGLZY.js';
@@ -0,0 +1,40 @@
1
+ /* ============ Skeleton ============ */
2
+ .skeleton {
3
+ display: block;
4
+ background: color-mix(in oklch, var(--accent-soft) 55%, var(--bg-sunken));
5
+ border-radius: var(--r-sm);
6
+ }
7
+ .skeleton.wave {
8
+ background: linear-gradient(90deg,
9
+ color-mix(in oklch, var(--accent-soft) 35%, var(--bg-sunken)),
10
+ color-mix(in oklch, var(--accent-soft) 75%, var(--bg-sunken)),
11
+ color-mix(in oklch, var(--accent-soft) 35%, var(--bg-sunken)));
12
+ background-size: 200% 100%;
13
+ animation: skel-wave 1.4s ease-in-out infinite;
14
+ }
15
+ .skeleton.pulse { animation: skel-pulse 1.4s ease-in-out infinite; }
16
+ .skeleton.none { animation: none; }
17
+ .skeleton.circle { border-radius: 999px; }
18
+ @keyframes skel-wave { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
19
+ @keyframes skel-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
20
+
21
+ .skeleton-box {
22
+ display: flex;
23
+ align-items: flex-start;
24
+ gap: 16px;
25
+ width: 100%;
26
+ }
27
+ .skeleton-content {
28
+ flex: 1;
29
+ min-width: 0;
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: 12px;
33
+ }
34
+ .skeleton-box .skeleton-title {
35
+ display: block;
36
+ margin-bottom: 4px;
37
+ }
38
+ .skeleton-box .skeleton-row {
39
+ display: block;
40
+ }
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var chunkHZSIUOCN_cjs = require('./chunk-HZSIUOCN.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Skeleton", {
8
+ enumerable: true,
9
+ get: function () { return chunkHZSIUOCN_cjs.Skeleton; }
10
+ });
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+
3
+ interface SkeletonAvatarConfig {
4
+ shape?: "circle" | "square";
5
+ size?: "sm" | "md" | "lg";
6
+ }
7
+ interface SkeletonTitleConfig {
8
+ width?: number | string;
9
+ }
10
+ interface SkeletonParagraphConfig {
11
+ rows?: number;
12
+ width?: (number | string)[];
13
+ }
14
+ interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLElement>, "title"> {
15
+ width?: number | string;
16
+ height?: number | string;
17
+ circle?: boolean;
18
+ /** `wave` is a shimmer sweep; `pulse` fades opacity; `none` disables animation. */
19
+ animation?: "wave" | "pulse" | "none";
20
+ avatar?: boolean | SkeletonAvatarConfig;
21
+ title?: boolean | SkeletonTitleConfig;
22
+ paragraph?: boolean | SkeletonParagraphConfig;
23
+ className?: string;
24
+ }
25
+ /**
26
+ * `Skeleton` — content placeholder during loading.
27
+ */
28
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLElement>>;
29
+
30
+ export { Skeleton, type SkeletonAvatarConfig, type SkeletonParagraphConfig, type SkeletonProps, type SkeletonTitleConfig };
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+
3
+ interface SkeletonAvatarConfig {
4
+ shape?: "circle" | "square";
5
+ size?: "sm" | "md" | "lg";
6
+ }
7
+ interface SkeletonTitleConfig {
8
+ width?: number | string;
9
+ }
10
+ interface SkeletonParagraphConfig {
11
+ rows?: number;
12
+ width?: (number | string)[];
13
+ }
14
+ interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLElement>, "title"> {
15
+ width?: number | string;
16
+ height?: number | string;
17
+ circle?: boolean;
18
+ /** `wave` is a shimmer sweep; `pulse` fades opacity; `none` disables animation. */
19
+ animation?: "wave" | "pulse" | "none";
20
+ avatar?: boolean | SkeletonAvatarConfig;
21
+ title?: boolean | SkeletonTitleConfig;
22
+ paragraph?: boolean | SkeletonParagraphConfig;
23
+ className?: string;
24
+ }
25
+ /**
26
+ * `Skeleton` — content placeholder during loading.
27
+ */
28
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLElement>>;
29
+
30
+ export { Skeleton, type SkeletonAvatarConfig, type SkeletonParagraphConfig, type SkeletonProps, type SkeletonTitleConfig };
@@ -0,0 +1 @@
1
+ export { Skeleton } from './chunk-5TKC6IEN.js';
package/dist/Slider.cjs CHANGED
@@ -1,12 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkN6ZLZUBF_cjs = require('./chunk-N6ZLZUBF.cjs');
3
+ var chunkIZOHYJUQ_cjs = require('./chunk-IZOHYJUQ.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "Slider", {
8
8
  enumerable: true,
9
- get: function () { return chunkN6ZLZUBF_cjs.Slider; }
9
+ get: function () { return chunkIZOHYJUQ_cjs.Slider; }
10
10
  });
11
- //# sourceMappingURL=Slider.cjs.map
12
- //# sourceMappingURL=Slider.cjs.map
package/dist/Slider.js CHANGED
@@ -1,3 +1 @@
1
- export { Slider } from './chunk-2TZ2R7L2.js';
2
- //# sourceMappingURL=Slider.js.map
3
- //# sourceMappingURL=Slider.js.map
1
+ export { Slider } from './chunk-7JN6FJ55.js';
@@ -0,0 +1,94 @@
1
+ /* ============ Spin ============ */
2
+ .spin {
3
+ width: 14px;
4
+ height: 14px;
5
+ border-radius: 999px;
6
+ border: 2px solid currentColor;
7
+ border-right-color: transparent;
8
+ animation: spin 0.8s linear infinite;
9
+ display: inline-block;
10
+ }
11
+
12
+ .spin.accent { color: var(--accent); }
13
+ .spin.success { color: var(--success); }
14
+ .spin.warning { color: var(--warning); }
15
+ .spin.danger { color: var(--danger); }
16
+
17
+ .spin.ring {
18
+ position: relative;
19
+ display: inline-block;
20
+ border: none;
21
+ border-radius: 50%;
22
+ background: var(--bg);
23
+ box-shadow: var(--neu-in-sm);
24
+ animation: none;
25
+ }
26
+
27
+ .spin.ring::before {
28
+ content: "";
29
+ position: absolute;
30
+ inset: 0;
31
+ border-radius: inherit;
32
+ background: conic-gradient(from 0deg,
33
+ transparent 0deg,
34
+ color-mix(in oklch, currentColor 30%, transparent) 40deg,
35
+ color-mix(in oklch, currentColor 70%, transparent) 100deg,
36
+ currentColor 220deg,
37
+ currentColor 340deg,
38
+ transparent 360deg);
39
+ -webkit-mask: radial-gradient(circle, transparent 60%, currentColor 61%);
40
+ mask: radial-gradient(circle, transparent 60%, currentColor 61%);
41
+ animation: spin 0.9s linear infinite;
42
+ }
43
+
44
+ .spin.ring.accent::before,
45
+ .spin.ring.success::before,
46
+ .spin.ring.warning::before,
47
+ .spin.ring.danger::before {
48
+ filter: drop-shadow(0 0 4px color-mix(in oklch, currentColor 50%, transparent));
49
+ }
50
+
51
+ .spin.dots {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ gap: 0.34em;
55
+ border: none;
56
+ background: none;
57
+ box-shadow: none;
58
+ width: auto;
59
+ height: auto;
60
+ animation: none;
61
+ line-height: 1;
62
+ }
63
+
64
+ .spin.dots i {
65
+ width: 0.4em;
66
+ height: 0.4em;
67
+ border-radius: 999px;
68
+ background: radial-gradient(circle at 32% 28%,
69
+ color-mix(in oklch, currentColor 40%, var(--bg)),
70
+ currentColor 62%,
71
+ color-mix(in oklch, currentColor 82%, var(--fg)) 100%);
72
+ box-shadow:
73
+ 0 0.06em 0.14em color-mix(in oklch, currentColor 45%, transparent),
74
+ 0 0 0.35em color-mix(in oklch, currentColor 50%, transparent);
75
+ display: inline-block;
76
+ animation: spin-dot-bounce 1.2s ease-in-out infinite;
77
+ }
78
+
79
+ .spin.dots i:nth-child(2) { animation-delay: 0.15s; }
80
+ .spin.dots i:nth-child(3) { animation-delay: 0.3s; }
81
+
82
+ @keyframes spin-dot-bounce {
83
+ 0%, 80%, 100% { transform: translateY(0); opacity: 0.5; }
84
+ 40% { transform: translateY(-30%); opacity: 1; }
85
+ }
86
+
87
+ .spin-wrap {
88
+ display: inline-flex;
89
+ align-items: center;
90
+ gap: 8px;
91
+ color: var(--fg-muted);
92
+ }
93
+
94
+ .spin-label { font-size: 12px; }
package/dist/Spin.cjs ADDED
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var chunkQKQHZIF3_cjs = require('./chunk-QKQHZIF3.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Spin", {
8
+ enumerable: true,
9
+ get: function () { return chunkQKQHZIF3_cjs.Spin; }
10
+ });