nfx-ui 0.17.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2346) hide show
  1. package/README.md +67 -271
  2. package/dist/animations/accessibility-icon.d.ts +13 -0
  3. package/dist/animations/accessibility-icon.d.ts.map +1 -0
  4. package/dist/animations/accessibility-icon.js +70 -0
  5. package/dist/animations/accessibility-icon.js.map +1 -0
  6. package/dist/animations/airplane-icon.d.ts +9 -0
  7. package/dist/animations/airplane-icon.d.ts.map +1 -0
  8. package/dist/animations/airplane-icon.js +99 -0
  9. package/dist/animations/airplane-icon.js.map +1 -0
  10. package/dist/animations/alarm-clock-plus-icon.d.ts +11 -0
  11. package/dist/animations/alarm-clock-plus-icon.d.ts.map +1 -0
  12. package/dist/animations/alarm-clock-plus-icon.js +129 -0
  13. package/dist/animations/alarm-clock-plus-icon.js.map +1 -0
  14. package/dist/animations/align-center-icon.d.ts +4 -0
  15. package/dist/animations/align-center-icon.d.ts.map +1 -0
  16. package/dist/animations/align-center-icon.js +74 -0
  17. package/dist/animations/align-center-icon.js.map +1 -0
  18. package/dist/animations/align-vertical-space-around-icon.d.ts +4 -0
  19. package/dist/animations/align-vertical-space-around-icon.d.ts.map +1 -0
  20. package/dist/animations/align-vertical-space-around-icon.js +75 -0
  21. package/dist/animations/align-vertical-space-around-icon.js.map +1 -0
  22. package/dist/animations/ambulance-icon.d.ts +4 -0
  23. package/dist/animations/ambulance-icon.d.ts.map +1 -0
  24. package/dist/animations/ambulance-icon.js +82 -0
  25. package/dist/animations/ambulance-icon.js.map +1 -0
  26. package/dist/animations/ampersand-icon.d.ts +4 -0
  27. package/dist/animations/ampersand-icon.d.ts.map +1 -0
  28. package/dist/animations/ampersand-icon.js +40 -0
  29. package/dist/animations/ampersand-icon.js.map +1 -0
  30. package/dist/animations/angry-icon.d.ts +4 -0
  31. package/dist/animations/angry-icon.d.ts.map +1 -0
  32. package/dist/animations/angry-icon.js +82 -0
  33. package/dist/animations/angry-icon.js.map +1 -0
  34. package/dist/animations/annoyed-icon.d.ts +4 -0
  35. package/dist/animations/annoyed-icon.d.ts.map +1 -0
  36. package/dist/animations/annoyed-icon.js +65 -0
  37. package/dist/animations/annoyed-icon.js.map +1 -0
  38. package/dist/animations/apple-brand-logo.d.ts +4 -0
  39. package/dist/animations/apple-brand-logo.d.ts.map +1 -0
  40. package/dist/animations/apple-brand-logo.js +88 -0
  41. package/dist/animations/apple-brand-logo.js.map +1 -0
  42. package/dist/animations/arrow-back-icon.d.ts +4 -0
  43. package/dist/animations/arrow-back-icon.d.ts.map +1 -0
  44. package/dist/animations/arrow-back-icon.js +58 -0
  45. package/dist/animations/arrow-back-icon.js.map +1 -0
  46. package/dist/animations/arrow-back-up-icon.d.ts +4 -0
  47. package/dist/animations/arrow-back-up-icon.d.ts.map +1 -0
  48. package/dist/animations/arrow-back-up-icon.js +62 -0
  49. package/dist/animations/arrow-back-up-icon.js.map +1 -0
  50. package/dist/animations/arrow-big-down-dash-icon.d.ts +4 -0
  51. package/dist/animations/arrow-big-down-dash-icon.d.ts.map +1 -0
  52. package/dist/animations/arrow-big-down-dash-icon.js +46 -0
  53. package/dist/animations/arrow-big-down-dash-icon.js.map +1 -0
  54. package/dist/animations/arrow-big-down-icon.d.ts +4 -0
  55. package/dist/animations/arrow-big-down-icon.d.ts.map +1 -0
  56. package/dist/animations/arrow-big-down-icon.js +40 -0
  57. package/dist/animations/arrow-big-down-icon.js.map +1 -0
  58. package/dist/animations/arrow-big-left-dash-icon.d.ts +4 -0
  59. package/dist/animations/arrow-big-left-dash-icon.d.ts.map +1 -0
  60. package/dist/animations/arrow-big-left-dash-icon.js +46 -0
  61. package/dist/animations/arrow-big-left-dash-icon.js.map +1 -0
  62. package/dist/animations/arrow-big-left-icon.d.ts +4 -0
  63. package/dist/animations/arrow-big-left-icon.d.ts.map +1 -0
  64. package/dist/animations/arrow-big-left-icon.js +48 -0
  65. package/dist/animations/arrow-big-left-icon.js.map +1 -0
  66. package/dist/animations/arrow-big-right-dash-icon.d.ts +4 -0
  67. package/dist/animations/arrow-big-right-dash-icon.d.ts.map +1 -0
  68. package/dist/animations/arrow-big-right-dash-icon.js +64 -0
  69. package/dist/animations/arrow-big-right-dash-icon.js.map +1 -0
  70. package/dist/animations/arrow-big-right-icon.d.ts +4 -0
  71. package/dist/animations/arrow-big-right-icon.d.ts.map +1 -0
  72. package/dist/animations/arrow-big-right-icon.js +48 -0
  73. package/dist/animations/arrow-big-right-icon.js.map +1 -0
  74. package/dist/animations/arrow-big-up-dash-icon.d.ts +4 -0
  75. package/dist/animations/arrow-big-up-dash-icon.d.ts.map +1 -0
  76. package/dist/animations/arrow-big-up-dash-icon.js +64 -0
  77. package/dist/animations/arrow-big-up-dash-icon.js.map +1 -0
  78. package/dist/animations/arrow-big-up-icon.d.ts +4 -0
  79. package/dist/animations/arrow-big-up-icon.d.ts.map +1 -0
  80. package/dist/animations/arrow-big-up-icon.js +48 -0
  81. package/dist/animations/arrow-big-up-icon.js.map +1 -0
  82. package/dist/animations/arrow-down-0-1-icon.d.ts +4 -0
  83. package/dist/animations/arrow-down-0-1-icon.d.ts.map +1 -0
  84. package/dist/animations/arrow-down-0-1-icon.js +64 -0
  85. package/dist/animations/arrow-down-0-1-icon.js.map +1 -0
  86. package/dist/animations/arrow-down-1-0-icon.d.ts +4 -0
  87. package/dist/animations/arrow-down-1-0-icon.d.ts.map +1 -0
  88. package/dist/animations/arrow-down-1-0-icon.js +63 -0
  89. package/dist/animations/arrow-down-1-0-icon.js.map +1 -0
  90. package/dist/animations/arrow-down-a-z-icon.d.ts +4 -0
  91. package/dist/animations/arrow-down-a-z-icon.d.ts.map +1 -0
  92. package/dist/animations/arrow-down-a-z-icon.js +77 -0
  93. package/dist/animations/arrow-down-a-z-icon.js.map +1 -0
  94. package/dist/animations/arrow-narrow-down-dashed-icon.d.ts +4 -0
  95. package/dist/animations/arrow-narrow-down-dashed-icon.d.ts.map +1 -0
  96. package/dist/animations/arrow-narrow-down-dashed-icon.js +60 -0
  97. package/dist/animations/arrow-narrow-down-dashed-icon.js.map +1 -0
  98. package/dist/animations/arrow-narrow-down-icon.d.ts +4 -0
  99. package/dist/animations/arrow-narrow-down-icon.d.ts.map +1 -0
  100. package/dist/animations/arrow-narrow-down-icon.js +63 -0
  101. package/dist/animations/arrow-narrow-down-icon.js.map +1 -0
  102. package/dist/animations/arrow-narrow-left-dashed-icon.d.ts +4 -0
  103. package/dist/animations/arrow-narrow-left-dashed-icon.d.ts.map +1 -0
  104. package/dist/animations/arrow-narrow-left-dashed-icon.js +63 -0
  105. package/dist/animations/arrow-narrow-left-dashed-icon.js.map +1 -0
  106. package/dist/animations/arrow-narrow-left-icon.d.ts +4 -0
  107. package/dist/animations/arrow-narrow-left-icon.d.ts.map +1 -0
  108. package/dist/animations/arrow-narrow-left-icon.js +63 -0
  109. package/dist/animations/arrow-narrow-left-icon.js.map +1 -0
  110. package/dist/animations/arrow-narrow-right-dashed-icon.d.ts +4 -0
  111. package/dist/animations/arrow-narrow-right-dashed-icon.d.ts.map +1 -0
  112. package/dist/animations/arrow-narrow-right-dashed-icon.js +63 -0
  113. package/dist/animations/arrow-narrow-right-dashed-icon.js.map +1 -0
  114. package/dist/animations/arrow-narrow-right-icon.d.ts +4 -0
  115. package/dist/animations/arrow-narrow-right-icon.d.ts.map +1 -0
  116. package/dist/animations/arrow-narrow-right-icon.js +63 -0
  117. package/dist/animations/arrow-narrow-right-icon.js.map +1 -0
  118. package/dist/animations/arrow-narrow-up-dashed-icon.d.ts +4 -0
  119. package/dist/animations/arrow-narrow-up-dashed-icon.d.ts.map +1 -0
  120. package/dist/animations/arrow-narrow-up-dashed-icon.js +63 -0
  121. package/dist/animations/arrow-narrow-up-dashed-icon.js.map +1 -0
  122. package/dist/animations/arrow-narrow-up-icon.d.ts +4 -0
  123. package/dist/animations/arrow-narrow-up-icon.d.ts.map +1 -0
  124. package/dist/animations/arrow-narrow-up-icon.js +63 -0
  125. package/dist/animations/arrow-narrow-up-icon.js.map +1 -0
  126. package/dist/animations/at-sign-icon.d.ts +4 -0
  127. package/dist/animations/at-sign-icon.d.ts.map +1 -0
  128. package/dist/animations/at-sign-icon.js +92 -0
  129. package/dist/animations/at-sign-icon.js.map +1 -0
  130. package/dist/animations/banana-icon.d.ts +4 -0
  131. package/dist/animations/banana-icon.d.ts.map +1 -0
  132. package/dist/animations/banana-icon.js +75 -0
  133. package/dist/animations/banana-icon.js.map +1 -0
  134. package/dist/animations/battery-charging-icon.d.ts +4 -0
  135. package/dist/animations/battery-charging-icon.d.ts.map +1 -0
  136. package/dist/animations/battery-charging-icon.js +83 -0
  137. package/dist/animations/battery-charging-icon.js.map +1 -0
  138. package/dist/animations/battery-icon.d.ts +4 -0
  139. package/dist/animations/battery-icon.d.ts.map +1 -0
  140. package/dist/animations/battery-icon.js +83 -0
  141. package/dist/animations/battery-icon.js.map +1 -0
  142. package/dist/animations/battery-pause-icon.d.ts +4 -0
  143. package/dist/animations/battery-pause-icon.d.ts.map +1 -0
  144. package/dist/animations/battery-pause-icon.js +75 -0
  145. package/dist/animations/battery-pause-icon.js.map +1 -0
  146. package/dist/animations/bell-off-icon.d.ts +4 -0
  147. package/dist/animations/bell-off-icon.d.ts.map +1 -0
  148. package/dist/animations/bell-off-icon.js +78 -0
  149. package/dist/animations/bell-off-icon.js.map +1 -0
  150. package/dist/animations/bluetooth-connected-icon.d.ts +4 -0
  151. package/dist/animations/bluetooth-connected-icon.d.ts.map +1 -0
  152. package/dist/animations/bluetooth-connected-icon.js +90 -0
  153. package/dist/animations/bluetooth-connected-icon.js.map +1 -0
  154. package/dist/animations/book-icon.d.ts +4 -0
  155. package/dist/animations/book-icon.d.ts.map +1 -0
  156. package/dist/animations/book-icon.js +91 -0
  157. package/dist/animations/book-icon.js.map +1 -0
  158. package/dist/animations/bookmark-icon.d.ts +4 -0
  159. package/dist/animations/bookmark-icon.d.ts.map +1 -0
  160. package/dist/animations/bookmark-icon.js +58 -0
  161. package/dist/animations/bookmark-icon.js.map +1 -0
  162. package/dist/animations/brain-circuit-icon.d.ts +4 -0
  163. package/dist/animations/brain-circuit-icon.d.ts.map +1 -0
  164. package/dist/animations/brain-circuit-icon.js +142 -0
  165. package/dist/animations/brain-circuit-icon.js.map +1 -0
  166. package/dist/animations/brand-aistudio-icon.d.ts +4 -0
  167. package/dist/animations/brand-aistudio-icon.d.ts.map +1 -0
  168. package/dist/animations/brand-aistudio-icon.js +88 -0
  169. package/dist/animations/brand-aistudio-icon.js.map +1 -0
  170. package/dist/animations/brand-anthropic-icon.d.ts +4 -0
  171. package/dist/animations/brand-anthropic-icon.d.ts.map +1 -0
  172. package/dist/animations/brand-anthropic-icon.js +60 -0
  173. package/dist/animations/brand-anthropic-icon.js.map +1 -0
  174. package/dist/animations/brand-aws-icon.d.ts +4 -0
  175. package/dist/animations/brand-aws-icon.d.ts.map +1 -0
  176. package/dist/animations/brand-aws-icon.js +78 -0
  177. package/dist/animations/brand-aws-icon.js.map +1 -0
  178. package/dist/animations/brand-bags-fm-icon.d.ts +4 -0
  179. package/dist/animations/brand-bags-fm-icon.d.ts.map +1 -0
  180. package/dist/animations/brand-bags-fm-icon.js +71 -0
  181. package/dist/animations/brand-bags-fm-icon.js.map +1 -0
  182. package/dist/animations/brand-chrome-icon.d.ts +4 -0
  183. package/dist/animations/brand-chrome-icon.d.ts.map +1 -0
  184. package/dist/animations/brand-chrome-icon.js +73 -0
  185. package/dist/animations/brand-chrome-icon.js.map +1 -0
  186. package/dist/animations/brand-cursor-icon.d.ts +4 -0
  187. package/dist/animations/brand-cursor-icon.d.ts.map +1 -0
  188. package/dist/animations/brand-cursor-icon.js +58 -0
  189. package/dist/animations/brand-cursor-icon.js.map +1 -0
  190. package/dist/animations/brand-gemini-icon.d.ts +4 -0
  191. package/dist/animations/brand-gemini-icon.d.ts.map +1 -0
  192. package/dist/animations/brand-gemini-icon.js +54 -0
  193. package/dist/animations/brand-gemini-icon.js.map +1 -0
  194. package/dist/animations/brand-google-icon.d.ts +4 -0
  195. package/dist/animations/brand-google-icon.d.ts.map +1 -0
  196. package/dist/animations/brand-google-icon.js +66 -0
  197. package/dist/animations/brand-google-icon.js.map +1 -0
  198. package/dist/animations/brand-grok-icon.d.ts +4 -0
  199. package/dist/animations/brand-grok-icon.d.ts.map +1 -0
  200. package/dist/animations/brand-grok-icon.js +75 -0
  201. package/dist/animations/brand-grok-icon.js.map +1 -0
  202. package/dist/animations/brand-lmstudio-icon.d.ts +4 -0
  203. package/dist/animations/brand-lmstudio-icon.d.ts.map +1 -0
  204. package/dist/animations/brand-lmstudio-icon.js +106 -0
  205. package/dist/animations/brand-lmstudio-icon.js.map +1 -0
  206. package/dist/animations/brand-midjourney-icon.d.ts +4 -0
  207. package/dist/animations/brand-midjourney-icon.d.ts.map +1 -0
  208. package/dist/animations/brand-midjourney-icon.js +99 -0
  209. package/dist/animations/brand-midjourney-icon.js.map +1 -0
  210. package/dist/animations/brand-nextjs-icon.d.ts +4 -0
  211. package/dist/animations/brand-nextjs-icon.d.ts.map +1 -0
  212. package/dist/animations/brand-nextjs-icon.js +79 -0
  213. package/dist/animations/brand-nextjs-icon.js.map +1 -0
  214. package/dist/animations/brand-notion-icon.d.ts +4 -0
  215. package/dist/animations/brand-notion-icon.d.ts.map +1 -0
  216. package/dist/animations/brand-notion-icon.js +80 -0
  217. package/dist/animations/brand-notion-icon.js.map +1 -0
  218. package/dist/animations/brand-ollama-icon.d.ts +4 -0
  219. package/dist/animations/brand-ollama-icon.d.ts.map +1 -0
  220. package/dist/animations/brand-ollama-icon.js +104 -0
  221. package/dist/animations/brand-ollama-icon.js.map +1 -0
  222. package/dist/animations/brand-openai-icon.d.ts +4 -0
  223. package/dist/animations/brand-openai-icon.d.ts.map +1 -0
  224. package/dist/animations/brand-openai-icon.js +60 -0
  225. package/dist/animations/brand-openai-icon.js.map +1 -0
  226. package/dist/animations/brand-paypal-icon.d.ts +4 -0
  227. package/dist/animations/brand-paypal-icon.d.ts.map +1 -0
  228. package/dist/animations/brand-paypal-icon.js +83 -0
  229. package/dist/animations/brand-paypal-icon.js.map +1 -0
  230. package/dist/animations/brand-qwen-icon.d.ts +4 -0
  231. package/dist/animations/brand-qwen-icon.d.ts.map +1 -0
  232. package/dist/animations/brand-qwen-icon.js +62 -0
  233. package/dist/animations/brand-qwen-icon.js.map +1 -0
  234. package/dist/animations/brand-railway-icon.d.ts +4 -0
  235. package/dist/animations/brand-railway-icon.d.ts.map +1 -0
  236. package/dist/animations/brand-railway-icon.js +60 -0
  237. package/dist/animations/brand-railway-icon.js.map +1 -0
  238. package/dist/animations/brand-react-icon.d.ts +4 -0
  239. package/dist/animations/brand-react-icon.d.ts.map +1 -0
  240. package/dist/animations/brand-react-icon.js +170 -0
  241. package/dist/animations/brand-react-icon.js.map +1 -0
  242. package/dist/animations/brand-react-native-icon.d.ts +4 -0
  243. package/dist/animations/brand-react-native-icon.d.ts.map +1 -0
  244. package/dist/animations/brand-react-native-icon.js +142 -0
  245. package/dist/animations/brand-react-native-icon.js.map +1 -0
  246. package/dist/animations/brand-stripe-icon.d.ts +4 -0
  247. package/dist/animations/brand-stripe-icon.d.ts.map +1 -0
  248. package/dist/animations/brand-stripe-icon.js +69 -0
  249. package/dist/animations/brand-stripe-icon.js.map +1 -0
  250. package/dist/animations/brand-telegram-icon.d.ts +4 -0
  251. package/dist/animations/brand-telegram-icon.d.ts.map +1 -0
  252. package/dist/animations/brand-telegram-icon.js +78 -0
  253. package/dist/animations/brand-telegram-icon.js.map +1 -0
  254. package/dist/animations/brand-threads-icon.d.ts +4 -0
  255. package/dist/animations/brand-threads-icon.d.ts.map +1 -0
  256. package/dist/animations/brand-threads-icon.js +83 -0
  257. package/dist/animations/brand-threads-icon.js.map +1 -0
  258. package/dist/animations/brand-twitch-icon.d.ts +4 -0
  259. package/dist/animations/brand-twitch-icon.d.ts.map +1 -0
  260. package/dist/animations/brand-twitch-icon.js +80 -0
  261. package/dist/animations/brand-twitch-icon.js.map +1 -0
  262. package/dist/animations/brand-vercel-icon.d.ts +4 -0
  263. package/dist/animations/brand-vercel-icon.d.ts.map +1 -0
  264. package/dist/animations/brand-vercel-icon.js +48 -0
  265. package/dist/animations/brand-vercel-icon.js.map +1 -0
  266. package/dist/animations/brand-windows-icon.d.ts +4 -0
  267. package/dist/animations/brand-windows-icon.d.ts.map +1 -0
  268. package/dist/animations/brand-windows-icon.js +268 -0
  269. package/dist/animations/brand-windows-icon.js.map +1 -0
  270. package/dist/animations/brand-wordpress-icon.d.ts +4 -0
  271. package/dist/animations/brand-wordpress-icon.d.ts.map +1 -0
  272. package/dist/animations/brand-wordpress-icon.js +61 -0
  273. package/dist/animations/brand-wordpress-icon.js.map +1 -0
  274. package/dist/animations/brand-xai-icon.d.ts +4 -0
  275. package/dist/animations/brand-xai-icon.d.ts.map +1 -0
  276. package/dist/animations/brand-xai-icon.js +127 -0
  277. package/dist/animations/brand-xai-icon.js.map +1 -0
  278. package/dist/animations/brand-zoom-icon.d.ts +4 -0
  279. package/dist/animations/brand-zoom-icon.d.ts.map +1 -0
  280. package/dist/animations/brand-zoom-icon.js +143 -0
  281. package/dist/animations/brand-zoom-icon.js.map +1 -0
  282. package/dist/animations/brightness-down-icon.d.ts +4 -0
  283. package/dist/animations/brightness-down-icon.d.ts.map +1 -0
  284. package/dist/animations/brightness-down-icon.js +85 -0
  285. package/dist/animations/brightness-down-icon.js.map +1 -0
  286. package/dist/animations/bug-icon.d.ts +4 -0
  287. package/dist/animations/bug-icon.d.ts.map +1 -0
  288. package/dist/animations/bug-icon.js +113 -0
  289. package/dist/animations/bug-icon.js.map +1 -0
  290. package/dist/animations/bulb-svg.d.ts +4 -0
  291. package/dist/animations/bulb-svg.d.ts.map +1 -0
  292. package/dist/animations/bulb-svg.js +99 -0
  293. package/dist/animations/bulb-svg.js.map +1 -0
  294. package/dist/animations/camera-icon.d.ts +4 -0
  295. package/dist/animations/camera-icon.d.ts.map +1 -0
  296. package/dist/animations/camera-icon.js +60 -0
  297. package/dist/animations/camera-icon.js.map +1 -0
  298. package/dist/animations/camera-off-icon.d.ts +4 -0
  299. package/dist/animations/camera-off-icon.d.ts.map +1 -0
  300. package/dist/animations/camera-off-icon.js +68 -0
  301. package/dist/animations/camera-off-icon.js.map +1 -0
  302. package/dist/animations/candy-cane-icon.d.ts +4 -0
  303. package/dist/animations/candy-cane-icon.d.ts.map +1 -0
  304. package/dist/animations/candy-cane-icon.js +62 -0
  305. package/dist/animations/candy-cane-icon.js.map +1 -0
  306. package/dist/animations/cart-icon.d.ts +4 -0
  307. package/dist/animations/cart-icon.d.ts.map +1 -0
  308. package/dist/animations/cart-icon.js +73 -0
  309. package/dist/animations/cart-icon.js.map +1 -0
  310. package/dist/animations/chart-bar-icon.d.ts +4 -0
  311. package/dist/animations/chart-bar-icon.d.ts.map +1 -0
  312. package/dist/animations/chart-bar-icon.js +85 -0
  313. package/dist/animations/chart-bar-icon.js.map +1 -0
  314. package/dist/animations/chart-covariate-icon.d.ts +4 -0
  315. package/dist/animations/chart-covariate-icon.d.ts.map +1 -0
  316. package/dist/animations/chart-covariate-icon.js +123 -0
  317. package/dist/animations/chart-covariate-icon.js.map +1 -0
  318. package/dist/animations/chart-histogram-icon.d.ts +4 -0
  319. package/dist/animations/chart-histogram-icon.d.ts.map +1 -0
  320. package/dist/animations/chart-histogram-icon.js +92 -0
  321. package/dist/animations/chart-histogram-icon.js.map +1 -0
  322. package/dist/animations/chart-line-icon.d.ts +4 -0
  323. package/dist/animations/chart-line-icon.d.ts.map +1 -0
  324. package/dist/animations/chart-line-icon.js +67 -0
  325. package/dist/animations/chart-line-icon.js.map +1 -0
  326. package/dist/animations/chart-pie-icon.d.ts +4 -0
  327. package/dist/animations/chart-pie-icon.d.ts.map +1 -0
  328. package/dist/animations/chart-pie-icon.js +75 -0
  329. package/dist/animations/chart-pie-icon.js.map +1 -0
  330. package/dist/animations/checked-icon.d.ts +4 -0
  331. package/dist/animations/checked-icon.d.ts.map +1 -0
  332. package/dist/animations/checked-icon.js +64 -0
  333. package/dist/animations/checked-icon.js.map +1 -0
  334. package/dist/animations/clock-icon.d.ts +4 -0
  335. package/dist/animations/clock-icon.d.ts.map +1 -0
  336. package/dist/animations/clock-icon.js +59 -0
  337. package/dist/animations/clock-icon.js.map +1 -0
  338. package/dist/animations/cloud-1-icon.d.ts +4 -0
  339. package/dist/animations/cloud-1-icon.d.ts.map +1 -0
  340. package/dist/animations/cloud-1-icon.js +44 -0
  341. package/dist/animations/cloud-1-icon.js.map +1 -0
  342. package/dist/animations/cloud-2-icon.d.ts +4 -0
  343. package/dist/animations/cloud-2-icon.d.ts.map +1 -0
  344. package/dist/animations/cloud-2-icon.js +104 -0
  345. package/dist/animations/cloud-2-icon.js.map +1 -0
  346. package/dist/animations/cloud-3-icon.d.ts +4 -0
  347. package/dist/animations/cloud-3-icon.d.ts.map +1 -0
  348. package/dist/animations/cloud-3-icon.js +83 -0
  349. package/dist/animations/cloud-3-icon.js.map +1 -0
  350. package/dist/animations/code-icon.d.ts +4 -0
  351. package/dist/animations/code-icon.d.ts.map +1 -0
  352. package/dist/animations/code-icon.js +57 -0
  353. package/dist/animations/code-icon.js.map +1 -0
  354. package/dist/animations/code-xml-icon.d.ts +4 -0
  355. package/dist/animations/code-xml-icon.d.ts.map +1 -0
  356. package/dist/animations/code-xml-icon.js +77 -0
  357. package/dist/animations/code-xml-icon.js.map +1 -0
  358. package/dist/animations/coffee-icon.d.ts +4 -0
  359. package/dist/animations/coffee-icon.d.ts.map +1 -0
  360. package/dist/animations/coffee-icon.js +74 -0
  361. package/dist/animations/coffee-icon.js.map +1 -0
  362. package/dist/animations/coin-bitcoin-icon.d.ts +4 -0
  363. package/dist/animations/coin-bitcoin-icon.d.ts.map +1 -0
  364. package/dist/animations/coin-bitcoin-icon.js +40 -0
  365. package/dist/animations/coin-bitcoin-icon.js.map +1 -0
  366. package/dist/animations/copy-icon.d.ts +4 -0
  367. package/dist/animations/copy-icon.d.ts.map +1 -0
  368. package/dist/animations/copy-icon.js +72 -0
  369. package/dist/animations/copy-icon.js.map +1 -0
  370. package/dist/animations/copy-off-icon.d.ts +4 -0
  371. package/dist/animations/copy-off-icon.d.ts.map +1 -0
  372. package/dist/animations/copy-off-icon.js +72 -0
  373. package/dist/animations/copy-off-icon.js.map +1 -0
  374. package/dist/animations/copyright-icon.d.ts +4 -0
  375. package/dist/animations/copyright-icon.d.ts.map +1 -0
  376. package/dist/animations/copyright-icon.js +66 -0
  377. package/dist/animations/copyright-icon.js.map +1 -0
  378. package/dist/animations/cpu-icon.d.ts +4 -0
  379. package/dist/animations/cpu-icon.d.ts.map +1 -0
  380. package/dist/animations/cpu-icon.js +99 -0
  381. package/dist/animations/cpu-icon.js.map +1 -0
  382. package/dist/animations/credit-card.d.ts +4 -0
  383. package/dist/animations/credit-card.d.ts.map +1 -0
  384. package/dist/animations/credit-card.js +109 -0
  385. package/dist/animations/credit-card.js.map +1 -0
  386. package/dist/animations/currency-bitcoin-icon.d.ts +4 -0
  387. package/dist/animations/currency-bitcoin-icon.d.ts.map +1 -0
  388. package/dist/animations/currency-bitcoin-icon.js +113 -0
  389. package/dist/animations/currency-bitcoin-icon.js.map +1 -0
  390. package/dist/animations/currency-dollar-icon.d.ts +4 -0
  391. package/dist/animations/currency-dollar-icon.d.ts.map +1 -0
  392. package/dist/animations/currency-dollar-icon.js +78 -0
  393. package/dist/animations/currency-dollar-icon.js.map +1 -0
  394. package/dist/animations/currency-ethereum-icon.d.ts +4 -0
  395. package/dist/animations/currency-ethereum-icon.d.ts.map +1 -0
  396. package/dist/animations/currency-ethereum-icon.js +78 -0
  397. package/dist/animations/currency-ethereum-icon.js.map +1 -0
  398. package/dist/animations/currency-euro-icon.d.ts +4 -0
  399. package/dist/animations/currency-euro-icon.d.ts.map +1 -0
  400. package/dist/animations/currency-euro-icon.js +86 -0
  401. package/dist/animations/currency-euro-icon.js.map +1 -0
  402. package/dist/animations/currency-rupee-icon.d.ts +4 -0
  403. package/dist/animations/currency-rupee-icon.d.ts.map +1 -0
  404. package/dist/animations/currency-rupee-icon.js +76 -0
  405. package/dist/animations/currency-rupee-icon.js.map +1 -0
  406. package/dist/animations/device-airpods-icon.d.ts +4 -0
  407. package/dist/animations/device-airpods-icon.d.ts.map +1 -0
  408. package/dist/animations/device-airpods-icon.js +83 -0
  409. package/dist/animations/device-airpods-icon.js.map +1 -0
  410. package/dist/animations/dialpad-icon.d.ts +4 -0
  411. package/dist/animations/dialpad-icon.d.ts.map +1 -0
  412. package/dist/animations/dialpad-icon.js +76 -0
  413. package/dist/animations/dialpad-icon.js.map +1 -0
  414. package/dist/animations/dino-icon.d.ts +4 -0
  415. package/dist/animations/dino-icon.d.ts.map +1 -0
  416. package/dist/animations/dino-icon.js +87 -0
  417. package/dist/animations/dino-icon.js.map +1 -0
  418. package/dist/animations/discord-icon.d.ts +4 -0
  419. package/dist/animations/discord-icon.d.ts.map +1 -0
  420. package/dist/animations/discord-icon.js +89 -0
  421. package/dist/animations/discord-icon.js.map +1 -0
  422. package/dist/animations/docker-icon.d.ts +4 -0
  423. package/dist/animations/docker-icon.d.ts.map +1 -0
  424. package/dist/animations/docker-icon.js +101 -0
  425. package/dist/animations/docker-icon.js.map +1 -0
  426. package/dist/animations/dots-horizontal-icon.d.ts +4 -0
  427. package/dist/animations/dots-horizontal-icon.d.ts.map +1 -0
  428. package/dist/animations/dots-horizontal-icon.js +91 -0
  429. package/dist/animations/dots-horizontal-icon.js.map +1 -0
  430. package/dist/animations/dots-vertical-icon.d.ts +4 -0
  431. package/dist/animations/dots-vertical-icon.d.ts.map +1 -0
  432. package/dist/animations/dots-vertical-icon.js +91 -0
  433. package/dist/animations/dots-vertical-icon.js.map +1 -0
  434. package/dist/animations/double-check-icon.d.ts +4 -0
  435. package/dist/animations/double-check-icon.d.ts.map +1 -0
  436. package/dist/animations/double-check-icon.js +64 -0
  437. package/dist/animations/double-check-icon.js.map +1 -0
  438. package/dist/animations/down-chevron.d.ts +4 -0
  439. package/dist/animations/down-chevron.d.ts.map +1 -0
  440. package/dist/animations/down-chevron.js +52 -0
  441. package/dist/animations/down-chevron.js.map +1 -0
  442. package/dist/animations/download-icon.d.ts +4 -0
  443. package/dist/animations/download-icon.d.ts.map +1 -0
  444. package/dist/animations/download-icon.js +120 -0
  445. package/dist/animations/download-icon.js.map +1 -0
  446. package/dist/animations/drum-icon.d.ts +4 -0
  447. package/dist/animations/drum-icon.d.ts.map +1 -0
  448. package/dist/animations/drum-icon.js +104 -0
  449. package/dist/animations/drum-icon.js.map +1 -0
  450. package/dist/animations/expand-icon.d.ts +4 -0
  451. package/dist/animations/expand-icon.d.ts.map +1 -0
  452. package/dist/animations/expand-icon.js +104 -0
  453. package/dist/animations/expand-icon.js.map +1 -0
  454. package/dist/animations/external-link-icon.d.ts +4 -0
  455. package/dist/animations/external-link-icon.d.ts.map +1 -0
  456. package/dist/animations/external-link-icon.js +69 -0
  457. package/dist/animations/external-link-icon.js.map +1 -0
  458. package/dist/animations/eye-icon.d.ts +4 -0
  459. package/dist/animations/eye-icon.d.ts.map +1 -0
  460. package/dist/animations/eye-icon.js +63 -0
  461. package/dist/animations/eye-icon.js.map +1 -0
  462. package/dist/animations/eye-off-icon.d.ts +4 -0
  463. package/dist/animations/eye-off-icon.d.ts.map +1 -0
  464. package/dist/animations/eye-off-icon.js +70 -0
  465. package/dist/animations/eye-off-icon.js.map +1 -0
  466. package/dist/animations/facebook-icon.d.ts +4 -0
  467. package/dist/animations/facebook-icon.d.ts.map +1 -0
  468. package/dist/animations/facebook-icon.js +88 -0
  469. package/dist/animations/facebook-icon.js.map +1 -0
  470. package/dist/animations/figma-icon.d.ts +4 -0
  471. package/dist/animations/figma-icon.d.ts.map +1 -0
  472. package/dist/animations/figma-icon.js +83 -0
  473. package/dist/animations/figma-icon.js.map +1 -0
  474. package/dist/animations/file-description-icon.d.ts +4 -0
  475. package/dist/animations/file-description-icon.d.ts.map +1 -0
  476. package/dist/animations/file-description-icon.js +60 -0
  477. package/dist/animations/file-description-icon.js.map +1 -0
  478. package/dist/animations/filled-bell-icon.d.ts +4 -0
  479. package/dist/animations/filled-bell-icon.d.ts.map +1 -0
  480. package/dist/animations/filled-bell-icon.js +71 -0
  481. package/dist/animations/filled-bell-icon.js.map +1 -0
  482. package/dist/animations/filled-checked-icon.d.ts +4 -0
  483. package/dist/animations/filled-checked-icon.d.ts.map +1 -0
  484. package/dist/animations/filled-checked-icon.js +84 -0
  485. package/dist/animations/filled-checked-icon.js.map +1 -0
  486. package/dist/animations/filter-icon.d.ts +4 -0
  487. package/dist/animations/filter-icon.d.ts.map +1 -0
  488. package/dist/animations/filter-icon.js +186 -0
  489. package/dist/animations/filter-icon.js.map +1 -0
  490. package/dist/animations/flame-icon.d.ts +4 -0
  491. package/dist/animations/flame-icon.d.ts.map +1 -0
  492. package/dist/animations/flame-icon.js +74 -0
  493. package/dist/animations/flame-icon.js.map +1 -0
  494. package/dist/animations/focus-icon.d.ts +4 -0
  495. package/dist/animations/focus-icon.d.ts.map +1 -0
  496. package/dist/animations/focus-icon.js +68 -0
  497. package/dist/animations/focus-icon.js.map +1 -0
  498. package/dist/animations/gamepad-icon.d.ts +4 -0
  499. package/dist/animations/gamepad-icon.d.ts.map +1 -0
  500. package/dist/animations/gamepad-icon.js +130 -0
  501. package/dist/animations/gamepad-icon.js.map +1 -0
  502. package/dist/animations/gauge-icon.d.ts +4 -0
  503. package/dist/animations/gauge-icon.d.ts.map +1 -0
  504. package/dist/animations/gauge-icon.js +51 -0
  505. package/dist/animations/gauge-icon.js.map +1 -0
  506. package/dist/animations/gear-icon.d.ts +4 -0
  507. package/dist/animations/gear-icon.d.ts.map +1 -0
  508. package/dist/animations/gear-icon.js +70 -0
  509. package/dist/animations/gear-icon.js.map +1 -0
  510. package/dist/animations/ghost-icon.d.ts +4 -0
  511. package/dist/animations/ghost-icon.d.ts.map +1 -0
  512. package/dist/animations/ghost-icon.js +108 -0
  513. package/dist/animations/ghost-icon.js.map +1 -0
  514. package/dist/animations/github-copilot-icon.d.ts +4 -0
  515. package/dist/animations/github-copilot-icon.d.ts.map +1 -0
  516. package/dist/animations/github-copilot-icon.js +76 -0
  517. package/dist/animations/github-copilot-icon.js.map +1 -0
  518. package/dist/animations/github-icon.d.ts +4 -0
  519. package/dist/animations/github-icon.d.ts.map +1 -0
  520. package/dist/animations/github-icon.js +69 -0
  521. package/dist/animations/github-icon.js.map +1 -0
  522. package/dist/animations/gitlab-icon.d.ts +4 -0
  523. package/dist/animations/gitlab-icon.d.ts.map +1 -0
  524. package/dist/animations/gitlab-icon.js +66 -0
  525. package/dist/animations/gitlab-icon.js.map +1 -0
  526. package/dist/animations/globe-icon.d.ts +4 -0
  527. package/dist/animations/globe-icon.d.ts.map +1 -0
  528. package/dist/animations/globe-icon.js +77 -0
  529. package/dist/animations/globe-icon.js.map +1 -0
  530. package/dist/animations/gmail-icon.d.ts +4 -0
  531. package/dist/animations/gmail-icon.d.ts.map +1 -0
  532. package/dist/animations/gmail-icon.js +86 -0
  533. package/dist/animations/gmail-icon.js.map +1 -0
  534. package/dist/animations/golang-icon.d.ts +4 -0
  535. package/dist/animations/golang-icon.d.ts.map +1 -0
  536. package/dist/animations/golang-icon.js +64 -0
  537. package/dist/animations/golang-icon.js.map +1 -0
  538. package/dist/animations/hand-heart-icon.d.ts +4 -0
  539. package/dist/animations/hand-heart-icon.d.ts.map +1 -0
  540. package/dist/animations/hand-heart-icon.js +66 -0
  541. package/dist/animations/hand-heart-icon.js.map +1 -0
  542. package/dist/animations/hashtag-icon.d.ts +4 -0
  543. package/dist/animations/hashtag-icon.d.ts.map +1 -0
  544. package/dist/animations/hashtag-icon.js +77 -0
  545. package/dist/animations/hashtag-icon.js.map +1 -0
  546. package/dist/animations/heart-icon.d.ts +4 -0
  547. package/dist/animations/heart-icon.d.ts.map +1 -0
  548. package/dist/animations/heart-icon.js +60 -0
  549. package/dist/animations/heart-icon.js.map +1 -0
  550. package/dist/animations/history-circle-icon.d.ts +4 -0
  551. package/dist/animations/history-circle-icon.d.ts.map +1 -0
  552. package/dist/animations/history-circle-icon.js +66 -0
  553. package/dist/animations/history-circle-icon.js.map +1 -0
  554. package/dist/animations/home-icon.d.ts +4 -0
  555. package/dist/animations/home-icon.d.ts.map +1 -0
  556. package/dist/animations/home-icon.js +75 -0
  557. package/dist/animations/home-icon.js.map +1 -0
  558. package/dist/animations/hotel-icon.d.ts +4 -0
  559. package/dist/animations/hotel-icon.d.ts.map +1 -0
  560. package/dist/animations/hotel-icon.js +68 -0
  561. package/dist/animations/hotel-icon.js.map +1 -0
  562. package/dist/animations/index.d.ts +267 -0
  563. package/dist/animations/index.d.ts.map +1 -0
  564. package/dist/animations/index.js +266 -0
  565. package/dist/animations/info-circle-icon.d.ts +4 -0
  566. package/dist/animations/info-circle-icon.d.ts.map +1 -0
  567. package/dist/animations/info-circle-icon.js +62 -0
  568. package/dist/animations/info-circle-icon.js.map +1 -0
  569. package/dist/animations/instagram-icon.d.ts +4 -0
  570. package/dist/animations/instagram-icon.d.ts.map +1 -0
  571. package/dist/animations/instagram-icon.js +79 -0
  572. package/dist/animations/instagram-icon.js.map +1 -0
  573. package/dist/animations/javascript-icon.d.ts +4 -0
  574. package/dist/animations/javascript-icon.d.ts.map +1 -0
  575. package/dist/animations/javascript-icon.js +80 -0
  576. package/dist/animations/javascript-icon.js.map +1 -0
  577. package/dist/animations/keyframes-icon.d.ts +4 -0
  578. package/dist/animations/keyframes-icon.d.ts.map +1 -0
  579. package/dist/animations/keyframes-icon.js +81 -0
  580. package/dist/animations/keyframes-icon.js.map +1 -0
  581. package/dist/animations/layers-icon.d.ts +4 -0
  582. package/dist/animations/layers-icon.d.ts.map +1 -0
  583. package/dist/animations/layers-icon.js +68 -0
  584. package/dist/animations/layers-icon.js.map +1 -0
  585. package/dist/animations/layout-bottombar-collapse-icon.d.ts +4 -0
  586. package/dist/animations/layout-bottombar-collapse-icon.d.ts.map +1 -0
  587. package/dist/animations/layout-bottombar-collapse-icon.js +54 -0
  588. package/dist/animations/layout-bottombar-collapse-icon.js.map +1 -0
  589. package/dist/animations/layout-dashboard-icon.d.ts +4 -0
  590. package/dist/animations/layout-dashboard-icon.d.ts.map +1 -0
  591. package/dist/animations/layout-dashboard-icon.js +114 -0
  592. package/dist/animations/layout-dashboard-icon.js.map +1 -0
  593. package/dist/animations/layout-sidebar-right-collapse-icon.d.ts +4 -0
  594. package/dist/animations/layout-sidebar-right-collapse-icon.d.ts.map +1 -0
  595. package/dist/animations/layout-sidebar-right-collapse-icon.js +72 -0
  596. package/dist/animations/layout-sidebar-right-collapse-icon.js.map +1 -0
  597. package/dist/animations/layout-sidebar-right-icon.d.ts +4 -0
  598. package/dist/animations/layout-sidebar-right-icon.d.ts.map +1 -0
  599. package/dist/animations/layout-sidebar-right-icon.js +65 -0
  600. package/dist/animations/layout-sidebar-right-icon.js.map +1 -0
  601. package/dist/animations/letter-a-icon.d.ts +4 -0
  602. package/dist/animations/letter-a-icon.d.ts.map +1 -0
  603. package/dist/animations/letter-a-icon.js +82 -0
  604. package/dist/animations/letter-a-icon.js.map +1 -0
  605. package/dist/animations/letter-b-icon.d.ts +4 -0
  606. package/dist/animations/letter-b-icon.d.ts.map +1 -0
  607. package/dist/animations/letter-b-icon.js +48 -0
  608. package/dist/animations/letter-b-icon.js.map +1 -0
  609. package/dist/animations/letter-c-icon.d.ts +4 -0
  610. package/dist/animations/letter-c-icon.d.ts.map +1 -0
  611. package/dist/animations/letter-c-icon.js +50 -0
  612. package/dist/animations/letter-c-icon.js.map +1 -0
  613. package/dist/animations/letter-d-icon.d.ts +4 -0
  614. package/dist/animations/letter-d-icon.d.ts.map +1 -0
  615. package/dist/animations/letter-d-icon.js +60 -0
  616. package/dist/animations/letter-d-icon.js.map +1 -0
  617. package/dist/animations/letter-e-icon.d.ts +4 -0
  618. package/dist/animations/letter-e-icon.d.ts.map +1 -0
  619. package/dist/animations/letter-e-icon.js +76 -0
  620. package/dist/animations/letter-e-icon.js.map +1 -0
  621. package/dist/animations/letter-f-icon.d.ts +4 -0
  622. package/dist/animations/letter-f-icon.d.ts.map +1 -0
  623. package/dist/animations/letter-f-icon.js +90 -0
  624. package/dist/animations/letter-f-icon.js.map +1 -0
  625. package/dist/animations/letter-g-icon.d.ts +4 -0
  626. package/dist/animations/letter-g-icon.d.ts.map +1 -0
  627. package/dist/animations/letter-g-icon.js +49 -0
  628. package/dist/animations/letter-g-icon.js.map +1 -0
  629. package/dist/animations/letter-h-icon.d.ts +4 -0
  630. package/dist/animations/letter-h-icon.d.ts.map +1 -0
  631. package/dist/animations/letter-h-icon.js +53 -0
  632. package/dist/animations/letter-h-icon.js.map +1 -0
  633. package/dist/animations/letter-i-icon.d.ts +4 -0
  634. package/dist/animations/letter-i-icon.d.ts.map +1 -0
  635. package/dist/animations/letter-i-icon.js +61 -0
  636. package/dist/animations/letter-i-icon.js.map +1 -0
  637. package/dist/animations/letter-j-icon.d.ts +4 -0
  638. package/dist/animations/letter-j-icon.d.ts.map +1 -0
  639. package/dist/animations/letter-j-icon.js +55 -0
  640. package/dist/animations/letter-j-icon.js.map +1 -0
  641. package/dist/animations/letter-k-icon.d.ts +4 -0
  642. package/dist/animations/letter-k-icon.d.ts.map +1 -0
  643. package/dist/animations/letter-k-icon.js +80 -0
  644. package/dist/animations/letter-k-icon.js.map +1 -0
  645. package/dist/animations/letter-l-icon.d.ts +4 -0
  646. package/dist/animations/letter-l-icon.d.ts.map +1 -0
  647. package/dist/animations/letter-l-icon.js +73 -0
  648. package/dist/animations/letter-l-icon.js.map +1 -0
  649. package/dist/animations/letter-m-icon.d.ts +4 -0
  650. package/dist/animations/letter-m-icon.d.ts.map +1 -0
  651. package/dist/animations/letter-m-icon.js +57 -0
  652. package/dist/animations/letter-m-icon.js.map +1 -0
  653. package/dist/animations/letter-n-icon.d.ts +4 -0
  654. package/dist/animations/letter-n-icon.d.ts.map +1 -0
  655. package/dist/animations/letter-n-icon.js +49 -0
  656. package/dist/animations/letter-n-icon.js.map +1 -0
  657. package/dist/animations/letter-o-icon.d.ts +4 -0
  658. package/dist/animations/letter-o-icon.d.ts.map +1 -0
  659. package/dist/animations/letter-o-icon.js +53 -0
  660. package/dist/animations/letter-o-icon.js.map +1 -0
  661. package/dist/animations/letter-p-icon.d.ts +4 -0
  662. package/dist/animations/letter-p-icon.d.ts.map +1 -0
  663. package/dist/animations/letter-p-icon.js +48 -0
  664. package/dist/animations/letter-p-icon.js.map +1 -0
  665. package/dist/animations/letter-q-icon.d.ts +4 -0
  666. package/dist/animations/letter-q-icon.d.ts.map +1 -0
  667. package/dist/animations/letter-q-icon.js +62 -0
  668. package/dist/animations/letter-q-icon.js.map +1 -0
  669. package/dist/animations/letter-r-icon.d.ts +4 -0
  670. package/dist/animations/letter-r-icon.d.ts.map +1 -0
  671. package/dist/animations/letter-r-icon.js +67 -0
  672. package/dist/animations/letter-r-icon.js.map +1 -0
  673. package/dist/animations/letter-s-icon.d.ts +4 -0
  674. package/dist/animations/letter-s-icon.d.ts.map +1 -0
  675. package/dist/animations/letter-s-icon.js +63 -0
  676. package/dist/animations/letter-s-icon.js.map +1 -0
  677. package/dist/animations/letter-t-icon.d.ts +4 -0
  678. package/dist/animations/letter-t-icon.d.ts.map +1 -0
  679. package/dist/animations/letter-t-icon.js +60 -0
  680. package/dist/animations/letter-t-icon.js.map +1 -0
  681. package/dist/animations/letter-u-icon.d.ts +4 -0
  682. package/dist/animations/letter-u-icon.d.ts.map +1 -0
  683. package/dist/animations/letter-u-icon.js +56 -0
  684. package/dist/animations/letter-u-icon.js.map +1 -0
  685. package/dist/animations/letter-v-icon.d.ts +4 -0
  686. package/dist/animations/letter-v-icon.d.ts.map +1 -0
  687. package/dist/animations/letter-v-icon.js +64 -0
  688. package/dist/animations/letter-v-icon.js.map +1 -0
  689. package/dist/animations/letter-w-icon.d.ts +4 -0
  690. package/dist/animations/letter-w-icon.d.ts.map +1 -0
  691. package/dist/animations/letter-w-icon.js +76 -0
  692. package/dist/animations/letter-w-icon.js.map +1 -0
  693. package/dist/animations/letter-x-icon.d.ts +4 -0
  694. package/dist/animations/letter-x-icon.d.ts.map +1 -0
  695. package/dist/animations/letter-x-icon.js +76 -0
  696. package/dist/animations/letter-x-icon.js.map +1 -0
  697. package/dist/animations/letter-y-icon.d.ts +4 -0
  698. package/dist/animations/letter-y-icon.d.ts.map +1 -0
  699. package/dist/animations/letter-y-icon.js +62 -0
  700. package/dist/animations/letter-y-icon.js.map +1 -0
  701. package/dist/animations/letter-z-icon.d.ts +4 -0
  702. package/dist/animations/letter-z-icon.d.ts.map +1 -0
  703. package/dist/animations/letter-z-icon.js +48 -0
  704. package/dist/animations/letter-z-icon.js.map +1 -0
  705. package/dist/animations/library-icon.d.ts +4 -0
  706. package/dist/animations/library-icon.d.ts.map +1 -0
  707. package/dist/animations/library-icon.js +83 -0
  708. package/dist/animations/library-icon.js.map +1 -0
  709. package/dist/animations/like-icon.d.ts +4 -0
  710. package/dist/animations/like-icon.d.ts.map +1 -0
  711. package/dist/animations/like-icon.js +77 -0
  712. package/dist/animations/like-icon.js.map +1 -0
  713. package/dist/animations/link-icon.d.ts +4 -0
  714. package/dist/animations/link-icon.d.ts.map +1 -0
  715. package/dist/animations/link-icon.js +82 -0
  716. package/dist/animations/link-icon.js.map +1 -0
  717. package/dist/animations/linkedin-icon.d.ts +4 -0
  718. package/dist/animations/linkedin-icon.d.ts.map +1 -0
  719. package/dist/animations/linkedin-icon.js +79 -0
  720. package/dist/animations/linkedin-icon.js.map +1 -0
  721. package/dist/animations/locate-icon.d.ts +4 -0
  722. package/dist/animations/locate-icon.d.ts.map +1 -0
  723. package/dist/animations/locate-icon.js +101 -0
  724. package/dist/animations/locate-icon.js.map +1 -0
  725. package/dist/animations/lock-icon.d.ts +4 -0
  726. package/dist/animations/lock-icon.d.ts.map +1 -0
  727. package/dist/animations/lock-icon.js +67 -0
  728. package/dist/animations/lock-icon.js.map +1 -0
  729. package/dist/animations/logout-icon.d.ts +4 -0
  730. package/dist/animations/logout-icon.d.ts.map +1 -0
  731. package/dist/animations/logout-icon.js +68 -0
  732. package/dist/animations/logout-icon.js.map +1 -0
  733. package/dist/animations/magnifier-icon.d.ts +4 -0
  734. package/dist/animations/magnifier-icon.d.ts.map +1 -0
  735. package/dist/animations/magnifier-icon.js +84 -0
  736. package/dist/animations/magnifier-icon.js.map +1 -0
  737. package/dist/animations/mail-filled-icon.d.ts +4 -0
  738. package/dist/animations/mail-filled-icon.d.ts.map +1 -0
  739. package/dist/animations/mail-filled-icon.js +58 -0
  740. package/dist/animations/mail-filled-icon.js.map +1 -0
  741. package/dist/animations/map-pin-icon.d.ts +4 -0
  742. package/dist/animations/map-pin-icon.d.ts.map +1 -0
  743. package/dist/animations/map-pin-icon.js +48 -0
  744. package/dist/animations/map-pin-icon.js.map +1 -0
  745. package/dist/animations/meh-icon.d.ts +4 -0
  746. package/dist/animations/meh-icon.d.ts.map +1 -0
  747. package/dist/animations/meh-icon.js +87 -0
  748. package/dist/animations/meh-icon.js.map +1 -0
  749. package/dist/animations/message-circle-icon.d.ts +4 -0
  750. package/dist/animations/message-circle-icon.d.ts.map +1 -0
  751. package/dist/animations/message-circle-icon.js +68 -0
  752. package/dist/animations/message-circle-icon.js.map +1 -0
  753. package/dist/animations/moon-icon.d.ts +4 -0
  754. package/dist/animations/moon-icon.d.ts.map +1 -0
  755. package/dist/animations/moon-icon.js +68 -0
  756. package/dist/animations/moon-icon.js.map +1 -0
  757. package/dist/animations/mouse-pointer-2-icon.d.ts +4 -0
  758. package/dist/animations/mouse-pointer-2-icon.d.ts.map +1 -0
  759. package/dist/animations/mouse-pointer-2-icon.js +61 -0
  760. package/dist/animations/mouse-pointer-2-icon.js.map +1 -0
  761. package/dist/animations/mysql-icon.d.ts +4 -0
  762. package/dist/animations/mysql-icon.d.ts.map +1 -0
  763. package/dist/animations/mysql-icon.js +70 -0
  764. package/dist/animations/mysql-icon.js.map +1 -0
  765. package/dist/animations/nodejs-icon.d.ts +4 -0
  766. package/dist/animations/nodejs-icon.d.ts.map +1 -0
  767. package/dist/animations/nodejs-icon.js +68 -0
  768. package/dist/animations/nodejs-icon.js.map +1 -0
  769. package/dist/animations/paint-icon.d.ts +4 -0
  770. package/dist/animations/paint-icon.d.ts.map +1 -0
  771. package/dist/animations/paint-icon.js +83 -0
  772. package/dist/animations/paint-icon.js.map +1 -0
  773. package/dist/animations/party-popper-icon.d.ts +4 -0
  774. package/dist/animations/party-popper-icon.d.ts.map +1 -0
  775. package/dist/animations/party-popper-icon.js +111 -0
  776. package/dist/animations/party-popper-icon.js.map +1 -0
  777. package/dist/animations/passport-icon.d.ts +4 -0
  778. package/dist/animations/passport-icon.d.ts.map +1 -0
  779. package/dist/animations/passport-icon.js +66 -0
  780. package/dist/animations/passport-icon.js.map +1 -0
  781. package/dist/animations/paw-print-icon.d.ts +4 -0
  782. package/dist/animations/paw-print-icon.d.ts.map +1 -0
  783. package/dist/animations/paw-print-icon.js +108 -0
  784. package/dist/animations/paw-print-icon.js.map +1 -0
  785. package/dist/animations/pen-icon.d.ts +4 -0
  786. package/dist/animations/pen-icon.d.ts.map +1 -0
  787. package/dist/animations/pen-icon.js +107 -0
  788. package/dist/animations/pen-icon.js.map +1 -0
  789. package/dist/animations/phone-volume.d.ts +4 -0
  790. package/dist/animations/phone-volume.d.ts.map +1 -0
  791. package/dist/animations/phone-volume.js +96 -0
  792. package/dist/animations/phone-volume.js.map +1 -0
  793. package/dist/animations/pinterest-icon.d.ts +4 -0
  794. package/dist/animations/pinterest-icon.d.ts.map +1 -0
  795. package/dist/animations/pinterest-icon.js +84 -0
  796. package/dist/animations/pinterest-icon.js.map +1 -0
  797. package/dist/animations/player-icon.d.ts +4 -0
  798. package/dist/animations/player-icon.d.ts.map +1 -0
  799. package/dist/animations/player-icon.js +51 -0
  800. package/dist/animations/player-icon.js.map +1 -0
  801. package/dist/animations/plug-connected-icon.d.ts +4 -0
  802. package/dist/animations/plug-connected-icon.d.ts.map +1 -0
  803. package/dist/animations/plug-connected-icon.js +87 -0
  804. package/dist/animations/plug-connected-icon.js.map +1 -0
  805. package/dist/animations/plug-connected-x-icon.d.ts +4 -0
  806. package/dist/animations/plug-connected-x-icon.d.ts.map +1 -0
  807. package/dist/animations/plug-connected-x-icon.js +83 -0
  808. package/dist/animations/plug-connected-x-icon.js.map +1 -0
  809. package/dist/animations/python-icon.d.ts +4 -0
  810. package/dist/animations/python-icon.d.ts.map +1 -0
  811. package/dist/animations/python-icon.js +109 -0
  812. package/dist/animations/python-icon.js.map +1 -0
  813. package/dist/animations/qrcode-icon.d.ts +4 -0
  814. package/dist/animations/qrcode-icon.d.ts.map +1 -0
  815. package/dist/animations/qrcode-icon.js +238 -0
  816. package/dist/animations/qrcode-icon.js.map +1 -0
  817. package/dist/animations/question-mark.d.ts +4 -0
  818. package/dist/animations/question-mark.d.ts.map +1 -0
  819. package/dist/animations/question-mark.js +78 -0
  820. package/dist/animations/question-mark.js.map +1 -0
  821. package/dist/animations/radio-icon.d.ts +4 -0
  822. package/dist/animations/radio-icon.d.ts.map +1 -0
  823. package/dist/animations/radio-icon.js +106 -0
  824. package/dist/animations/radio-icon.js.map +1 -0
  825. package/dist/animations/rainbow-icon.d.ts +4 -0
  826. package/dist/animations/rainbow-icon.d.ts.map +1 -0
  827. package/dist/animations/rainbow-icon.js +62 -0
  828. package/dist/animations/rainbow-icon.js.map +1 -0
  829. package/dist/animations/refresh-icon.d.ts +4 -0
  830. package/dist/animations/refresh-icon.d.ts.map +1 -0
  831. package/dist/animations/refresh-icon.js +54 -0
  832. package/dist/animations/refresh-icon.js.map +1 -0
  833. package/dist/animations/right-chevron.d.ts +4 -0
  834. package/dist/animations/right-chevron.d.ts.map +1 -0
  835. package/dist/animations/right-chevron.js +48 -0
  836. package/dist/animations/right-chevron.js.map +1 -0
  837. package/dist/animations/rocket-icon.d.ts +4 -0
  838. package/dist/animations/rocket-icon.d.ts.map +1 -0
  839. package/dist/animations/rocket-icon.js +109 -0
  840. package/dist/animations/rocket-icon.js.map +1 -0
  841. package/dist/animations/rosette-discount-check-icon.d.ts +4 -0
  842. package/dist/animations/rosette-discount-check-icon.d.ts.map +1 -0
  843. package/dist/animations/rosette-discount-check-icon.js +88 -0
  844. package/dist/animations/rosette-discount-check-icon.js.map +1 -0
  845. package/dist/animations/rosette-discount-icon.d.ts +4 -0
  846. package/dist/animations/rosette-discount-icon.d.ts.map +1 -0
  847. package/dist/animations/rosette-discount-icon.js +121 -0
  848. package/dist/animations/rosette-discount-icon.js.map +1 -0
  849. package/dist/animations/router-icon.d.ts +4 -0
  850. package/dist/animations/router-icon.d.ts.map +1 -0
  851. package/dist/animations/router-icon.js +100 -0
  852. package/dist/animations/router-icon.js.map +1 -0
  853. package/dist/animations/satellite-dish-icon.d.ts +4 -0
  854. package/dist/animations/satellite-dish-icon.d.ts.map +1 -0
  855. package/dist/animations/satellite-dish-icon.js +96 -0
  856. package/dist/animations/satellite-dish-icon.js.map +1 -0
  857. package/dist/animations/save-icon.d.ts +4 -0
  858. package/dist/animations/save-icon.d.ts.map +1 -0
  859. package/dist/animations/save-icon.js +61 -0
  860. package/dist/animations/save-icon.js.map +1 -0
  861. package/dist/animations/scan-barcode-icon.d.ts +4 -0
  862. package/dist/animations/scan-barcode-icon.d.ts.map +1 -0
  863. package/dist/animations/scan-barcode-icon.js +92 -0
  864. package/dist/animations/scan-barcode-icon.js.map +1 -0
  865. package/dist/animations/scan-heart-icon.d.ts +4 -0
  866. package/dist/animations/scan-heart-icon.d.ts.map +1 -0
  867. package/dist/animations/scan-heart-icon.js +66 -0
  868. package/dist/animations/scan-heart-icon.js.map +1 -0
  869. package/dist/animations/send-horizontal-icon.d.ts +4 -0
  870. package/dist/animations/send-horizontal-icon.d.ts.map +1 -0
  871. package/dist/animations/send-horizontal-icon.js +56 -0
  872. package/dist/animations/send-horizontal-icon.js.map +1 -0
  873. package/dist/animations/send-icon.d.ts +4 -0
  874. package/dist/animations/send-icon.d.ts.map +1 -0
  875. package/dist/animations/send-icon.js +69 -0
  876. package/dist/animations/send-icon.js.map +1 -0
  877. package/dist/animations/shield-check.d.ts +4 -0
  878. package/dist/animations/shield-check.d.ts.map +1 -0
  879. package/dist/animations/shield-check.js +63 -0
  880. package/dist/animations/shield-check.js.map +1 -0
  881. package/dist/animations/shopping-cart-icon.d.ts +4 -0
  882. package/dist/animations/shopping-cart-icon.d.ts.map +1 -0
  883. package/dist/animations/shopping-cart-icon.js +118 -0
  884. package/dist/animations/shopping-cart-icon.js.map +1 -0
  885. package/dist/animations/simple-checked-icon.d.ts +4 -0
  886. package/dist/animations/simple-checked-icon.d.ts.map +1 -0
  887. package/dist/animations/simple-checked-icon.js +50 -0
  888. package/dist/animations/simple-checked-icon.js.map +1 -0
  889. package/dist/animations/skull-emoji.d.ts +4 -0
  890. package/dist/animations/skull-emoji.d.ts.map +1 -0
  891. package/dist/animations/skull-emoji.js +129 -0
  892. package/dist/animations/skull-emoji.js.map +1 -0
  893. package/dist/animations/slack-icon.d.ts +4 -0
  894. package/dist/animations/slack-icon.d.ts.map +1 -0
  895. package/dist/animations/slack-icon.js +95 -0
  896. package/dist/animations/slack-icon.js.map +1 -0
  897. package/dist/animations/sliders-horizontal-icon.d.ts +4 -0
  898. package/dist/animations/sliders-horizontal-icon.d.ts.map +1 -0
  899. package/dist/animations/sliders-horizontal-icon.js +177 -0
  900. package/dist/animations/sliders-horizontal-icon.js.map +1 -0
  901. package/dist/animations/snapchat-icon.d.ts +4 -0
  902. package/dist/animations/snapchat-icon.d.ts.map +1 -0
  903. package/dist/animations/snapchat-icon.js +84 -0
  904. package/dist/animations/snapchat-icon.js.map +1 -0
  905. package/dist/animations/soup-icon.d.ts +4 -0
  906. package/dist/animations/soup-icon.d.ts.map +1 -0
  907. package/dist/animations/soup-icon.js +69 -0
  908. package/dist/animations/soup-icon.js.map +1 -0
  909. package/dist/animations/sparkles-icon.d.ts +4 -0
  910. package/dist/animations/sparkles-icon.d.ts.map +1 -0
  911. package/dist/animations/sparkles-icon.js +105 -0
  912. package/dist/animations/sparkles-icon.js.map +1 -0
  913. package/dist/animations/spotify-icon.d.ts +4 -0
  914. package/dist/animations/spotify-icon.d.ts.map +1 -0
  915. package/dist/animations/spotify-icon.js +119 -0
  916. package/dist/animations/spotify-icon.js.map +1 -0
  917. package/dist/animations/stack-3-icon.d.ts +4 -0
  918. package/dist/animations/stack-3-icon.d.ts.map +1 -0
  919. package/dist/animations/stack-3-icon.js +82 -0
  920. package/dist/animations/stack-3-icon.js.map +1 -0
  921. package/dist/animations/stack-icon.d.ts +4 -0
  922. package/dist/animations/stack-icon.d.ts.map +1 -0
  923. package/dist/animations/stack-icon.js +66 -0
  924. package/dist/animations/stack-icon.js.map +1 -0
  925. package/dist/animations/star-icon.d.ts +4 -0
  926. package/dist/animations/star-icon.d.ts.map +1 -0
  927. package/dist/animations/star-icon.js +83 -0
  928. package/dist/animations/star-icon.js.map +1 -0
  929. package/dist/animations/subscript-icon.d.ts +4 -0
  930. package/dist/animations/subscript-icon.d.ts.map +1 -0
  931. package/dist/animations/subscript-icon.js +74 -0
  932. package/dist/animations/subscript-icon.js.map +1 -0
  933. package/dist/animations/target-icon.d.ts +4 -0
  934. package/dist/animations/target-icon.d.ts.map +1 -0
  935. package/dist/animations/target-icon.js +107 -0
  936. package/dist/animations/target-icon.js.map +1 -0
  937. package/dist/animations/telephone-icon.d.ts +4 -0
  938. package/dist/animations/telephone-icon.d.ts.map +1 -0
  939. package/dist/animations/telephone-icon.js +92 -0
  940. package/dist/animations/telephone-icon.js.map +1 -0
  941. package/dist/animations/terminal-icon.d.ts +4 -0
  942. package/dist/animations/terminal-icon.d.ts.map +1 -0
  943. package/dist/animations/terminal-icon.js +71 -0
  944. package/dist/animations/terminal-icon.js.map +1 -0
  945. package/dist/animations/toggle-icon.d.ts +4 -0
  946. package/dist/animations/toggle-icon.d.ts.map +1 -0
  947. package/dist/animations/toggle-icon.js +61 -0
  948. package/dist/animations/toggle-icon.js.map +1 -0
  949. package/dist/animations/trash-icon.d.ts +9 -0
  950. package/dist/animations/trash-icon.d.ts.map +1 -0
  951. package/dist/animations/trash-icon.js +112 -0
  952. package/dist/animations/trash-icon.js.map +1 -0
  953. package/dist/animations/travel-bag.d.ts +4 -0
  954. package/dist/animations/travel-bag.d.ts.map +1 -0
  955. package/dist/animations/travel-bag.js +95 -0
  956. package/dist/animations/travel-bag.js.map +1 -0
  957. package/dist/animations/triangle-alert-icon.d.ts +4 -0
  958. package/dist/animations/triangle-alert-icon.d.ts.map +1 -0
  959. package/dist/animations/triangle-alert-icon.js +87 -0
  960. package/dist/animations/triangle-alert-icon.js.map +1 -0
  961. package/dist/animations/trophy-icon.d.ts +4 -0
  962. package/dist/animations/trophy-icon.d.ts.map +1 -0
  963. package/dist/animations/trophy-icon.js +168 -0
  964. package/dist/animations/trophy-icon.js.map +1 -0
  965. package/dist/animations/truck-electric-icon.d.ts +4 -0
  966. package/dist/animations/truck-electric-icon.d.ts.map +1 -0
  967. package/dist/animations/truck-electric-icon.js +74 -0
  968. package/dist/animations/truck-electric-icon.js.map +1 -0
  969. package/dist/animations/twitter-icon.d.ts +4 -0
  970. package/dist/animations/twitter-icon.d.ts.map +1 -0
  971. package/dist/animations/twitter-icon.js +86 -0
  972. package/dist/animations/twitter-icon.js.map +1 -0
  973. package/dist/animations/twitter-x-icon.d.ts +4 -0
  974. package/dist/animations/twitter-x-icon.d.ts.map +1 -0
  975. package/dist/animations/twitter-x-icon.js +68 -0
  976. package/dist/animations/twitter-x-icon.js.map +1 -0
  977. package/dist/animations/types.d.ts +21 -0
  978. package/dist/animations/types.d.ts.map +1 -0
  979. package/dist/animations/types.js +9 -0
  980. package/dist/animations/types.js.map +1 -0
  981. package/dist/animations/typescript-icon.d.ts +4 -0
  982. package/dist/animations/typescript-icon.d.ts.map +1 -0
  983. package/dist/animations/typescript-icon.js +86 -0
  984. package/dist/animations/typescript-icon.js.map +1 -0
  985. package/dist/animations/unlink-icon.d.ts +4 -0
  986. package/dist/animations/unlink-icon.d.ts.map +1 -0
  987. package/dist/animations/unlink-icon.js +129 -0
  988. package/dist/animations/unlink-icon.js.map +1 -0
  989. package/dist/animations/unordered-list-icon.d.ts +4 -0
  990. package/dist/animations/unordered-list-icon.d.ts.map +1 -0
  991. package/dist/animations/unordered-list-icon.js +94 -0
  992. package/dist/animations/unordered-list-icon.js.map +1 -0
  993. package/dist/animations/upload-icon.d.ts +4 -0
  994. package/dist/animations/upload-icon.d.ts.map +1 -0
  995. package/dist/animations/upload-icon.js +60 -0
  996. package/dist/animations/upload-icon.js.map +1 -0
  997. package/dist/animations/useAnimatedIconTrigger.d.ts +8 -0
  998. package/dist/animations/useAnimatedIconTrigger.d.ts.map +1 -0
  999. package/dist/animations/useAnimatedIconTrigger.js +24 -0
  1000. package/dist/animations/useAnimatedIconTrigger.js.map +1 -0
  1001. package/dist/animations/user-check-icon.d.ts +4 -0
  1002. package/dist/animations/user-check-icon.d.ts.map +1 -0
  1003. package/dist/animations/user-check-icon.js +76 -0
  1004. package/dist/animations/user-check-icon.js.map +1 -0
  1005. package/dist/animations/user-icon.d.ts +4 -0
  1006. package/dist/animations/user-icon.d.ts.map +1 -0
  1007. package/dist/animations/user-icon.js +55 -0
  1008. package/dist/animations/user-icon.js.map +1 -0
  1009. package/dist/animations/user-plus-icon.d.ts +4 -0
  1010. package/dist/animations/user-plus-icon.d.ts.map +1 -0
  1011. package/dist/animations/user-plus-icon.js +75 -0
  1012. package/dist/animations/user-plus-icon.js.map +1 -0
  1013. package/dist/animations/users-group-icon.d.ts +4 -0
  1014. package/dist/animations/users-group-icon.d.ts.map +1 -0
  1015. package/dist/animations/users-group-icon.js +94 -0
  1016. package/dist/animations/users-group-icon.js.map +1 -0
  1017. package/dist/animations/users-icon.d.ts +4 -0
  1018. package/dist/animations/users-icon.d.ts.map +1 -0
  1019. package/dist/animations/users-icon.js +73 -0
  1020. package/dist/animations/users-icon.js.map +1 -0
  1021. package/dist/animations/vinyl-icon.d.ts +4 -0
  1022. package/dist/animations/vinyl-icon.d.ts.map +1 -0
  1023. package/dist/animations/vinyl-icon.js +70 -0
  1024. package/dist/animations/vinyl-icon.js.map +1 -0
  1025. package/dist/animations/volume-2-icon.d.ts +4 -0
  1026. package/dist/animations/volume-2-icon.d.ts.map +1 -0
  1027. package/dist/animations/volume-2-icon.js +88 -0
  1028. package/dist/animations/volume-2-icon.js.map +1 -0
  1029. package/dist/animations/volume-x-icon.d.ts +4 -0
  1030. package/dist/animations/volume-x-icon.d.ts.map +1 -0
  1031. package/dist/animations/volume-x-icon.js +73 -0
  1032. package/dist/animations/volume-x-icon.js.map +1 -0
  1033. package/dist/animations/wallet-icon.d.ts +4 -0
  1034. package/dist/animations/wallet-icon.d.ts.map +1 -0
  1035. package/dist/animations/wallet-icon.js +74 -0
  1036. package/dist/animations/wallet-icon.js.map +1 -0
  1037. package/dist/animations/washing-machine-icon.d.ts +4 -0
  1038. package/dist/animations/washing-machine-icon.d.ts.map +1 -0
  1039. package/dist/animations/washing-machine-icon.js +58 -0
  1040. package/dist/animations/washing-machine-icon.js.map +1 -0
  1041. package/dist/animations/whatsapp-icon.d.ts +4 -0
  1042. package/dist/animations/whatsapp-icon.d.ts.map +1 -0
  1043. package/dist/animations/whatsapp-icon.js +60 -0
  1044. package/dist/animations/whatsapp-icon.js.map +1 -0
  1045. package/dist/animations/wifi-icon.d.ts +4 -0
  1046. package/dist/animations/wifi-icon.d.ts.map +1 -0
  1047. package/dist/animations/wifi-icon.js +86 -0
  1048. package/dist/animations/wifi-icon.js.map +1 -0
  1049. package/dist/animations/wifi-off-icon.d.ts +4 -0
  1050. package/dist/animations/wifi-off-icon.d.ts.map +1 -0
  1051. package/dist/animations/wifi-off-icon.js +71 -0
  1052. package/dist/animations/wifi-off-icon.js.map +1 -0
  1053. package/dist/animations/world-icon.d.ts +4 -0
  1054. package/dist/animations/world-icon.d.ts.map +1 -0
  1055. package/dist/animations/world-icon.js +74 -0
  1056. package/dist/animations/world-icon.js.map +1 -0
  1057. package/dist/animations/x-icon.d.ts +4 -0
  1058. package/dist/animations/x-icon.d.ts.map +1 -0
  1059. package/dist/animations/x-icon.js +75 -0
  1060. package/dist/animations/x-icon.js.map +1 -0
  1061. package/dist/animations/youtube-icon.d.ts +4 -0
  1062. package/dist/animations/youtube-icon.d.ts.map +1 -0
  1063. package/dist/animations/youtube-icon.js +70 -0
  1064. package/dist/animations/youtube-icon.js.map +1 -0
  1065. package/dist/apis/activeIdentityRepositories.d.ts +4 -0
  1066. package/dist/apis/activeIdentityRepositories.d.ts.map +1 -0
  1067. package/dist/apis/activeIdentityRepositories.js +13 -0
  1068. package/dist/apis/activeIdentityRepositories.js.map +1 -0
  1069. package/dist/apis/authRefresh.d.ts +7 -0
  1070. package/dist/apis/authRefresh.d.ts.map +1 -0
  1071. package/dist/apis/authRefresh.js +79 -0
  1072. package/dist/apis/authRefresh.js.map +1 -0
  1073. package/dist/apis/clients.d.ts +9 -0
  1074. package/dist/apis/clients.d.ts.map +1 -0
  1075. package/dist/apis/clients.js +56 -0
  1076. package/dist/apis/clients.js.map +1 -0
  1077. package/dist/apis/index.d.ts +9 -0
  1078. package/dist/apis/index.d.ts.map +1 -0
  1079. package/dist/apis/index.js +9 -0
  1080. package/dist/apis/ip.d.ts +105 -0
  1081. package/dist/apis/ip.d.ts.map +1 -0
  1082. package/dist/apis/ip.js +104 -0
  1083. package/dist/apis/ip.js.map +1 -0
  1084. package/dist/apis/ip.path.d.ts +5 -0
  1085. package/dist/apis/ip.path.d.ts.map +1 -0
  1086. package/dist/apis/ip.path.js +15 -0
  1087. package/dist/apis/ip.path.js.map +1 -0
  1088. package/dist/apis/repositories/AssetRepository.d.ts +24 -0
  1089. package/dist/apis/repositories/AssetRepository.d.ts.map +1 -0
  1090. package/dist/apis/repositories/AssetRepository.js +45 -0
  1091. package/dist/apis/repositories/AssetRepository.js.map +1 -0
  1092. package/dist/apis/repositories/AuthRepository.d.ts +131 -0
  1093. package/dist/apis/repositories/AuthRepository.d.ts.map +1 -0
  1094. package/dist/apis/repositories/AuthRepository.js +240 -0
  1095. package/dist/apis/repositories/AuthRepository.js.map +1 -0
  1096. package/dist/apis/repositories/context.d.ts +11 -0
  1097. package/dist/apis/repositories/context.d.ts.map +1 -0
  1098. package/dist/apis/repositories/context.js +18 -0
  1099. package/dist/apis/repositories/context.js.map +1 -0
  1100. package/dist/apis/repositories/index.d.ts +6 -0
  1101. package/dist/apis/repositories/index.d.ts.map +1 -0
  1102. package/dist/apis/repositories/index.js +4 -0
  1103. package/dist/config/env.d.ts +9 -0
  1104. package/dist/config/env.d.ts.map +1 -0
  1105. package/dist/config/env.js +17 -0
  1106. package/dist/config/env.js.map +1 -0
  1107. package/dist/config/index.d.ts +3 -0
  1108. package/dist/config/index.d.ts.map +1 -0
  1109. package/dist/config/index.js +2 -0
  1110. package/dist/config/type-utils.d.ts +19 -0
  1111. package/dist/config/type-utils.d.ts.map +1 -0
  1112. package/dist/config/type-utils.js +0 -0
  1113. package/dist/constants/caches.d.ts.map +1 -0
  1114. package/dist/constants/caches.js +6 -0
  1115. package/dist/constants/caches.js.map +1 -0
  1116. package/dist/constants/enums.d.ts.map +1 -0
  1117. package/dist/constants/enums.js +22 -0
  1118. package/dist/constants/enums.js.map +1 -0
  1119. package/dist/constants/index.d.ts +11 -0
  1120. package/dist/constants/index.d.ts.map +1 -0
  1121. package/dist/constants/index.js +7 -0
  1122. package/dist/constants/key.d.ts +11 -0
  1123. package/dist/constants/key.d.ts.map +1 -0
  1124. package/dist/constants/key.js +32 -0
  1125. package/dist/constants/key.js.map +1 -0
  1126. package/dist/constants/query.itemkeys.d.ts +32 -0
  1127. package/dist/constants/query.itemkeys.d.ts.map +1 -0
  1128. package/dist/constants/query.itemkeys.js +31 -0
  1129. package/dist/constants/query.itemkeys.js.map +1 -0
  1130. package/dist/constants/query.listkeys.d.ts +31 -0
  1131. package/dist/constants/query.listkeys.d.ts.map +1 -0
  1132. package/dist/constants/query.listkeys.js +31 -0
  1133. package/dist/constants/query.listkeys.js.map +1 -0
  1134. package/dist/constants/querykeys.d.ts +43 -0
  1135. package/dist/constants/querykeys.d.ts.map +1 -0
  1136. package/dist/constants/querykeys.js +22 -0
  1137. package/dist/constants/querykeys.js.map +1 -0
  1138. package/dist/elements/index.d.ts +3 -0
  1139. package/dist/elements/index.d.ts.map +1 -0
  1140. package/dist/elements/index.js +0 -0
  1141. package/dist/enums/auth.d.ts +53 -0
  1142. package/dist/enums/auth.d.ts.map +1 -0
  1143. package/dist/enums/auth.js +25 -0
  1144. package/dist/enums/auth.js.map +1 -0
  1145. package/dist/enums/dashboard.d.ts +13 -0
  1146. package/dist/enums/dashboard.d.ts.map +1 -0
  1147. package/dist/enums/dashboard.js +9 -0
  1148. package/dist/enums/dashboard.js.map +1 -0
  1149. package/dist/enums/index.d.ts +6 -0
  1150. package/dist/enums/index.d.ts.map +1 -0
  1151. package/dist/enums/index.js +6 -0
  1152. package/dist/enums/language.d.ts +10 -0
  1153. package/dist/enums/language.d.ts.map +1 -0
  1154. package/dist/enums/language.js +9 -0
  1155. package/dist/enums/language.js.map +1 -0
  1156. package/dist/enums/layout.d.ts +9 -0
  1157. package/dist/enums/layout.d.ts.map +1 -0
  1158. package/dist/enums/layout.js +9 -0
  1159. package/dist/enums/layout.js.map +1 -0
  1160. package/dist/enums/theme.d.ts +107 -0
  1161. package/dist/enums/theme.d.ts.map +1 -0
  1162. package/dist/enums/theme.js +23 -0
  1163. package/dist/enums/theme.js.map +1 -0
  1164. package/dist/events/EventEmitter.d.ts +55 -0
  1165. package/dist/events/EventEmitter.d.ts.map +1 -0
  1166. package/dist/events/EventEmitter.js +28 -0
  1167. package/dist/events/EventEmitter.js.map +1 -0
  1168. package/dist/events/auth.d.ts +25 -0
  1169. package/dist/events/auth.d.ts.map +1 -0
  1170. package/dist/events/auth.js +33 -0
  1171. package/dist/events/auth.js.map +1 -0
  1172. package/dist/events/index.d.ts +9 -0
  1173. package/dist/events/index.d.ts.map +1 -0
  1174. package/dist/events/index.js +5 -0
  1175. package/dist/events/query.d.ts +12 -0
  1176. package/dist/events/query.d.ts.map +1 -0
  1177. package/dist/events/query.js +15 -0
  1178. package/dist/events/query.js.map +1 -0
  1179. package/dist/events/system.d.ts +30 -0
  1180. package/dist/events/system.d.ts.map +1 -0
  1181. package/dist/events/system.js +24 -0
  1182. package/dist/events/system.js.map +1 -0
  1183. package/dist/hooks/asset.d.ts +22 -0
  1184. package/dist/hooks/asset.d.ts.map +1 -0
  1185. package/dist/hooks/asset.js +53 -0
  1186. package/dist/hooks/asset.js.map +1 -0
  1187. package/dist/hooks/auth.d.ts +69 -0
  1188. package/dist/hooks/auth.d.ts.map +1 -0
  1189. package/dist/hooks/auth.js +354 -0
  1190. package/dist/hooks/auth.js.map +1 -0
  1191. package/dist/hooks/dom.d.ts +7 -0
  1192. package/dist/hooks/dom.d.ts.map +1 -0
  1193. package/dist/hooks/dom.js +42 -0
  1194. package/dist/hooks/dom.js.map +1 -0
  1195. package/dist/hooks/index.d.ts +7 -0
  1196. package/dist/hooks/index.d.ts.map +1 -0
  1197. package/dist/hooks/index.js +13 -0
  1198. package/dist/hooks/preference.d.ts +18 -0
  1199. package/dist/hooks/preference.d.ts.map +1 -0
  1200. package/dist/hooks/preference.js +40 -0
  1201. package/dist/hooks/preference.js.map +1 -0
  1202. package/dist/languages/hooks/index.d.ts +9 -0
  1203. package/dist/languages/hooks/index.d.ts.map +1 -0
  1204. package/dist/languages/hooks/index.js +5 -0
  1205. package/dist/languages/hooks/useLanguageLabel.d.ts +12 -0
  1206. package/dist/languages/hooks/useLanguageLabel.d.ts.map +1 -0
  1207. package/dist/languages/hooks/useLanguageLabel.js +35 -0
  1208. package/dist/languages/hooks/useLanguageLabel.js.map +1 -0
  1209. package/dist/languages/hooks/useLayoutLabel.d.ts +7 -0
  1210. package/dist/languages/hooks/useLayoutLabel.d.ts.map +1 -0
  1211. package/dist/languages/hooks/useLayoutLabel.js +17 -0
  1212. package/dist/languages/hooks/useLayoutLabel.js.map +1 -0
  1213. package/dist/languages/hooks/usePreferenceLabel.d.ts +7 -0
  1214. package/dist/languages/hooks/usePreferenceLabel.d.ts.map +1 -0
  1215. package/dist/languages/hooks/usePreferenceLabel.js +17 -0
  1216. package/dist/languages/hooks/usePreferenceLabel.js.map +1 -0
  1217. package/dist/languages/hooks/useThemeLabel.d.ts +7 -0
  1218. package/dist/languages/hooks/useThemeLabel.d.ts.map +1 -0
  1219. package/dist/languages/hooks/useThemeLabel.js +17 -0
  1220. package/dist/languages/hooks/useThemeLabel.js.map +1 -0
  1221. package/dist/languages/index.d.ts +10 -0
  1222. package/dist/languages/index.d.ts.map +1 -0
  1223. package/dist/languages/index.js +11 -0
  1224. package/dist/languages/languages/i18n.d.ts +7 -0
  1225. package/dist/languages/languages/i18n.d.ts.map +1 -0
  1226. package/dist/languages/languages/i18n.js +75 -0
  1227. package/dist/languages/languages/i18n.js.map +1 -0
  1228. package/dist/languages/languages/i18nResources.d.ts +14 -0
  1229. package/dist/languages/languages/i18nResources.d.ts.map +1 -0
  1230. package/dist/languages/languages/i18nResources.js +17 -0
  1231. package/dist/languages/languages/i18nResources.js.map +1 -0
  1232. package/dist/languages/languages/index.d.ts +3 -0
  1233. package/dist/languages/languages/index.d.ts.map +1 -0
  1234. package/dist/languages/languages/index.js +3 -0
  1235. package/dist/languages/resources/en/language.js +52 -0
  1236. package/dist/languages/resources/en/language.js.map +1 -0
  1237. package/dist/languages/resources/en/language.json.d.ts +49 -0
  1238. package/dist/languages/resources/en/layout.js +9 -0
  1239. package/dist/languages/resources/en/layout.js.map +1 -0
  1240. package/dist/languages/resources/en/layout.json.d.ts +9 -0
  1241. package/dist/languages/resources/en/preference.js +50 -0
  1242. package/dist/languages/resources/en/preference.js.map +1 -0
  1243. package/dist/languages/resources/en/preference.json.d.ts +51 -0
  1244. package/dist/languages/resources/en/theme.js +19 -0
  1245. package/dist/languages/resources/en/theme.js.map +1 -0
  1246. package/dist/languages/resources/en/theme.json.d.ts +17 -0
  1247. package/dist/languages/resources/fr/language.js +52 -0
  1248. package/dist/languages/resources/fr/language.js.map +1 -0
  1249. package/dist/languages/resources/fr/language.json.d.ts +49 -0
  1250. package/dist/languages/resources/fr/layout.js +9 -0
  1251. package/dist/languages/resources/fr/layout.js.map +1 -0
  1252. package/dist/languages/resources/fr/layout.json.d.ts +9 -0
  1253. package/dist/languages/resources/fr/preference.js +50 -0
  1254. package/dist/languages/resources/fr/preference.js.map +1 -0
  1255. package/dist/languages/resources/fr/preference.json.d.ts +51 -0
  1256. package/dist/languages/resources/fr/theme.js +19 -0
  1257. package/dist/languages/resources/fr/theme.js.map +1 -0
  1258. package/dist/languages/resources/fr/theme.json.d.ts +17 -0
  1259. package/dist/languages/resources/index.d.ts +9 -0
  1260. package/dist/languages/resources/index.d.ts.map +1 -0
  1261. package/dist/languages/resources/index.js +54 -0
  1262. package/dist/languages/resources/index.js.map +1 -0
  1263. package/dist/languages/resources/zh/language.js +52 -0
  1264. package/dist/languages/resources/zh/language.js.map +1 -0
  1265. package/dist/languages/resources/zh/language.json.d.ts +49 -0
  1266. package/dist/languages/resources/zh/layout.js +9 -0
  1267. package/dist/languages/resources/zh/layout.js.map +1 -0
  1268. package/dist/languages/resources/zh/layout.json.d.ts +9 -0
  1269. package/dist/languages/resources/zh/preference.js +50 -0
  1270. package/dist/languages/resources/zh/preference.js.map +1 -0
  1271. package/dist/languages/resources/zh/preference.json.d.ts +51 -0
  1272. package/dist/languages/resources/zh/theme.js +19 -0
  1273. package/dist/languages/resources/zh/theme.js.map +1 -0
  1274. package/dist/languages/resources/zh/theme.json.d.ts +17 -0
  1275. package/dist/languages/types/components.d.ts +5 -0
  1276. package/dist/languages/types/components.d.ts.map +1 -0
  1277. package/dist/languages/types/components.js +0 -0
  1278. package/dist/languages/types/i18n.d.ts +26 -0
  1279. package/dist/languages/types/i18n.d.ts.map +1 -0
  1280. package/dist/languages/types/i18n.js +0 -0
  1281. package/dist/languages/types/index.d.ts +7 -0
  1282. package/dist/languages/types/index.d.ts.map +1 -0
  1283. package/dist/languages/types/index.js +2 -0
  1284. package/dist/languages/types/language.d.ts +5 -0
  1285. package/dist/languages/types/language.d.ts.map +1 -0
  1286. package/dist/languages/types/language.js +2 -0
  1287. package/dist/languages/utils/getLocalLanguage.d.ts +3 -0
  1288. package/dist/languages/utils/getLocalLanguage.d.ts.map +1 -0
  1289. package/dist/languages/utils/getLocalLanguage.js +10 -0
  1290. package/dist/languages/utils/getLocalLanguage.js.map +1 -0
  1291. package/dist/languages/utils/index.d.ts +6 -0
  1292. package/dist/languages/utils/index.d.ts.map +1 -0
  1293. package/dist/languages/utils/index.js +3 -0
  1294. package/dist/languages/utils/languageStorage.d.ts +6 -0
  1295. package/dist/languages/utils/languageStorage.d.ts.map +1 -0
  1296. package/dist/languages/utils/languageStorage.js +17 -0
  1297. package/dist/languages/utils/languageStorage.js.map +1 -0
  1298. package/dist/navigations/GuestRoute.d.ts +7 -0
  1299. package/dist/navigations/GuestRoute.d.ts.map +1 -0
  1300. package/dist/navigations/GuestRoute.js +15 -0
  1301. package/dist/navigations/GuestRoute.js.map +1 -0
  1302. package/dist/navigations/ProtectedRoute.d.ts +7 -0
  1303. package/dist/navigations/ProtectedRoute.d.ts.map +1 -0
  1304. package/dist/navigations/ProtectedRoute.js +16 -0
  1305. package/dist/navigations/ProtectedRoute.js.map +1 -0
  1306. package/dist/navigations/index.d.ts +3 -0
  1307. package/dist/navigations/index.d.ts.map +1 -0
  1308. package/dist/navigations/index.js +3 -0
  1309. package/dist/providers/DataProvider/index.d.ts +8 -0
  1310. package/dist/providers/DataProvider/index.d.ts.map +1 -0
  1311. package/dist/providers/DataProvider/index.js +34 -0
  1312. package/dist/providers/DataProvider/index.js.map +1 -0
  1313. package/dist/providers/LanguageProvider/index.d.ts +16 -0
  1314. package/dist/providers/LanguageProvider/index.d.ts.map +1 -0
  1315. package/dist/providers/LanguageProvider/index.js +32 -0
  1316. package/dist/providers/LanguageProvider/index.js.map +1 -0
  1317. package/dist/providers/ThemeProvider/index.d.ts +12 -0
  1318. package/dist/providers/ThemeProvider/index.d.ts.map +1 -0
  1319. package/dist/providers/ThemeProvider/index.js +29 -0
  1320. package/dist/providers/ThemeProvider/index.js.map +1 -0
  1321. package/dist/providers/index.d.ts +7 -0
  1322. package/dist/providers/index.d.ts.map +1 -0
  1323. package/dist/providers/index.js +4 -0
  1324. package/dist/schemas/index.d.ts +4 -0
  1325. package/dist/schemas/index.d.ts.map +1 -0
  1326. package/dist/schemas/index.js +4 -0
  1327. package/dist/schemas/loginSchema.d.ts +19 -0
  1328. package/dist/schemas/loginSchema.d.ts.map +1 -0
  1329. package/dist/schemas/loginSchema.js +28 -0
  1330. package/dist/schemas/loginSchema.js.map +1 -0
  1331. package/dist/schemas/profileEditSchema.d.ts +49 -0
  1332. package/dist/schemas/profileEditSchema.d.ts.map +1 -0
  1333. package/dist/schemas/profileEditSchema.js +57 -0
  1334. package/dist/schemas/profileEditSchema.js.map +1 -0
  1335. package/dist/schemas/signupSchema.d.ts +25 -0
  1336. package/dist/schemas/signupSchema.d.ts.map +1 -0
  1337. package/dist/schemas/signupSchema.js +37 -0
  1338. package/dist/schemas/signupSchema.js.map +1 -0
  1339. package/dist/stores/auth.d.ts +54 -0
  1340. package/dist/stores/auth.d.ts.map +1 -0
  1341. package/dist/stores/auth.js +165 -0
  1342. package/dist/stores/auth.js.map +1 -0
  1343. package/dist/stores/index.d.ts +7 -0
  1344. package/dist/stores/index.d.ts.map +1 -0
  1345. package/dist/stores/index.js +7 -0
  1346. package/dist/stores/layout.d.ts +41 -0
  1347. package/dist/stores/layout.d.ts.map +1 -0
  1348. package/dist/stores/layout.js +21 -0
  1349. package/dist/stores/layout.js.map +1 -0
  1350. package/dist/stores/makeStore.d.ts +93 -0
  1351. package/dist/stores/makeStore.d.ts.map +1 -0
  1352. package/dist/stores/makeStore.js +32 -0
  1353. package/dist/stores/makeStore.js.map +1 -0
  1354. package/dist/stores/preference.d.ts +49 -0
  1355. package/dist/stores/preference.d.ts.map +1 -0
  1356. package/dist/stores/preference.js +64 -0
  1357. package/dist/stores/preference.js.map +1 -0
  1358. package/dist/stores/system.d.ts +7 -0
  1359. package/dist/stores/system.d.ts.map +1 -0
  1360. package/dist/stores/system.js +84 -0
  1361. package/dist/stores/system.js.map +1 -0
  1362. package/dist/themes/fonts.d.ts +1 -0
  1363. package/dist/themes/fonts.d.ts.map +1 -0
  1364. package/dist/themes/fonts.js +16 -0
  1365. package/dist/themes/hooks/index.d.ts +3 -0
  1366. package/dist/themes/hooks/index.d.ts.map +1 -0
  1367. package/dist/themes/hooks/index.js +3 -0
  1368. package/dist/themes/hooks/useTheme.d.ts +26 -0
  1369. package/dist/themes/hooks/useTheme.d.ts.map +1 -0
  1370. package/dist/themes/hooks/useTheme.js +34 -0
  1371. package/dist/themes/hooks/useTheme.js.map +1 -0
  1372. package/dist/themes/index.css +1 -0
  1373. package/dist/themes/index.d.ts +8 -0
  1374. package/dist/themes/index.d.ts.map +1 -0
  1375. package/dist/themes/index.js +5 -0
  1376. package/dist/themes/radix/index.d.ts +2 -0
  1377. package/dist/themes/radix/index.d.ts.map +1 -0
  1378. package/dist/themes/radix/index.js +2 -0
  1379. package/dist/themes/radix/mappings.d.ts +39 -0
  1380. package/dist/themes/radix/mappings.d.ts.map +1 -0
  1381. package/dist/themes/radix/mappings.js +48 -0
  1382. package/dist/themes/radix/mappings.js.map +1 -0
  1383. package/dist/themes/types/components.d.ts +2 -0
  1384. package/dist/themes/types/components.d.ts.map +1 -0
  1385. package/dist/themes/types/components.js +0 -0
  1386. package/dist/themes/types/context.d.ts +11 -0
  1387. package/dist/themes/types/context.d.ts.map +1 -0
  1388. package/dist/themes/types/context.js +0 -0
  1389. package/dist/themes/types/index.d.ts +2 -0
  1390. package/dist/themes/types/index.d.ts.map +1 -0
  1391. package/dist/themes/types/index.js +0 -0
  1392. package/dist/themes/types/theme.d.ts +254 -0
  1393. package/dist/themes/types/theme.d.ts.map +1 -0
  1394. package/dist/themes/types/theme.js +2 -0
  1395. package/dist/types/api.d.ts +76 -0
  1396. package/dist/types/api.d.ts.map +1 -0
  1397. package/dist/types/api.js +0 -0
  1398. package/dist/types/domain/asset/image.d.ts +39 -0
  1399. package/dist/types/domain/asset/image.d.ts.map +1 -0
  1400. package/dist/types/domain/asset/image.js +0 -0
  1401. package/dist/types/domain/asset/index.d.ts +2 -0
  1402. package/dist/types/domain/asset/index.d.ts.map +1 -0
  1403. package/dist/types/domain/asset/index.js +0 -0
  1404. package/dist/types/domain/auth/index.d.ts +5 -0
  1405. package/dist/types/domain/auth/index.d.ts.map +1 -0
  1406. package/dist/types/domain/auth/index.js +0 -0
  1407. package/dist/types/domain/auth/login.d.ts +128 -0
  1408. package/dist/types/domain/auth/login.d.ts.map +1 -0
  1409. package/dist/types/domain/auth/login.js +0 -0
  1410. package/dist/types/domain/auth/profile.d.ts +189 -0
  1411. package/dist/types/domain/auth/profile.d.ts.map +1 -0
  1412. package/dist/types/domain/auth/profile.js +0 -0
  1413. package/dist/types/domain/auth/signup.d.ts +26 -0
  1414. package/dist/types/domain/auth/signup.d.ts.map +1 -0
  1415. package/dist/types/domain/auth/signup.js +0 -0
  1416. package/dist/types/domain/auth/tokens.d.ts +18 -0
  1417. package/dist/types/domain/auth/tokens.d.ts.map +1 -0
  1418. package/dist/types/domain/auth/tokens.js +0 -0
  1419. package/dist/types/domain/index.d.ts +3 -0
  1420. package/dist/types/domain/index.d.ts.map +1 -0
  1421. package/dist/types/domain/index.js +0 -0
  1422. package/dist/types/index.d.ts +4 -0
  1423. package/dist/types/index.d.ts.map +1 -0
  1424. package/dist/types/index.js +0 -0
  1425. package/dist/types/utils.d.ts.map +1 -0
  1426. package/dist/types/utils.js +0 -0
  1427. package/dist/utils/address.d.ts.map +1 -0
  1428. package/dist/utils/address.js +8 -0
  1429. package/dist/utils/address.js.map +1 -0
  1430. package/dist/utils/apiError.d.ts +17 -0
  1431. package/dist/utils/apiError.d.ts.map +1 -0
  1432. package/dist/utils/apiError.js +24 -0
  1433. package/dist/utils/apiError.js.map +1 -0
  1434. package/dist/utils/array.d.ts +22 -0
  1435. package/dist/utils/array.d.ts.map +1 -0
  1436. package/dist/utils/array.js +41 -0
  1437. package/dist/utils/array.js.map +1 -0
  1438. package/dist/utils/colors.d.ts.map +1 -0
  1439. package/dist/utils/colors.js +59 -0
  1440. package/dist/utils/colors.js.map +1 -0
  1441. package/dist/utils/domain/account.d.ts +6 -0
  1442. package/dist/utils/domain/account.d.ts.map +1 -0
  1443. package/dist/utils/domain/account.js +28 -0
  1444. package/dist/utils/domain/account.js.map +1 -0
  1445. package/dist/utils/domain/buildProfilePatch.d.ts +4 -0
  1446. package/dist/utils/domain/buildProfilePatch.d.ts.map +1 -0
  1447. package/dist/utils/domain/buildProfilePatch.js +20 -0
  1448. package/dist/utils/domain/buildProfilePatch.js.map +1 -0
  1449. package/dist/utils/domain/images.d.ts +6 -0
  1450. package/dist/utils/domain/images.d.ts.map +1 -0
  1451. package/dist/utils/domain/images.js +28 -0
  1452. package/dist/utils/domain/images.js.map +1 -0
  1453. package/dist/utils/domain/index.d.ts +5 -0
  1454. package/dist/utils/domain/index.d.ts.map +1 -0
  1455. package/dist/utils/domain/index.js +5 -0
  1456. package/dist/utils/domain/verificationCode.d.ts +4 -0
  1457. package/dist/utils/domain/verificationCode.d.ts.map +1 -0
  1458. package/dist/utils/domain/verificationCode.js +14 -0
  1459. package/dist/utils/domain/verificationCode.js.map +1 -0
  1460. package/dist/utils/email.d.ts.map +1 -0
  1461. package/dist/utils/email.js +6 -0
  1462. package/dist/utils/email.js.map +1 -0
  1463. package/dist/utils/factory/hooks.d.ts +41 -0
  1464. package/dist/utils/factory/hooks.d.ts.map +1 -0
  1465. package/dist/utils/factory/hooks.js +85 -0
  1466. package/dist/utils/factory/hooks.js.map +1 -0
  1467. package/dist/utils/factory/index.d.ts +3 -0
  1468. package/dist/utils/factory/index.d.ts.map +1 -0
  1469. package/dist/utils/factory/index.js +3 -0
  1470. package/dist/utils/factory/navigations.d.ts +26 -0
  1471. package/dist/utils/factory/navigations.d.ts.map +1 -0
  1472. package/dist/utils/factory/navigations.js +38 -0
  1473. package/dist/utils/factory/navigations.js.map +1 -0
  1474. package/dist/utils/form.d.ts.map +1 -0
  1475. package/dist/utils/form.js +11 -0
  1476. package/dist/utils/form.js.map +1 -0
  1477. package/dist/utils/idle.d.ts.map +1 -0
  1478. package/dist/utils/idle.js +30 -0
  1479. package/dist/utils/idle.js.map +1 -0
  1480. package/dist/utils/index.d.ts +31 -0
  1481. package/dist/utils/index.d.ts.map +1 -0
  1482. package/dist/utils/index.js +30 -0
  1483. package/dist/utils/jwt.d.ts +5 -0
  1484. package/dist/utils/jwt.d.ts.map +1 -0
  1485. package/dist/utils/jwt.js +27 -0
  1486. package/dist/utils/jwt.js.map +1 -0
  1487. package/dist/utils/lstorage.d.ts +5 -0
  1488. package/dist/utils/lstorage.d.ts.map +1 -0
  1489. package/dist/utils/lstorage.js +25 -0
  1490. package/dist/utils/lstorage.js.map +1 -0
  1491. package/dist/utils/object.d.ts.map +1 -0
  1492. package/dist/utils/object.js +10 -0
  1493. package/dist/utils/object.js.map +1 -0
  1494. package/dist/utils/polling.d.ts +13 -0
  1495. package/dist/utils/polling.d.ts.map +1 -0
  1496. package/dist/utils/polling.js +13 -0
  1497. package/dist/utils/polling.js.map +1 -0
  1498. package/dist/utils/price.d.ts.map +1 -0
  1499. package/dist/utils/price.js +17 -0
  1500. package/dist/utils/price.js.map +1 -0
  1501. package/dist/utils/primitive/index.d.ts +2 -0
  1502. package/dist/utils/primitive/index.d.ts.map +1 -0
  1503. package/dist/utils/primitive/index.js +2 -0
  1504. package/dist/utils/primitive/patch.d.ts +6 -0
  1505. package/dist/utils/primitive/patch.d.ts.map +1 -0
  1506. package/dist/utils/primitive/patch.js +23 -0
  1507. package/dist/utils/primitive/patch.js.map +1 -0
  1508. package/dist/utils/promise.d.ts.map +1 -0
  1509. package/dist/utils/promise.js +18 -0
  1510. package/dist/utils/promise.js.map +1 -0
  1511. package/dist/utils/random.d.ts.map +1 -0
  1512. package/dist/utils/random.js +22 -0
  1513. package/dist/utils/random.js.map +1 -0
  1514. package/dist/utils/result.d.ts.map +1 -0
  1515. package/dist/utils/result.js +6 -0
  1516. package/dist/utils/result.js.map +1 -0
  1517. package/dist/utils/retry.d.ts +16 -0
  1518. package/dist/utils/retry.d.ts.map +1 -0
  1519. package/dist/utils/retry.js +21 -0
  1520. package/dist/utils/retry.js.map +1 -0
  1521. package/dist/utils/safe.d.ts +80 -0
  1522. package/dist/utils/safe.d.ts.map +1 -0
  1523. package/dist/utils/safe.js +35 -0
  1524. package/dist/utils/safe.js.map +1 -0
  1525. package/dist/utils/sessionErrors.d.ts +5 -0
  1526. package/dist/utils/sessionErrors.d.ts.map +1 -0
  1527. package/dist/utils/sessionErrors.js +22 -0
  1528. package/dist/utils/sessionErrors.js.map +1 -0
  1529. package/dist/utils/singleton.d.ts.map +1 -0
  1530. package/dist/utils/singleton.js +22 -0
  1531. package/dist/utils/singleton.js.map +1 -0
  1532. package/dist/utils/suspense.d.ts +11 -0
  1533. package/dist/utils/suspense.d.ts.map +1 -0
  1534. package/dist/utils/suspense.js +9 -0
  1535. package/dist/utils/suspense.js.map +1 -0
  1536. package/dist/utils/time.d.ts +50 -0
  1537. package/dist/utils/time.d.ts.map +1 -0
  1538. package/dist/utils/time.js +53 -0
  1539. package/dist/utils/time.js.map +1 -0
  1540. package/dist/utils/types.d.ts.map +1 -0
  1541. package/dist/utils/types.js +8 -0
  1542. package/dist/utils/types.js.map +1 -0
  1543. package/package.json +318 -125
  1544. package/src/animations/accessibility-icon.tsx +113 -0
  1545. package/src/animations/airplane-icon.tsx +120 -0
  1546. package/src/animations/alarm-clock-plus-icon.tsx +155 -0
  1547. package/src/animations/align-center-icon.tsx +86 -0
  1548. package/src/animations/align-vertical-space-around-icon.tsx +80 -0
  1549. package/src/animations/ambulance-icon.tsx +88 -0
  1550. package/src/animations/ampersand-icon.tsx +61 -0
  1551. package/src/animations/angry-icon.tsx +84 -0
  1552. package/src/animations/annoyed-icon.tsx +66 -0
  1553. package/src/animations/apple-brand-logo.tsx +115 -0
  1554. package/src/animations/arrow-back-icon.tsx +69 -0
  1555. package/src/animations/arrow-back-up-icon.tsx +70 -0
  1556. package/src/animations/arrow-big-down-dash-icon.tsx +66 -0
  1557. package/src/animations/arrow-big-down-icon.tsx +60 -0
  1558. package/src/animations/arrow-big-left-dash-icon.tsx +66 -0
  1559. package/src/animations/arrow-big-left-icon.tsx +62 -0
  1560. package/src/animations/arrow-big-right-dash-icon.tsx +77 -0
  1561. package/src/animations/arrow-big-right-icon.tsx +62 -0
  1562. package/src/animations/arrow-big-up-dash-icon.tsx +77 -0
  1563. package/src/animations/arrow-big-up-icon.tsx +62 -0
  1564. package/src/animations/arrow-down-0-1-icon.tsx +84 -0
  1565. package/src/animations/arrow-down-1-0-icon.tsx +83 -0
  1566. package/src/animations/arrow-down-a-z-icon.tsx +110 -0
  1567. package/src/animations/arrow-narrow-down-dashed-icon.tsx +81 -0
  1568. package/src/animations/arrow-narrow-down-icon.tsx +71 -0
  1569. package/src/animations/arrow-narrow-left-dashed-icon.tsx +74 -0
  1570. package/src/animations/arrow-narrow-left-icon.tsx +71 -0
  1571. package/src/animations/arrow-narrow-right-dashed-icon.tsx +74 -0
  1572. package/src/animations/arrow-narrow-right-icon.tsx +71 -0
  1573. package/src/animations/arrow-narrow-up-dashed-icon.tsx +74 -0
  1574. package/src/animations/arrow-narrow-up-icon.tsx +71 -0
  1575. package/src/animations/at-sign-icon.tsx +95 -0
  1576. package/src/animations/banana-icon.tsx +77 -0
  1577. package/src/animations/battery-charging-icon.tsx +126 -0
  1578. package/src/animations/battery-icon.tsx +114 -0
  1579. package/src/animations/battery-pause-icon.tsx +108 -0
  1580. package/src/animations/bell-off-icon.tsx +81 -0
  1581. package/src/animations/bluetooth-connected-icon.tsx +119 -0
  1582. package/src/animations/book-icon.tsx +106 -0
  1583. package/src/animations/bookmark-icon.tsx +87 -0
  1584. package/src/animations/brain-circuit-icon.tsx +137 -0
  1585. package/src/animations/brand-aistudio-icon.tsx +120 -0
  1586. package/src/animations/brand-anthropic-icon.tsx +70 -0
  1587. package/src/animations/brand-aws-icon.tsx +88 -0
  1588. package/src/animations/brand-bags-fm-icon.tsx +63 -0
  1589. package/src/animations/brand-chrome-icon.tsx +77 -0
  1590. package/src/animations/brand-cursor-icon.tsx +56 -0
  1591. package/src/animations/brand-gemini-icon.tsx +73 -0
  1592. package/src/animations/brand-google-icon.tsx +79 -0
  1593. package/src/animations/brand-grok-icon.tsx +84 -0
  1594. package/src/animations/brand-lmstudio-icon.tsx +112 -0
  1595. package/src/animations/brand-midjourney-icon.tsx +88 -0
  1596. package/src/animations/brand-nextjs-icon.tsx +83 -0
  1597. package/src/animations/brand-notion-icon.tsx +71 -0
  1598. package/src/animations/brand-ollama-icon.tsx +102 -0
  1599. package/src/animations/brand-openai-icon.tsx +79 -0
  1600. package/src/animations/brand-paypal-icon.tsx +75 -0
  1601. package/src/animations/brand-qwen-icon.tsx +62 -0
  1602. package/src/animations/brand-railway-icon.tsx +68 -0
  1603. package/src/animations/brand-react-icon.tsx +134 -0
  1604. package/src/animations/brand-react-native-icon.tsx +153 -0
  1605. package/src/animations/brand-stripe-icon.tsx +83 -0
  1606. package/src/animations/brand-telegram-icon.tsx +67 -0
  1607. package/src/animations/brand-threads-icon.tsx +85 -0
  1608. package/src/animations/brand-twitch-icon.tsx +96 -0
  1609. package/src/animations/brand-vercel-icon.tsx +57 -0
  1610. package/src/animations/brand-windows-icon.tsx +178 -0
  1611. package/src/animations/brand-wordpress-icon.tsx +88 -0
  1612. package/src/animations/brand-xai-icon.tsx +120 -0
  1613. package/src/animations/brand-zoom-icon.tsx +144 -0
  1614. package/src/animations/brightness-down-icon.tsx +87 -0
  1615. package/src/animations/bug-icon.tsx +85 -0
  1616. package/src/animations/bulb-svg.tsx +125 -0
  1617. package/src/animations/camera-icon.tsx +71 -0
  1618. package/src/animations/camera-off-icon.tsx +78 -0
  1619. package/src/animations/candy-cane-icon.tsx +69 -0
  1620. package/src/animations/cart-icon.tsx +96 -0
  1621. package/src/animations/chart-bar-icon.tsx +96 -0
  1622. package/src/animations/chart-covariate-icon.tsx +110 -0
  1623. package/src/animations/chart-histogram-icon.tsx +110 -0
  1624. package/src/animations/chart-line-icon.tsx +113 -0
  1625. package/src/animations/chart-pie-icon.tsx +117 -0
  1626. package/src/animations/checked-icon.tsx +105 -0
  1627. package/src/animations/clock-icon.tsx +83 -0
  1628. package/src/animations/cloud-1-icon.tsx +58 -0
  1629. package/src/animations/cloud-2-icon.tsx +96 -0
  1630. package/src/animations/cloud-3-icon.tsx +92 -0
  1631. package/src/animations/code-icon.tsx +62 -0
  1632. package/src/animations/code-xml-icon.tsx +77 -0
  1633. package/src/animations/coffee-icon.tsx +84 -0
  1634. package/src/animations/coin-bitcoin-icon.tsx +54 -0
  1635. package/src/animations/copy-icon.tsx +75 -0
  1636. package/src/animations/copy-off-icon.tsx +89 -0
  1637. package/src/animations/copyright-icon.tsx +79 -0
  1638. package/src/animations/cpu-icon.tsx +108 -0
  1639. package/src/animations/credit-card.tsx +110 -0
  1640. package/src/animations/currency-bitcoin-icon.tsx +117 -0
  1641. package/src/animations/currency-dollar-icon.tsx +104 -0
  1642. package/src/animations/currency-ethereum-icon.tsx +104 -0
  1643. package/src/animations/currency-euro-icon.tsx +102 -0
  1644. package/src/animations/currency-rupee-icon.tsx +119 -0
  1645. package/src/animations/device-airpods-icon.tsx +71 -0
  1646. package/src/animations/dialpad-icon.tsx +80 -0
  1647. package/src/animations/dino-icon.tsx +101 -0
  1648. package/src/animations/discord-icon.tsx +81 -0
  1649. package/src/animations/docker-icon.tsx +94 -0
  1650. package/src/animations/dots-horizontal-icon.tsx +105 -0
  1651. package/src/animations/dots-vertical-icon.tsx +105 -0
  1652. package/src/animations/double-check-icon.tsx +88 -0
  1653. package/src/animations/down-chevron.tsx +62 -0
  1654. package/src/animations/download-icon.tsx +112 -0
  1655. package/src/animations/drum-icon.tsx +83 -0
  1656. package/src/animations/expand-icon.tsx +81 -0
  1657. package/src/animations/external-link-icon.tsx +100 -0
  1658. package/src/animations/eye-icon.tsx +94 -0
  1659. package/src/animations/eye-off-icon.tsx +96 -0
  1660. package/src/animations/facebook-icon.tsx +83 -0
  1661. package/src/animations/figma-icon.tsx +79 -0
  1662. package/src/animations/file-description-icon.tsx +83 -0
  1663. package/src/animations/filled-bell-icon.tsx +77 -0
  1664. package/src/animations/filled-checked-icon.tsx +122 -0
  1665. package/src/animations/filter-icon.tsx +202 -0
  1666. package/src/animations/flame-icon.tsx +71 -0
  1667. package/src/animations/focus-icon.tsx +64 -0
  1668. package/src/animations/gamepad-icon.tsx +104 -0
  1669. package/src/animations/gauge-icon.tsx +57 -0
  1670. package/src/animations/gear-icon.tsx +86 -0
  1671. package/src/animations/ghost-icon.tsx +98 -0
  1672. package/src/animations/github-copilot-icon.tsx +79 -0
  1673. package/src/animations/github-icon.tsx +69 -0
  1674. package/src/animations/gitlab-icon.tsx +65 -0
  1675. package/src/animations/globe-icon.tsx +97 -0
  1676. package/src/animations/gmail-icon.tsx +86 -0
  1677. package/src/animations/golang-icon.tsx +71 -0
  1678. package/src/animations/hand-heart-icon.tsx +66 -0
  1679. package/src/animations/hashtag-icon.tsx +92 -0
  1680. package/src/animations/heart-icon.tsx +67 -0
  1681. package/src/animations/history-circle-icon.tsx +95 -0
  1682. package/src/animations/home-icon.tsx +73 -0
  1683. package/src/animations/hotel-icon.tsx +71 -0
  1684. package/src/animations/index.ts +271 -0
  1685. package/src/animations/info-circle-icon.tsx +78 -0
  1686. package/src/animations/instagram-icon.tsx +81 -0
  1687. package/src/animations/javascript-icon.tsx +76 -0
  1688. package/src/animations/keyframes-icon.tsx +81 -0
  1689. package/src/animations/layers-icon.tsx +75 -0
  1690. package/src/animations/layout-bottombar-collapse-icon.tsx +78 -0
  1691. package/src/animations/layout-dashboard-icon.tsx +104 -0
  1692. package/src/animations/layout-sidebar-right-collapse-icon.tsx +71 -0
  1693. package/src/animations/layout-sidebar-right-icon.tsx +94 -0
  1694. package/src/animations/letter-a-icon.tsx +86 -0
  1695. package/src/animations/letter-b-icon.tsx +57 -0
  1696. package/src/animations/letter-c-icon.tsx +58 -0
  1697. package/src/animations/letter-d-icon.tsx +58 -0
  1698. package/src/animations/letter-e-icon.tsx +94 -0
  1699. package/src/animations/letter-f-icon.tsx +75 -0
  1700. package/src/animations/letter-g-icon.tsx +58 -0
  1701. package/src/animations/letter-h-icon.tsx +58 -0
  1702. package/src/animations/letter-i-icon.tsx +58 -0
  1703. package/src/animations/letter-j-icon.tsx +63 -0
  1704. package/src/animations/letter-k-icon.tsx +76 -0
  1705. package/src/animations/letter-l-icon.tsx +73 -0
  1706. package/src/animations/letter-m-icon.tsx +58 -0
  1707. package/src/animations/letter-n-icon.tsx +58 -0
  1708. package/src/animations/letter-o-icon.tsx +60 -0
  1709. package/src/animations/letter-p-icon.tsx +54 -0
  1710. package/src/animations/letter-q-icon.tsx +68 -0
  1711. package/src/animations/letter-r-icon.tsx +60 -0
  1712. package/src/animations/letter-s-icon.tsx +61 -0
  1713. package/src/animations/letter-t-icon.tsx +60 -0
  1714. package/src/animations/letter-u-icon.tsx +69 -0
  1715. package/src/animations/letter-v-icon.tsx +64 -0
  1716. package/src/animations/letter-w-icon.tsx +88 -0
  1717. package/src/animations/letter-x-icon.tsx +72 -0
  1718. package/src/animations/letter-y-icon.tsx +60 -0
  1719. package/src/animations/letter-z-icon.tsx +54 -0
  1720. package/src/animations/library-icon.tsx +91 -0
  1721. package/src/animations/like-icon.tsx +73 -0
  1722. package/src/animations/link-icon.tsx +86 -0
  1723. package/src/animations/linkedin-icon.tsx +86 -0
  1724. package/src/animations/locate-icon.tsx +90 -0
  1725. package/src/animations/lock-icon.tsx +79 -0
  1726. package/src/animations/logout-icon.tsx +82 -0
  1727. package/src/animations/magnifier-icon.tsx +79 -0
  1728. package/src/animations/mail-filled-icon.tsx +70 -0
  1729. package/src/animations/map-pin-icon.tsx +66 -0
  1730. package/src/animations/meh-icon.tsx +85 -0
  1731. package/src/animations/message-circle-icon.tsx +80 -0
  1732. package/src/animations/moon-icon.tsx +71 -0
  1733. package/src/animations/mouse-pointer-2-icon.tsx +72 -0
  1734. package/src/animations/mysql-icon.tsx +70 -0
  1735. package/src/animations/nodejs-icon.tsx +71 -0
  1736. package/src/animations/paint-icon.tsx +105 -0
  1737. package/src/animations/party-popper-icon.tsx +84 -0
  1738. package/src/animations/passport-icon.tsx +90 -0
  1739. package/src/animations/paw-print-icon.tsx +108 -0
  1740. package/src/animations/pen-icon.tsx +98 -0
  1741. package/src/animations/phone-volume.tsx +107 -0
  1742. package/src/animations/pinterest-icon.tsx +76 -0
  1743. package/src/animations/player-icon.tsx +74 -0
  1744. package/src/animations/plug-connected-icon.tsx +112 -0
  1745. package/src/animations/plug-connected-x-icon.tsx +100 -0
  1746. package/src/animations/python-icon.tsx +88 -0
  1747. package/src/animations/qrcode-icon.tsx +247 -0
  1748. package/src/animations/question-mark.tsx +75 -0
  1749. package/src/animations/radio-icon.tsx +115 -0
  1750. package/src/animations/rainbow-icon.tsx +76 -0
  1751. package/src/animations/refresh-icon.tsx +68 -0
  1752. package/src/animations/right-chevron.tsx +59 -0
  1753. package/src/animations/rocket-icon.tsx +134 -0
  1754. package/src/animations/rosette-discount-check-icon.tsx +108 -0
  1755. package/src/animations/rosette-discount-icon.tsx +135 -0
  1756. package/src/animations/router-icon.tsx +106 -0
  1757. package/src/animations/satellite-dish-icon.tsx +104 -0
  1758. package/src/animations/save-icon.tsx +71 -0
  1759. package/src/animations/scan-barcode-icon.tsx +94 -0
  1760. package/src/animations/scan-heart-icon.tsx +61 -0
  1761. package/src/animations/send-horizontal-icon.tsx +77 -0
  1762. package/src/animations/send-icon.tsx +75 -0
  1763. package/src/animations/shield-check.tsx +74 -0
  1764. package/src/animations/shopping-cart-icon.tsx +122 -0
  1765. package/src/animations/simple-checked-icon.tsx +60 -0
  1766. package/src/animations/skull-emoji.tsx +119 -0
  1767. package/src/animations/slack-icon.tsx +83 -0
  1768. package/src/animations/sliders-horizontal-icon.tsx +117 -0
  1769. package/src/animations/snapchat-icon.tsx +76 -0
  1770. package/src/animations/soup-icon.tsx +99 -0
  1771. package/src/animations/sparkles-icon.tsx +105 -0
  1772. package/src/animations/spotify-icon.tsx +94 -0
  1773. package/src/animations/stack-3-icon.tsx +78 -0
  1774. package/src/animations/stack-icon.tsx +73 -0
  1775. package/src/animations/star-icon.tsx +78 -0
  1776. package/src/animations/subscript-icon.tsx +77 -0
  1777. package/src/animations/target-icon.tsx +111 -0
  1778. package/src/animations/telephone-icon.tsx +106 -0
  1779. package/src/animations/terminal-icon.tsx +68 -0
  1780. package/src/animations/toggle-icon.tsx +84 -0
  1781. package/src/animations/trash-icon.tsx +145 -0
  1782. package/src/animations/travel-bag.tsx +92 -0
  1783. package/src/animations/triangle-alert-icon.tsx +107 -0
  1784. package/src/animations/trophy-icon.tsx +157 -0
  1785. package/src/animations/truck-electric-icon.tsx +94 -0
  1786. package/src/animations/twitter-icon.tsx +93 -0
  1787. package/src/animations/twitter-x-icon.tsx +60 -0
  1788. package/src/animations/types.ts +56 -0
  1789. package/src/animations/typescript-icon.tsx +78 -0
  1790. package/src/animations/unlink-icon.tsx +135 -0
  1791. package/src/animations/unordered-list-icon.tsx +160 -0
  1792. package/src/animations/upload-icon.tsx +89 -0
  1793. package/src/animations/useAnimatedIconTrigger.ts +27 -0
  1794. package/src/animations/user-check-icon.tsx +111 -0
  1795. package/src/animations/user-icon.tsx +75 -0
  1796. package/src/animations/user-plus-icon.tsx +112 -0
  1797. package/src/animations/users-group-icon.tsx +142 -0
  1798. package/src/animations/users-icon.tsx +106 -0
  1799. package/src/animations/vinyl-icon.tsx +120 -0
  1800. package/src/animations/volume-2-icon.tsx +92 -0
  1801. package/src/animations/volume-x-icon.tsx +77 -0
  1802. package/src/animations/wallet-icon.tsx +80 -0
  1803. package/src/animations/washing-machine-icon.tsx +96 -0
  1804. package/src/animations/whatsapp-icon.tsx +72 -0
  1805. package/src/animations/wifi-icon.tsx +71 -0
  1806. package/src/animations/wifi-off-icon.tsx +73 -0
  1807. package/src/animations/world-icon.tsx +91 -0
  1808. package/src/animations/x-icon.tsx +107 -0
  1809. package/src/animations/youtube-icon.tsx +101 -0
  1810. package/src/apis/activeIdentityRepositories.ts +14 -0
  1811. package/src/apis/authRefresh.ts +138 -0
  1812. package/src/apis/clients.ts +122 -0
  1813. package/src/apis/index.ts +15 -0
  1814. package/src/apis/ip.path.ts +39 -0
  1815. package/src/apis/ip.ts +123 -0
  1816. package/src/apis/repositories/AssetRepository.ts +68 -0
  1817. package/src/apis/repositories/AuthRepository.ts +344 -0
  1818. package/src/apis/repositories/context.tsx +27 -0
  1819. package/src/apis/repositories/index.ts +11 -0
  1820. package/src/config/env.ts +22 -0
  1821. package/src/config/global.d.ts +32 -0
  1822. package/src/config/index.ts +2 -0
  1823. package/src/config/type-utils.ts +18 -0
  1824. package/src/constants/caches.ts +7 -0
  1825. package/src/constants/enums.ts +32 -0
  1826. package/src/constants/index.ts +10 -0
  1827. package/src/constants/key.ts +15 -0
  1828. package/src/constants/query.itemkeys.ts +66 -0
  1829. package/src/constants/query.listkeys.ts +67 -0
  1830. package/src/constants/querykeys.ts +78 -0
  1831. package/src/elements/index.ts +2 -0
  1832. package/src/enums/auth.ts +81 -0
  1833. package/src/enums/dashboard.ts +17 -0
  1834. package/src/enums/index.ts +5 -0
  1835. package/src/enums/language.ts +16 -0
  1836. package/src/enums/layout.ts +12 -0
  1837. package/src/enums/theme.ts +124 -0
  1838. package/src/events/EventEmitter.ts +115 -0
  1839. package/src/events/auth.ts +48 -0
  1840. package/src/events/index.ts +8 -0
  1841. package/src/events/query.ts +22 -0
  1842. package/src/events/system.ts +48 -0
  1843. package/src/hooks/asset.ts +77 -0
  1844. package/src/hooks/auth.ts +487 -0
  1845. package/src/hooks/dom.ts +78 -0
  1846. package/src/hooks/index.ts +17 -0
  1847. package/src/hooks/preference.ts +79 -0
  1848. package/src/languages/hooks/index.ts +8 -0
  1849. package/src/languages/hooks/useLanguageLabel.ts +47 -0
  1850. package/src/languages/hooks/useLayoutLabel.ts +20 -0
  1851. package/src/languages/hooks/usePreferenceLabel.ts +20 -0
  1852. package/src/languages/hooks/useThemeLabel.ts +19 -0
  1853. package/src/languages/index.ts +9 -0
  1854. package/src/languages/languages/i18n.ts +107 -0
  1855. package/src/languages/languages/i18nResources.ts +32 -0
  1856. package/src/languages/languages/index.ts +2 -0
  1857. package/src/languages/resources/en/language.json +47 -0
  1858. package/src/languages/resources/en/layout.json +6 -0
  1859. package/src/languages/resources/en/preference.json +49 -0
  1860. package/src/languages/resources/en/theme.json +14 -0
  1861. package/src/languages/resources/fr/language.json +47 -0
  1862. package/src/languages/resources/fr/layout.json +6 -0
  1863. package/src/languages/resources/fr/preference.json +49 -0
  1864. package/src/languages/resources/fr/theme.json +14 -0
  1865. package/src/languages/resources/index.ts +62 -0
  1866. package/src/languages/resources/zh/language.json +47 -0
  1867. package/src/languages/resources/zh/layout.json +6 -0
  1868. package/src/languages/resources/zh/preference.json +49 -0
  1869. package/src/languages/resources/zh/theme.json +14 -0
  1870. package/src/languages/types/components.ts +4 -0
  1871. package/src/languages/types/i18n.ts +36 -0
  1872. package/src/languages/types/index.ts +6 -0
  1873. package/src/languages/types/language.ts +4 -0
  1874. package/src/languages/utils/getLocalLanguage.ts +9 -0
  1875. package/src/languages/utils/index.ts +9 -0
  1876. package/src/languages/utils/languageStorage.ts +20 -0
  1877. package/src/navigations/GuestRoute.tsx +24 -0
  1878. package/src/navigations/ProtectedRoute.tsx +25 -0
  1879. package/src/navigations/index.ts +2 -0
  1880. package/src/providers/DataProvider/index.tsx +42 -0
  1881. package/src/providers/LanguageProvider/index.tsx +64 -0
  1882. package/src/providers/ThemeProvider/index.tsx +48 -0
  1883. package/src/providers/index.ts +6 -0
  1884. package/src/schemas/index.ts +3 -0
  1885. package/src/schemas/loginSchema.ts +32 -0
  1886. package/src/schemas/profileEditSchema.ts +72 -0
  1887. package/src/schemas/signupSchema.ts +48 -0
  1888. package/src/stores/auth.ts +292 -0
  1889. package/src/stores/index.ts +6 -0
  1890. package/src/stores/layout.ts +42 -0
  1891. package/src/stores/makeStore.ts +95 -0
  1892. package/src/stores/preference.ts +90 -0
  1893. package/src/stores/system.ts +134 -0
  1894. package/src/themes/fonts.ts +20 -0
  1895. package/src/themes/hooks/index.ts +2 -0
  1896. package/src/themes/hooks/useTheme.ts +38 -0
  1897. package/src/themes/index.css +385 -0
  1898. package/src/themes/index.ts +34 -0
  1899. package/src/themes/radix/index.ts +1 -0
  1900. package/src/themes/radix/mappings.ts +108 -0
  1901. package/src/themes/types/components.ts +1 -0
  1902. package/src/themes/types/context.ts +14 -0
  1903. package/src/themes/types/index.ts +1 -0
  1904. package/src/themes/types/theme.ts +298 -0
  1905. package/src/types/api.ts +95 -0
  1906. package/src/types/domain/asset/image.ts +45 -0
  1907. package/src/types/domain/asset/index.ts +1 -0
  1908. package/src/types/domain/auth/index.ts +4 -0
  1909. package/src/types/domain/auth/login.ts +157 -0
  1910. package/src/types/domain/auth/profile.ts +237 -0
  1911. package/src/types/domain/auth/signup.ts +28 -0
  1912. package/src/types/domain/auth/tokens.ts +18 -0
  1913. package/src/types/domain/index.ts +2 -0
  1914. package/src/types/index.ts +3 -0
  1915. package/src/types/utils.ts +96 -0
  1916. package/src/utils/address.ts +9 -0
  1917. package/src/utils/apiError.ts +45 -0
  1918. package/src/utils/array.ts +87 -0
  1919. package/src/utils/colors.ts +126 -0
  1920. package/src/utils/domain/account.ts +37 -0
  1921. package/src/utils/domain/buildProfilePatch.ts +38 -0
  1922. package/src/utils/domain/images.ts +66 -0
  1923. package/src/utils/domain/index.ts +4 -0
  1924. package/src/utils/domain/verificationCode.ts +22 -0
  1925. package/src/utils/email.ts +10 -0
  1926. package/src/utils/factory/hooks.ts +218 -0
  1927. package/src/utils/factory/index.ts +2 -0
  1928. package/src/utils/factory/navigations.ts +81 -0
  1929. package/src/utils/form.ts +29 -0
  1930. package/src/utils/idle.ts +108 -0
  1931. package/src/utils/index.ts +31 -0
  1932. package/src/utils/jwt.ts +28 -0
  1933. package/src/utils/lstorage.ts +30 -0
  1934. package/src/utils/object.ts +24 -0
  1935. package/src/utils/polling.ts +23 -0
  1936. package/src/utils/price.ts +51 -0
  1937. package/src/utils/primitive/index.ts +1 -0
  1938. package/src/utils/primitive/patch.ts +28 -0
  1939. package/src/utils/promise.ts +38 -0
  1940. package/src/utils/random.ts +78 -0
  1941. package/src/utils/result.ts +23 -0
  1942. package/src/utils/retry.ts +34 -0
  1943. package/src/utils/safe.ts +119 -0
  1944. package/src/utils/sessionErrors.ts +27 -0
  1945. package/src/utils/singleton.ts +58 -0
  1946. package/src/utils/suspense.ts +16 -0
  1947. package/src/utils/time.ts +134 -0
  1948. package/src/utils/types.ts +18 -0
  1949. package/src/vite-env.d.ts +88 -0
  1950. package/dist/animations.cjs +0 -2
  1951. package/dist/animations.mjs +0 -11
  1952. package/dist/apis.cjs +0 -4
  1953. package/dist/apis.cjs.map +0 -1
  1954. package/dist/apis.mjs +0 -16
  1955. package/dist/apis.mjs.map +0 -1
  1956. package/dist/chunk-BounceLoading-C-gq-XVr.mjs +0 -241
  1957. package/dist/chunk-BounceLoading-C-gq-XVr.mjs.map +0 -1
  1958. package/dist/chunk-BounceLoading-CkxvzNz8.cjs +0 -11
  1959. package/dist/chunk-BounceLoading-CkxvzNz8.cjs.map +0 -1
  1960. package/dist/chunk-animations-CiJbVYGC.mjs +0 -741
  1961. package/dist/chunk-animations-CiJbVYGC.mjs.map +0 -1
  1962. package/dist/chunk-animations-i85rn79V.cjs +0 -3
  1963. package/dist/chunk-animations-i85rn79V.cjs.map +0 -1
  1964. package/dist/chunk-chunk-D-Fg7nx1.cjs +0 -1
  1965. package/dist/chunk-i18n-2-xL4pEi.cjs +0 -3
  1966. package/dist/chunk-i18n-2-xL4pEi.cjs.map +0 -1
  1967. package/dist/chunk-i18n-DgaoEbGL.mjs +0 -214
  1968. package/dist/chunk-i18n-DgaoEbGL.mjs.map +0 -1
  1969. package/dist/chunk-language-2r4uKROB.cjs +0 -3
  1970. package/dist/chunk-language-2r4uKROB.cjs.map +0 -1
  1971. package/dist/chunk-language-JRs5UIa2.mjs +0 -11
  1972. package/dist/chunk-language-JRs5UIa2.mjs.map +0 -1
  1973. package/dist/chunk-layout-BEAgFhif.mjs +0 -11
  1974. package/dist/chunk-layout-BEAgFhif.mjs.map +0 -1
  1975. package/dist/chunk-layout-mMQXuBLE.cjs +0 -3
  1976. package/dist/chunk-layout-mMQXuBLE.cjs.map +0 -1
  1977. package/dist/chunk-lstorage-WwyI7gQN.mjs +0 -27
  1978. package/dist/chunk-lstorage-WwyI7gQN.mjs.map +0 -1
  1979. package/dist/chunk-lstorage-_yGQsIQ9.cjs +0 -3
  1980. package/dist/chunk-lstorage-_yGQsIQ9.cjs.map +0 -1
  1981. package/dist/chunk-lucide-B99NZWfa.mjs +0 -158
  1982. package/dist/chunk-lucide-B99NZWfa.mjs.map +0 -1
  1983. package/dist/chunk-lucide-XL6d5__j.cjs +0 -3
  1984. package/dist/chunk-lucide-XL6d5__j.cjs.map +0 -1
  1985. package/dist/chunk-preference-DMhhY1Pl.mjs +0 -60
  1986. package/dist/chunk-preference-DMhhY1Pl.mjs.map +0 -1
  1987. package/dist/chunk-preference-DbNgeGhx.cjs +0 -3
  1988. package/dist/chunk-preference-DbNgeGhx.cjs.map +0 -1
  1989. package/dist/chunk-theme-CINVDd47.mjs +0 -17
  1990. package/dist/chunk-theme-CINVDd47.mjs.map +0 -1
  1991. package/dist/chunk-theme-D49XQfXe.cjs +0 -3
  1992. package/dist/chunk-theme-D49XQfXe.cjs.map +0 -1
  1993. package/dist/chunk-useLayout-BAIFfydj.cjs +0 -3
  1994. package/dist/chunk-useLayout-BAIFfydj.cjs.map +0 -1
  1995. package/dist/chunk-useLayout-BXsJlpcb.mjs +0 -12
  1996. package/dist/chunk-useLayout-BXsJlpcb.mjs.map +0 -1
  1997. package/dist/chunk-useTheme-BY1_pW9y.mjs +0 -13
  1998. package/dist/chunk-useTheme-BY1_pW9y.mjs.map +0 -1
  1999. package/dist/chunk-useTheme-Tw_7_cQf.cjs +0 -3
  2000. package/dist/chunk-useTheme-Tw_7_cQf.cjs.map +0 -1
  2001. package/dist/components.cjs +0 -7
  2002. package/dist/components.cjs.map +0 -1
  2003. package/dist/components.mjs +0 -1926
  2004. package/dist/components.mjs.map +0 -1
  2005. package/dist/constants.cjs +0 -4
  2006. package/dist/constants.cjs.map +0 -1
  2007. package/dist/constants.mjs +0 -96
  2008. package/dist/constants.mjs.map +0 -1
  2009. package/dist/events.cjs +0 -4
  2010. package/dist/events.cjs.map +0 -1
  2011. package/dist/events.mjs +0 -30
  2012. package/dist/events.mjs.map +0 -1
  2013. package/dist/hooks.cjs +0 -4
  2014. package/dist/hooks.cjs.map +0 -1
  2015. package/dist/hooks.mjs +0 -106
  2016. package/dist/hooks.mjs.map +0 -1
  2017. package/dist/icons.cjs +0 -2
  2018. package/dist/icons.mjs +0 -75
  2019. package/dist/languages.cjs +0 -4
  2020. package/dist/languages.cjs.map +0 -1
  2021. package/dist/languages.mjs +0 -101
  2022. package/dist/languages.mjs.map +0 -1
  2023. package/dist/layouts.cjs +0 -4
  2024. package/dist/layouts.cjs.map +0 -1
  2025. package/dist/layouts.mjs +0 -466
  2026. package/dist/layouts.mjs.map +0 -1
  2027. package/dist/navigations.cjs +0 -4
  2028. package/dist/navigations.cjs.map +0 -1
  2029. package/dist/navigations.mjs +0 -29
  2030. package/dist/navigations.mjs.map +0 -1
  2031. package/dist/pixel-blast.cjs +0 -191
  2032. package/dist/pixel-blast.cjs.map +0 -1
  2033. package/dist/pixel-blast.mjs +0 -505
  2034. package/dist/pixel-blast.mjs.map +0 -1
  2035. package/dist/preference.cjs +0 -2
  2036. package/dist/preference.mjs +0 -10
  2037. package/dist/services.cjs +0 -4
  2038. package/dist/services.cjs.map +0 -1
  2039. package/dist/services.mjs +0 -24
  2040. package/dist/services.mjs.map +0 -1
  2041. package/dist/src/apis/index.d.ts +0 -3
  2042. package/dist/src/apis/index.d.ts.map +0 -1
  2043. package/dist/src/apis/ip.d.ts +0 -5
  2044. package/dist/src/apis/ip.d.ts.map +0 -1
  2045. package/dist/src/constants/caches.d.ts.map +0 -1
  2046. package/dist/src/constants/enums.d.ts.map +0 -1
  2047. package/dist/src/constants/index.d.ts +0 -10
  2048. package/dist/src/constants/index.d.ts.map +0 -1
  2049. package/dist/src/constants/query.itemkeys.d.ts +0 -36
  2050. package/dist/src/constants/query.itemkeys.d.ts.map +0 -1
  2051. package/dist/src/constants/query.listkeys.d.ts +0 -35
  2052. package/dist/src/constants/query.listkeys.d.ts.map +0 -1
  2053. package/dist/src/constants/querykeys.d.ts +0 -58
  2054. package/dist/src/constants/querykeys.d.ts.map +0 -1
  2055. package/dist/src/designs/animations/BounceLoading/index.d.ts +0 -8
  2056. package/dist/src/designs/animations/BounceLoading/index.d.ts.map +0 -1
  2057. package/dist/src/designs/animations/ECGLoading/index.d.ts +0 -7
  2058. package/dist/src/designs/animations/ECGLoading/index.d.ts.map +0 -1
  2059. package/dist/src/designs/animations/LetterGlitch/index.d.ts +0 -13
  2060. package/dist/src/designs/animations/LetterGlitch/index.d.ts.map +0 -1
  2061. package/dist/src/designs/animations/PixelBlast/index.d.ts +0 -29
  2062. package/dist/src/designs/animations/PixelBlast/index.d.ts.map +0 -1
  2063. package/dist/src/designs/animations/Squares/index.d.ts +0 -14
  2064. package/dist/src/designs/animations/Squares/index.d.ts.map +0 -1
  2065. package/dist/src/designs/animations/TruckLoading/index.d.ts +0 -7
  2066. package/dist/src/designs/animations/TruckLoading/index.d.ts.map +0 -1
  2067. package/dist/src/designs/animations/Waves/index.d.ts +0 -20
  2068. package/dist/src/designs/animations/Waves/index.d.ts.map +0 -1
  2069. package/dist/src/designs/animations/index.d.ts +0 -7
  2070. package/dist/src/designs/animations/index.d.ts.map +0 -1
  2071. package/dist/src/designs/components/Button/index.d.ts +0 -32
  2072. package/dist/src/designs/components/Button/index.d.ts.map +0 -1
  2073. package/dist/src/designs/components/Dropdown/index.d.ts +0 -25
  2074. package/dist/src/designs/components/Dropdown/index.d.ts.map +0 -1
  2075. package/dist/src/designs/components/Icon/index.d.ts +0 -21
  2076. package/dist/src/designs/components/Icon/index.d.ts.map +0 -1
  2077. package/dist/src/designs/components/Input/index.d.ts +0 -35
  2078. package/dist/src/designs/components/Input/index.d.ts.map +0 -1
  2079. package/dist/src/designs/components/KeyValueEditor/index.d.ts +0 -44
  2080. package/dist/src/designs/components/KeyValueEditor/index.d.ts.map +0 -1
  2081. package/dist/src/designs/components/LayoutSwitcher/index.d.ts +0 -4
  2082. package/dist/src/designs/components/LayoutSwitcher/index.d.ts.map +0 -1
  2083. package/dist/src/designs/components/SearchInput/index.d.ts +0 -15
  2084. package/dist/src/designs/components/SearchInput/index.d.ts.map +0 -1
  2085. package/dist/src/designs/components/ShowFilter/index.d.ts +0 -40
  2086. package/dist/src/designs/components/ShowFilter/index.d.ts.map +0 -1
  2087. package/dist/src/designs/components/SlideDownSwitcher/index.d.ts +0 -17
  2088. package/dist/src/designs/components/SlideDownSwitcher/index.d.ts.map +0 -1
  2089. package/dist/src/designs/components/Slider/index.d.ts +0 -39
  2090. package/dist/src/designs/components/Slider/index.d.ts.map +0 -1
  2091. package/dist/src/designs/components/Suspense/SuspenseErrorBoundary.d.ts +0 -23
  2092. package/dist/src/designs/components/Suspense/SuspenseErrorBoundary.d.ts.map +0 -1
  2093. package/dist/src/designs/components/Suspense/index.d.ts +0 -61
  2094. package/dist/src/designs/components/Suspense/index.d.ts.map +0 -1
  2095. package/dist/src/designs/components/Textarea/index.d.ts +0 -33
  2096. package/dist/src/designs/components/Textarea/index.d.ts.map +0 -1
  2097. package/dist/src/designs/components/ThemeSwitcher/index.d.ts +0 -4
  2098. package/dist/src/designs/components/ThemeSwitcher/index.d.ts.map +0 -1
  2099. package/dist/src/designs/components/VirtualList/index.d.ts +0 -51
  2100. package/dist/src/designs/components/VirtualList/index.d.ts.map +0 -1
  2101. package/dist/src/designs/components/VirtualWindowList/index.d.ts +0 -57
  2102. package/dist/src/designs/components/VirtualWindowList/index.d.ts.map +0 -1
  2103. package/dist/src/designs/components/index.d.ts +0 -34
  2104. package/dist/src/designs/components/index.d.ts.map +0 -1
  2105. package/dist/src/designs/layouts/components/Background/index.d.ts +0 -12
  2106. package/dist/src/designs/layouts/components/Background/index.d.ts.map +0 -1
  2107. package/dist/src/designs/layouts/components/Footer/index.d.ts +0 -6
  2108. package/dist/src/designs/layouts/components/Footer/index.d.ts.map +0 -1
  2109. package/dist/src/designs/layouts/components/Header/index.d.ts +0 -5
  2110. package/dist/src/designs/layouts/components/Header/index.d.ts.map +0 -1
  2111. package/dist/src/designs/layouts/components/LayoutFrame/index.d.ts +0 -4
  2112. package/dist/src/designs/layouts/components/LayoutFrame/index.d.ts.map +0 -1
  2113. package/dist/src/designs/layouts/components/MainWrapper/index.d.ts +0 -4
  2114. package/dist/src/designs/layouts/components/MainWrapper/index.d.ts.map +0 -1
  2115. package/dist/src/designs/layouts/components/SideHideLayout/index.d.ts +0 -4
  2116. package/dist/src/designs/layouts/components/SideHideLayout/index.d.ts.map +0 -1
  2117. package/dist/src/designs/layouts/components/SideShowLayout/index.d.ts +0 -4
  2118. package/dist/src/designs/layouts/components/SideShowLayout/index.d.ts.map +0 -1
  2119. package/dist/src/designs/layouts/components/Sidebar/index.d.ts +0 -4
  2120. package/dist/src/designs/layouts/components/Sidebar/index.d.ts.map +0 -1
  2121. package/dist/src/designs/layouts/components/index.d.ts +0 -9
  2122. package/dist/src/designs/layouts/components/index.d.ts.map +0 -1
  2123. package/dist/src/designs/layouts/hooks/index.d.ts +0 -4
  2124. package/dist/src/designs/layouts/hooks/index.d.ts.map +0 -1
  2125. package/dist/src/designs/layouts/hooks/useAction.d.ts +0 -8
  2126. package/dist/src/designs/layouts/hooks/useAction.d.ts.map +0 -1
  2127. package/dist/src/designs/layouts/hooks/useLayout.d.ts +0 -10
  2128. package/dist/src/designs/layouts/hooks/useLayout.d.ts.map +0 -1
  2129. package/dist/src/designs/layouts/hooks/useSet.d.ts +0 -11
  2130. package/dist/src/designs/layouts/hooks/useSet.d.ts.map +0 -1
  2131. package/dist/src/designs/layouts/index.d.ts +0 -9
  2132. package/dist/src/designs/layouts/index.d.ts.map +0 -1
  2133. package/dist/src/designs/layouts/providers/index.d.ts +0 -8
  2134. package/dist/src/designs/layouts/providers/index.d.ts.map +0 -1
  2135. package/dist/src/designs/layouts/types/components.d.ts +0 -125
  2136. package/dist/src/designs/layouts/types/components.d.ts.map +0 -1
  2137. package/dist/src/designs/layouts/types/context.d.ts +0 -16
  2138. package/dist/src/designs/layouts/types/context.d.ts.map +0 -1
  2139. package/dist/src/designs/layouts/types/index.d.ts +0 -7
  2140. package/dist/src/designs/layouts/types/index.d.ts.map +0 -1
  2141. package/dist/src/designs/layouts/types/layout.d.ts +0 -12
  2142. package/dist/src/designs/layouts/types/layout.d.ts.map +0 -1
  2143. package/dist/src/designs/layouts/utils/index.d.ts +0 -5
  2144. package/dist/src/designs/layouts/utils/index.d.ts.map +0 -1
  2145. package/dist/src/designs/layouts/utils/layoutStorage.d.ts +0 -9
  2146. package/dist/src/designs/layouts/utils/layoutStorage.d.ts.map +0 -1
  2147. package/dist/src/events/EventEmitter.d.ts +0 -78
  2148. package/dist/src/events/EventEmitter.d.ts.map +0 -1
  2149. package/dist/src/events/index.d.ts +0 -6
  2150. package/dist/src/events/index.d.ts.map +0 -1
  2151. package/dist/src/hooks/index.d.ts +0 -5
  2152. package/dist/src/hooks/index.d.ts.map +0 -1
  2153. package/dist/src/hooks/makeCursorFetchFunction.d.ts +0 -85
  2154. package/dist/src/hooks/makeCursorFetchFunction.d.ts.map +0 -1
  2155. package/dist/src/hooks/makeUnifiedInfiniteQuery.d.ts +0 -125
  2156. package/dist/src/hooks/makeUnifiedInfiniteQuery.d.ts.map +0 -1
  2157. package/dist/src/hooks/makeUnifiedQuery.d.ts +0 -20
  2158. package/dist/src/hooks/makeUnifiedQuery.d.ts.map +0 -1
  2159. package/dist/src/hooks/type.d.ts +0 -41
  2160. package/dist/src/hooks/type.d.ts.map +0 -1
  2161. package/dist/src/icons/index.d.ts +0 -2
  2162. package/dist/src/icons/index.d.ts.map +0 -1
  2163. package/dist/src/icons/lucide.d.ts +0 -3
  2164. package/dist/src/icons/lucide.d.ts.map +0 -1
  2165. package/dist/src/languages/hooks/index.d.ts +0 -9
  2166. package/dist/src/languages/hooks/index.d.ts.map +0 -1
  2167. package/dist/src/languages/hooks/useLanguageLabel.d.ts +0 -11
  2168. package/dist/src/languages/hooks/useLanguageLabel.d.ts.map +0 -1
  2169. package/dist/src/languages/hooks/useLayoutLabel.d.ts +0 -11
  2170. package/dist/src/languages/hooks/useLayoutLabel.d.ts.map +0 -1
  2171. package/dist/src/languages/hooks/usePreferenceLabel.d.ts +0 -11
  2172. package/dist/src/languages/hooks/usePreferenceLabel.d.ts.map +0 -1
  2173. package/dist/src/languages/hooks/useThemeLabel.d.ts +0 -11
  2174. package/dist/src/languages/hooks/useThemeLabel.d.ts.map +0 -1
  2175. package/dist/src/languages/index.d.ts +0 -12
  2176. package/dist/src/languages/index.d.ts.map +0 -1
  2177. package/dist/src/languages/languages/i18n.d.ts +0 -14
  2178. package/dist/src/languages/languages/i18n.d.ts.map +0 -1
  2179. package/dist/src/languages/languages/i18nResources.d.ts +0 -18
  2180. package/dist/src/languages/languages/i18nResources.d.ts.map +0 -1
  2181. package/dist/src/languages/languages/index.d.ts +0 -3
  2182. package/dist/src/languages/languages/index.d.ts.map +0 -1
  2183. package/dist/src/languages/providers/index.d.ts +0 -8
  2184. package/dist/src/languages/providers/index.d.ts.map +0 -1
  2185. package/dist/src/languages/resources/index.d.ts +0 -16
  2186. package/dist/src/languages/resources/index.d.ts.map +0 -1
  2187. package/dist/src/languages/types/components.d.ts +0 -28
  2188. package/dist/src/languages/types/components.d.ts.map +0 -1
  2189. package/dist/src/languages/types/i18n.d.ts +0 -33
  2190. package/dist/src/languages/types/i18n.d.ts.map +0 -1
  2191. package/dist/src/languages/types/index.d.ts +0 -7
  2192. package/dist/src/languages/types/index.d.ts.map +0 -1
  2193. package/dist/src/languages/types/language.d.ts +0 -14
  2194. package/dist/src/languages/types/language.d.ts.map +0 -1
  2195. package/dist/src/languages/utils/getLocalLanguage.d.ts +0 -3
  2196. package/dist/src/languages/utils/getLocalLanguage.d.ts.map +0 -1
  2197. package/dist/src/languages/utils/index.d.ts +0 -6
  2198. package/dist/src/languages/utils/index.d.ts.map +0 -1
  2199. package/dist/src/languages/utils/languageStorage.d.ts +0 -10
  2200. package/dist/src/languages/utils/languageStorage.d.ts.map +0 -1
  2201. package/dist/src/navigations/index.d.ts +0 -2
  2202. package/dist/src/navigations/index.d.ts.map +0 -1
  2203. package/dist/src/navigations/navigation.d.ts +0 -51
  2204. package/dist/src/navigations/navigation.d.ts.map +0 -1
  2205. package/dist/src/preference/constants.d.ts +0 -17
  2206. package/dist/src/preference/constants.d.ts.map +0 -1
  2207. package/dist/src/preference/core.d.ts +0 -12
  2208. package/dist/src/preference/core.d.ts.map +0 -1
  2209. package/dist/src/preference/index.d.ts +0 -27
  2210. package/dist/src/preference/index.d.ts.map +0 -1
  2211. package/dist/src/preference/nfx_slice.d.ts +0 -24
  2212. package/dist/src/preference/nfx_slice.d.ts.map +0 -1
  2213. package/dist/src/preference/types.d.ts +0 -28
  2214. package/dist/src/preference/types.d.ts.map +0 -1
  2215. package/dist/src/services/imageService.d.ts +0 -7
  2216. package/dist/src/services/imageService.d.ts.map +0 -1
  2217. package/dist/src/services/index.d.ts +0 -2
  2218. package/dist/src/services/index.d.ts.map +0 -1
  2219. package/dist/src/stores/index.d.ts +0 -2
  2220. package/dist/src/stores/index.d.ts.map +0 -1
  2221. package/dist/src/stores/makeStore.d.ts +0 -93
  2222. package/dist/src/stores/makeStore.d.ts.map +0 -1
  2223. package/dist/src/themes/hooks/index.d.ts +0 -5
  2224. package/dist/src/themes/hooks/index.d.ts.map +0 -1
  2225. package/dist/src/themes/hooks/useBaseVariables.d.ts +0 -8
  2226. package/dist/src/themes/hooks/useBaseVariables.d.ts.map +0 -1
  2227. package/dist/src/themes/hooks/useTheme.d.ts +0 -10
  2228. package/dist/src/themes/hooks/useTheme.d.ts.map +0 -1
  2229. package/dist/src/themes/hooks/useThemeVariables.d.ts +0 -11
  2230. package/dist/src/themes/hooks/useThemeVariables.d.ts.map +0 -1
  2231. package/dist/src/themes/hooks/useVariables.d.ts +0 -8
  2232. package/dist/src/themes/hooks/useVariables.d.ts.map +0 -1
  2233. package/dist/src/themes/index.d.ts +0 -9
  2234. package/dist/src/themes/index.d.ts.map +0 -1
  2235. package/dist/src/themes/providers/index.d.ts +0 -8
  2236. package/dist/src/themes/providers/index.d.ts.map +0 -1
  2237. package/dist/src/themes/themes/bases/android.d.ts +0 -5
  2238. package/dist/src/themes/themes/bases/android.d.ts.map +0 -1
  2239. package/dist/src/themes/themes/bases/default.d.ts +0 -6
  2240. package/dist/src/themes/themes/bases/default.d.ts.map +0 -1
  2241. package/dist/src/themes/themes/bases/index.d.ts +0 -9
  2242. package/dist/src/themes/themes/bases/index.d.ts.map +0 -1
  2243. package/dist/src/themes/themes/bases/ios.d.ts +0 -5
  2244. package/dist/src/themes/themes/bases/ios.d.ts.map +0 -1
  2245. package/dist/src/themes/themes/bases/linux.d.ts +0 -5
  2246. package/dist/src/themes/themes/bases/linux.d.ts.map +0 -1
  2247. package/dist/src/themes/themes/bases/windows.d.ts +0 -5
  2248. package/dist/src/themes/themes/bases/windows.d.ts.map +0 -1
  2249. package/dist/src/themes/themes/colors/coffee.d.ts +0 -8
  2250. package/dist/src/themes/themes/colors/coffee.d.ts.map +0 -1
  2251. package/dist/src/themes/themes/colors/corporate.d.ts +0 -8
  2252. package/dist/src/themes/themes/colors/corporate.d.ts.map +0 -1
  2253. package/dist/src/themes/themes/colors/cosmic.d.ts +0 -8
  2254. package/dist/src/themes/themes/colors/cosmic.d.ts.map +0 -1
  2255. package/dist/src/themes/themes/colors/dark.d.ts +0 -8
  2256. package/dist/src/themes/themes/colors/dark.d.ts.map +0 -1
  2257. package/dist/src/themes/themes/colors/default.d.ts +0 -8
  2258. package/dist/src/themes/themes/colors/default.d.ts.map +0 -1
  2259. package/dist/src/themes/themes/colors/forest.d.ts +0 -8
  2260. package/dist/src/themes/themes/colors/forest.d.ts.map +0 -1
  2261. package/dist/src/themes/themes/colors/index.d.ts +0 -14
  2262. package/dist/src/themes/themes/colors/index.d.ts.map +0 -1
  2263. package/dist/src/themes/themes/colors/light.d.ts +0 -8
  2264. package/dist/src/themes/themes/colors/light.d.ts.map +0 -1
  2265. package/dist/src/themes/themes/colors/wheat.d.ts +0 -8
  2266. package/dist/src/themes/themes/colors/wheat.d.ts.map +0 -1
  2267. package/dist/src/themes/themes/colors/wine.d.ts +0 -8
  2268. package/dist/src/themes/themes/colors/wine.d.ts.map +0 -1
  2269. package/dist/src/themes/themes/index.d.ts +0 -3
  2270. package/dist/src/themes/themes/index.d.ts.map +0 -1
  2271. package/dist/src/themes/types/components.d.ts +0 -25
  2272. package/dist/src/themes/types/components.d.ts.map +0 -1
  2273. package/dist/src/themes/types/context.d.ts +0 -20
  2274. package/dist/src/themes/types/context.d.ts.map +0 -1
  2275. package/dist/src/themes/types/index.d.ts +0 -7
  2276. package/dist/src/themes/types/index.d.ts.map +0 -1
  2277. package/dist/src/themes/types/theme.d.ts +0 -279
  2278. package/dist/src/themes/types/theme.d.ts.map +0 -1
  2279. package/dist/src/themes/utils/index.d.ts +0 -5
  2280. package/dist/src/themes/utils/index.d.ts.map +0 -1
  2281. package/dist/src/themes/utils/themeStorage.d.ts +0 -12
  2282. package/dist/src/themes/utils/themeStorage.d.ts.map +0 -1
  2283. package/dist/src/types/api.d.ts +0 -76
  2284. package/dist/src/types/api.d.ts.map +0 -1
  2285. package/dist/src/types/index.d.ts +0 -3
  2286. package/dist/src/types/index.d.ts.map +0 -1
  2287. package/dist/src/types/utils.d.ts.map +0 -1
  2288. package/dist/src/utils/address.d.ts.map +0 -1
  2289. package/dist/src/utils/apiError.d.ts +0 -22
  2290. package/dist/src/utils/apiError.d.ts.map +0 -1
  2291. package/dist/src/utils/array.d.ts +0 -22
  2292. package/dist/src/utils/array.d.ts.map +0 -1
  2293. package/dist/src/utils/colors.d.ts.map +0 -1
  2294. package/dist/src/utils/email.d.ts.map +0 -1
  2295. package/dist/src/utils/form.d.ts.map +0 -1
  2296. package/dist/src/utils/idle.d.ts.map +0 -1
  2297. package/dist/src/utils/index.d.ts +0 -26
  2298. package/dist/src/utils/index.d.ts.map +0 -1
  2299. package/dist/src/utils/lstorage.d.ts +0 -9
  2300. package/dist/src/utils/lstorage.d.ts.map +0 -1
  2301. package/dist/src/utils/object.d.ts.map +0 -1
  2302. package/dist/src/utils/polling.d.ts +0 -13
  2303. package/dist/src/utils/polling.d.ts.map +0 -1
  2304. package/dist/src/utils/price.d.ts.map +0 -1
  2305. package/dist/src/utils/promise.d.ts.map +0 -1
  2306. package/dist/src/utils/random.d.ts.map +0 -1
  2307. package/dist/src/utils/result.d.ts.map +0 -1
  2308. package/dist/src/utils/retry.d.ts +0 -16
  2309. package/dist/src/utils/retry.d.ts.map +0 -1
  2310. package/dist/src/utils/safe.d.ts +0 -80
  2311. package/dist/src/utils/safe.d.ts.map +0 -1
  2312. package/dist/src/utils/singleton.d.ts.map +0 -1
  2313. package/dist/src/utils/suspense.d.ts +0 -11
  2314. package/dist/src/utils/suspense.d.ts.map +0 -1
  2315. package/dist/src/utils/time.d.ts +0 -50
  2316. package/dist/src/utils/time.d.ts.map +0 -1
  2317. package/dist/src/utils/types.d.ts.map +0 -1
  2318. package/dist/stores.cjs +0 -4
  2319. package/dist/stores.cjs.map +0 -1
  2320. package/dist/stores.mjs +0 -166
  2321. package/dist/stores.mjs.map +0 -1
  2322. package/dist/themes.cjs +0 -4
  2323. package/dist/themes.cjs.map +0 -1
  2324. package/dist/themes.mjs +0 -1635
  2325. package/dist/themes.mjs.map +0 -1
  2326. package/dist/types.cjs +0 -1
  2327. package/dist/types.mjs +0 -1
  2328. package/dist/utils.cjs +0 -4
  2329. package/dist/utils.cjs.map +0 -1
  2330. package/dist/utils.mjs +0 -380
  2331. package/dist/utils.mjs.map +0 -1
  2332. /package/dist/{src/constants → constants}/caches.d.ts +0 -0
  2333. /package/dist/{src/constants → constants}/enums.d.ts +0 -0
  2334. /package/dist/{src/types → types}/utils.d.ts +0 -0
  2335. /package/dist/{src/utils → utils}/address.d.ts +0 -0
  2336. /package/dist/{src/utils → utils}/colors.d.ts +0 -0
  2337. /package/dist/{src/utils → utils}/email.d.ts +0 -0
  2338. /package/dist/{src/utils → utils}/form.d.ts +0 -0
  2339. /package/dist/{src/utils → utils}/idle.d.ts +0 -0
  2340. /package/dist/{src/utils → utils}/object.d.ts +0 -0
  2341. /package/dist/{src/utils → utils}/price.d.ts +0 -0
  2342. /package/dist/{src/utils → utils}/promise.d.ts +0 -0
  2343. /package/dist/{src/utils → utils}/random.d.ts +0 -0
  2344. /package/dist/{src/utils → utils}/result.d.ts +0 -0
  2345. /package/dist/{src/utils → utils}/singleton.d.ts +0 -0
  2346. /package/dist/{src/utils → utils}/types.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.mjs","names":["memo","memo"],"sources":["../src/designs/components/Button/styles.module.css","../src/designs/components/Button/index.tsx","../src/designs/components/Dropdown/Dropdown.module.css","../src/designs/components/Dropdown/index.tsx","../src/designs/components/Icon/index.tsx","../src/designs/components/Input/styles.module.css","../src/designs/components/Input/index.tsx","../src/designs/components/KeyValueEditor/styles.module.css","../src/designs/components/KeyValueEditor/index.tsx","../src/designs/components/SearchInput/styles.module.css","../src/designs/components/SearchInput/index.tsx","../src/designs/components/ShowFilter/styles.module.css","../src/designs/components/ShowFilter/index.tsx","../src/designs/components/SlideDownSwitcher/styles.module.css","../src/designs/components/SlideDownSwitcher/index.tsx","../src/designs/components/ThemeSwitcher/index.tsx","../src/designs/components/LayoutSwitcher/index.tsx","../src/designs/components/Slider/styles.module.css","../src/designs/components/Slider/index.tsx","../src/designs/components/Suspense/styles.module.css","../src/designs/components/Suspense/SuspenseErrorBoundary.ts","../src/designs/components/Suspense/index.tsx","../src/designs/components/Textarea/styles.module.css","../src/designs/components/Textarea/index.tsx","../node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js","../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../node_modules/@tanstack/virtual-core/dist/esm/index.js","../node_modules/@tanstack/react-virtual/dist/esm/index.js","../src/designs/components/VirtualList/styles.module.css","../src/designs/components/VirtualList/index.tsx","../src/designs/components/VirtualWindowList/styles.module.css","../src/designs/components/VirtualWindowList/index.tsx"],"sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n border: 1px solid transparent;\n border-radius: var(--radius-button);\n font-family: inherit;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n outline: none;\n position: relative;\n}\n\n.button:focus-visible {\n outline: 2px solid var(--color-primary);\n outline-offset: 2px;\n}\n\n.button:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Size variants */\n.button.small {\n padding: 0.5rem 1rem;\n font-size: 0.8125rem;\n min-height: 2rem;\n}\n\n.button.medium {\n padding: 0.75rem 1.5rem;\n font-size: 0.875rem;\n min-height: 2.5rem;\n}\n\n.button.large {\n padding: 1rem 2rem;\n font-size: 1rem;\n min-height: 3rem;\n}\n\n/* Variant styles */\n.button.primary {\n background: var(--color-primary);\n border-color: var(--color-primary);\n color: var(--color-primary-fg);\n}\n\n.button.primary:hover:not(:disabled) {\n background: var(--color-primary-light);\n border-color: var(--color-primary-light);\n transform: translateY(-1px);\n}\n\n.button.primary:active:not(:disabled) {\n transform: translateY(0);\n}\n\n.button.secondary {\n background: var(--color-bg-2);\n border-color: var(--color-border-4);\n color: var(--color-fg-text);\n}\n\n.button.secondary:hover:not(:disabled) {\n background: var(--color-bg-3);\n border-color: var(--color-primary);\n}\n\n.button.outline {\n background: transparent;\n border-color: var(--color-border-4);\n color: var(--color-fg-text);\n}\n\n.button.outline:hover:not(:disabled) {\n background: var(--color-bg-2);\n border-color: var(--color-primary);\n}\n\n.button.ghost {\n background: transparent;\n border-color: transparent;\n color: var(--color-fg-text);\n}\n\n.button.ghost:hover:not(:disabled) {\n background: var(--color-bg-2);\n}\n\n.button.danger {\n background: var(--color-danger);\n border-color: var(--color-danger);\n /* 与 Modal 等危险操作区一致:用 danger 专用前景,勿用 primary-fg(主题下易为深色) */\n color: var(--color-danger-fg, #ffffff);\n}\n\n.button.danger:hover:not(:disabled) {\n background: var(--color-danger-light);\n border-color: var(--color-danger-light);\n color: var(--color-danger-fg, #ffffff);\n transform: translateY(-1px);\n}\n\n.button.danger:active:not(:disabled) {\n transform: translateY(0);\n}\n\n/* Full width */\n.button.fullWidth {\n width: 100%;\n}\n\n/* Loading state */\n.button.loading {\n pointer-events: none;\n}\n\n.spinner {\n width: 1rem;\n height: 1rem;\n border: 2px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n flex-shrink: 0;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.button.small .spinner {\n width: 0.875rem;\n height: 0.875rem;\n border-width: 1.5px;\n}\n\n.button.large .spinner {\n width: 1.25rem;\n height: 1.25rem;\n border-width: 2.5px;\n}\n\n.content {\n display: flex;\n align-items: center;\n}\n\n.leftIcon,\n.rightIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.leftIcon {\n margin-right: -0.25rem;\n}\n\n.rightIcon {\n margin-left: -0.25rem;\n}\n\n/* Icon-only (square) */\n.button.iconOnly {\n aspect-ratio: 1;\n padding: 0;\n min-width: 2.5rem;\n min-height: 2.5rem;\n}\n\n.button.iconOnly.small {\n min-width: 2rem;\n min-height: 2rem;\n}\n\n.button.iconOnly.large {\n min-width: 3rem;\n min-height: 3rem;\n}\n\n.iconContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n}\n\n.layout {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n width: 100%;\n}\n\n.horizontal {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n width: 100%;\n}\n\n.topIcon,\n.bottomIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.iconOnly .iconContainer .leftIcon,\n.iconOnly .iconContainer .rightIcon {\n margin: 0;\n}\n","/**\n * 按钮组件:支持 variant、size、四向图标、iconOnly、loading、fullWidth。\n * Button with variant, size, top/right/bottom/left icon, iconOnly, loading, fullWidth.\n *\n * @example\n * ```tsx\n * <Button>保存</Button>\n * <Button leftIcon={<Save size={16} />} loading={isSubmitting}>提交</Button>\n * <Button leftIcon={<Trash2 size={16} />} iconOnly aria-label=\"删除\" />\n * ```\n */\nimport type { ButtonHTMLAttributes, ReactNode } from \"react\";\n\nimport { cloneElement, forwardRef, isValidElement } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"size\"> {\n variant?: \"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"danger\";\n size?: \"small\" | \"medium\" | \"large\";\n fullWidth?: boolean;\n leftIcon?: ReactNode;\n rightIcon?: ReactNode;\n /** 上方图标。Top icon. */\n topIcon?: ReactNode;\n /** 下方图标。Bottom icon. */\n bottomIcon?: ReactNode;\n /** 仅图标无文案。Icon only, no text. */\n iconOnly?: boolean;\n /** 图标尺寸覆盖。Override icon size. */\n iconSize?: number;\n loading?: boolean;\n children?: ReactNode;\n}\n\nfunction renderIcon(icon: ReactNode, iconSize?: number): ReactNode {\n if (!icon) return null;\n if (iconSize && isValidElement(icon) && typeof icon.type !== \"string\") {\n const existingProps = icon.props && typeof icon.props === \"object\" ? icon.props : {};\n return cloneElement(icon as React.ReactElement<{ size?: number }>, { ...existingProps, size: iconSize });\n }\n return icon;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"medium\",\n fullWidth = false,\n leftIcon,\n rightIcon,\n topIcon,\n bottomIcon,\n iconOnly = false,\n iconSize,\n loading = false,\n disabled,\n children,\n className = \"\",\n ...props\n },\n ref,\n ) => {\n const hasIcons = leftIcon || rightIcon || topIcon || bottomIcon;\n const hasContent = !iconOnly && children;\n const useIconOnlyLayout = iconOnly && hasIcons && !hasContent;\n const useLayout = topIcon || bottomIcon || useIconOnlyLayout;\n\n const buttonClasses = [\n styles.button,\n styles[variant],\n styles[size],\n fullWidth && styles.fullWidth,\n loading && styles.loading,\n useIconOnlyLayout && styles.iconOnly,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (useIconOnlyLayout) {\n return (\n <button ref={ref} type=\"button\" className={buttonClasses} disabled={disabled || loading} {...props}>\n <span className={styles.iconContainer}>\n {topIcon && <span className={styles.topIcon}>{renderIcon(topIcon, iconSize)}</span>}\n {leftIcon && <span className={styles.leftIcon}>{renderIcon(leftIcon, iconSize)}</span>}\n {rightIcon && <span className={styles.rightIcon}>{renderIcon(rightIcon, iconSize)}</span>}\n {bottomIcon && <span className={styles.bottomIcon}>{renderIcon(bottomIcon, iconSize)}</span>}\n </span>\n </button>\n );\n }\n\n if (useLayout) {\n return (\n <button ref={ref} type=\"button\" className={buttonClasses} disabled={disabled || loading} {...props}>\n {loading && <span className={styles.spinner} />}\n {!loading && (\n <span className={styles.layout}>\n {topIcon && <span className={styles.topIcon}>{renderIcon(topIcon, iconSize)}</span>}\n <span className={styles.horizontal}>\n {leftIcon && <span className={styles.leftIcon}>{renderIcon(leftIcon, iconSize)}</span>}\n {hasContent && <span className={styles.content}>{children}</span>}\n {rightIcon && <span className={styles.rightIcon}>{renderIcon(rightIcon, iconSize)}</span>}\n </span>\n {bottomIcon && <span className={styles.bottomIcon}>{renderIcon(bottomIcon, iconSize)}</span>}\n </span>\n )}\n </button>\n );\n }\n\n return (\n <button ref={ref} type=\"button\" className={buttonClasses} disabled={disabled || loading} {...props}>\n {loading && <span className={styles.spinner} />}\n {leftIcon && !loading && <span className={styles.leftIcon}>{renderIcon(leftIcon, iconSize)}</span>}\n {children && <span className={styles.content}>{children}</span>}\n {rightIcon && !loading && <span className={styles.rightIcon}>{renderIcon(rightIcon, iconSize)}</span>}\n </button>\n );\n },\n);\n\nButton.displayName = \"Button\";\n\nexport default Button;\n","/* ===== Dropdown 基础样式 ===== */\r\n.dropdown {\r\n position: relative;\r\n display: inline-block;\r\n width: 100%;\r\n}\r\n\r\n.dropdownButton {\r\n position: relative;\r\n width: 100%;\r\n padding: 0.75rem 1rem;\r\n padding-right: 2.5rem;\r\n border: 1px solid var(--color-separator);\r\n border-radius: var(--radius-card);\r\n cursor: pointer;\r\n outline: none;\r\n transition: all 0.2s ease-in-out;\r\n text-align: left;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n font-family: inherit;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n line-height: 1.5rem;\r\n background: var(--color-bg-2);\r\n color: var(--color-fg-text);\r\n}\r\n\r\n.dropdownButton:hover:not(:disabled) {\r\n border-color: var(--color-primary);\r\n background: var(--color-bg-1);\r\n}\r\n\r\n.dropdownButton:focus {\r\n border-color: var(--color-primary);\r\n background: var(--color-bg-1);\r\n box-shadow: 0 0 0 2px var(--color-primary-transparent);\r\n}\r\n\r\n.dropdownButton.disabled {\r\n cursor: not-allowed;\r\n opacity: 0.6;\r\n background: var(--color-bg-3);\r\n}\r\n\r\n.dropdownButton.error {\r\n border-color: var(--color-danger);\r\n}\r\n\r\n.buttonText {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.chevronIcon {\r\n position: absolute;\r\n right: 1rem;\r\n transition: transform 0.15s ease;\r\n flex-shrink: 0;\r\n color: var(--color-fg-highlight);\r\n}\r\n\r\n.chevronIcon.open {\r\n transform: rotate(180deg);\r\n}\r\n\r\n/* ===== 下拉菜单 ===== */\r\n.dropdownMenu {\r\n position: absolute;\r\n top: calc(100% + 0.5rem);\r\n left: 0;\r\n right: 0;\r\n min-width: 100%;\r\n background: var(--color-bg);\r\n border: 1px solid var(--color-border-4);\r\n border-radius: var(--radius-card);\r\n box-shadow: 0 0.5rem 1rem var(--color-shadow);\r\n z-index: 1000;\r\n overflow: hidden;\r\n animation: slideDown 0.15s ease-out;\r\n}\r\n\r\n@keyframes slideDown {\r\n from {\r\n opacity: 0;\r\n transform: translateY(-0.5rem);\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n}\r\n\r\n.optionsList {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0.5rem 0;\r\n}\r\n\r\n.option {\r\n padding: 0.75rem 1rem;\r\n cursor: pointer;\r\n transition: all 0.15s ease;\r\n display: flex;\r\n align-items: center;\r\n color: var(--color-fg-text);\r\n font-size: 0.875rem;\r\n}\r\n\r\n.option:hover {\r\n background-color: var(--color-bg-2);\r\n}\r\n\r\n.option.selected {\r\n background-color: var(--color-bg-3);\r\n color: var(--color-fg-highlight);\r\n font-weight: 600;\r\n}\r\n\r\n/* ===== 响应式 ===== */\r\n@media (max-width: 768px) {\r\n .dropdownButton {\r\n padding: 0.625rem 0.875rem;\r\n padding-right: 2.25rem;\r\n font-size: 0.875rem;\r\n }\r\n\r\n .chevronIcon {\r\n right: 0.875rem;\r\n }\r\n\r\n .option {\r\n padding: 0.625rem 0.875rem;\r\n font-size: 0.8125rem;\r\n }\r\n}","/**\n * 下拉选择:options 为 { value, label } 列表,受控 value/onChange。Dropdown select; options as { value, label }, controlled value/onChange.\n *\n * @example\n * ```tsx\n * * 受控选择\n * const [value, setValue] = useState(\"\");\n * <Dropdown\n * options={[{ value: \"a\", label: \"选项 A\" }, { value: \"b\", label: \"选项 B\" }]}\n * value={value}\n * onChange={setValue}\n * placeholder=\"请选择\"\n * />\n * ```\n */\nimport { memo, useEffect, useRef, useState } from \"react\";\n\nimport { ChevronDown } from \"@/icons/lucide\";\n\nimport styles from \"./Dropdown.module.css\";\n\nexport interface DropdownOption {\n /** 选项值。Option value. */\n value: string;\n /** 选项展示文案。Option label. */\n label: string;\n}\n\nexport interface DropdownProps {\n /** 选项列表。Options list. */\n options: DropdownOption[];\n /** 当前选中值。Current value. */\n value: string;\n /** 选中回调。Change callback. */\n onChange: (value: string) => void;\n /** 占位符。Placeholder. */\n placeholder?: string;\n /** 是否禁用。Disabled. */\n disabled?: boolean;\n /** 是否错误态。Error state. */\n error?: boolean;\n /** 容器 className。Container className. */\n className?: string;\n}\n\nconst Dropdown = memo<DropdownProps>(({ options, value, onChange, placeholder = \"Select an option\", disabled = false, error = false, className = \"\" }) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n // 点击外部关闭下拉菜单\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n const selectedOption = options.find((option) => option.value === value);\n const displayText = selectedOption ? selectedOption.label : placeholder;\n\n const handleOptionClick = (optionValue: string) => {\n onChange(optionValue);\n setIsOpen(false);\n };\n\n return (\n <div className={`${styles.dropdown} ${className}`} ref={dropdownRef}>\n <button\n type=\"button\"\n className={`${styles.dropdownButton} ${error ? styles.error : \"\"} ${disabled ? styles.disabled : \"\"}`}\n onClick={() => !disabled && setIsOpen(!isOpen)}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n >\n <span className={styles.buttonText}>{displayText}</span>\n <ChevronDown size={16} className={`${styles.chevronIcon} ${isOpen ? styles.open : \"\"}`} />\n </button>\n\n {isOpen && !disabled && (\n <div className={styles.dropdownMenu}>\n <ul className={styles.optionsList} role=\"listbox\">\n {options.map((option) => (\n <li\n key={option.value}\n className={`${styles.option} ${option.value === value ? styles.selected : \"\"}`}\n onClick={() => handleOptionClick(option.value)}\n role=\"option\"\n aria-selected={option.value === value}\n >\n {option.label}\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n );\n});\n\nDropdown.displayName = \"Dropdown\";\n\nexport default Dropdown;\n","/**\n * 图标组件:基于 lucide-react,通过 name 渲染对应图标。Icon component; renders lucide icon by name.\n *\n * @example\n * ```tsx\n * * 使用已注册的图标名\n * <Icon name=\"ChevronDown\" size={20} />\n * * 带 className\n * <Icon name=\"Search\" className={styles.searchIcon} />\n * ```\n */\nimport type { LucideProps } from \"lucide-react\";\n\nimport { memo } from \"react\";\n\nimport * as LucideIcons from \"@/icons/lucide\";\n\nexport type IconName = keyof Omit<typeof LucideIcons, \"LucideIcon\">;\n\nexport interface IconProps extends LucideProps {\n /** 图标名(lucide 注册名)。Icon name (lucide registered name). */\n name: IconName;\n}\n\nconst Icon = memo(({ name, ...props }: IconProps) => {\n const LucideIcon = LucideIcons[name] as React.ComponentType<LucideProps> | undefined;\n\n if (!LucideIcon) {\n console.warn(`Icon \"${name}\" not found in lucide-react`);\n return null;\n }\n\n return <LucideIcon {...props} />;\n});\n\nIcon.displayName = \"Icon\";\n\nexport default Icon;\n",".wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.wrapper.fullWidth {\n width: 100%;\n}\n\n.label {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-fg-heading);\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.required {\n color: var(--color-danger);\n}\n\n.inputContainer {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.input {\n width: 100%;\n border: 1px solid var(--color-border-4);\n border-radius: var(--radius-input);\n background: var(--color-bg);\n color: var(--color-fg-text);\n font-size: 0.875rem;\n font-family: inherit;\n transition: all 0.2s ease;\n outline: none;\n}\n\n/* 隐藏浏览器默认的密码可见性切换图标 */\n/* Chrome/Edge/Safari: 隐藏密码可见性切换按钮 */\n.input[type=\"password\"]::-webkit-credentials-auto-fill-button {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n pointer-events: none !important;\n -webkit-appearance: none !important;\n appearance: none !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n.input[type=\"password\"]::-webkit-strong-password-toggle-button {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n pointer-events: none !important;\n -webkit-appearance: none !important;\n appearance: none !important;\n margin: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n/* Edge 浏览器额外处理 */\n.input[type=\"password\"]::-ms-reveal,\n.input[type=\"password\"]::-ms-clear {\n display: none !important;\n visibility: hidden !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n position: absolute !important;\n left: -9999px !important;\n}\n\n.input:focus {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.1);\n}\n\n.input::placeholder {\n color: var(--color-fg-muted);\n opacity: 0.5;\n}\n\n/* Size variants */\n.input.small {\n padding: 0.5rem 0.75rem;\n font-size: 0.8125rem;\n}\n\n.input.medium {\n padding: 0.75rem;\n font-size: 0.875rem;\n}\n\n.input.large {\n padding: 1rem;\n font-size: 1rem;\n}\n\n/* Variant styles */\n.input.default {\n background: var(--color-bg);\n border-color: var(--color-border-4);\n}\n\n.input.filled {\n background: var(--color-bg-2);\n border-color: var(--color-border-3);\n}\n\n/* With icons - handled via className in component */\n.inputContainer.withLeftIcon .input {\n padding-left: 2.5rem;\n}\n\n.inputContainer.withRightIcon .input {\n padding-right: 2.5rem;\n}\n\n.inputContainer.withLeftIcon .input.small {\n padding-left: 2rem;\n}\n\n.inputContainer.withRightIcon .input.small {\n padding-right: 2rem;\n}\n\n.inputContainer.withLeftIcon .input.large {\n padding-left: 3rem;\n}\n\n.inputContainer.withRightIcon .input.large {\n padding-right: 3rem;\n}\n\n.leftIcon,\n.rightIcon {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color-fg-muted);\n pointer-events: none;\n z-index: 1;\n}\n\n.leftIcon {\n left: 0.75rem;\n}\n\n.rightIcon {\n right: 0.75rem;\n}\n\n.rightIcon.rightIconInteractive {\n pointer-events: auto;\n}\n\n.inputContainer.containerSmall .leftIcon {\n left: 0.5rem;\n}\n\n.inputContainer.containerSmall .rightIcon {\n right: 0.5rem;\n}\n\n.inputContainer.containerLarge .leftIcon {\n left: 1rem;\n}\n\n.inputContainer.containerLarge .rightIcon {\n right: 1rem;\n}\n\n/* Error state */\n.input.error {\n border-color: var(--color-danger);\n}\n\n.input.error:focus {\n border-color: var(--color-danger);\n box-shadow: 0 0 0 3px rgba(var(--color-danger-rgb), 0.1);\n}\n\n/* Disabled state */\n.input.disabled {\n background: var(--color-bg-3);\n border-color: var(--color-border-5);\n color: var(--color-fg-muted);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.errorMessage {\n font-size: 0.75rem;\n color: var(--color-danger);\n margin: 0;\n}\n\n.helperText {\n font-size: 0.75rem;\n color: var(--color-fg-muted);\n margin: 0;\n}\n","/**\n * 输入框:支持 label、error、helperText、左右图标与 rightIconInteractive。Input with label, error, helperText, left/right icon.\n *\n * @example\n * ```tsx\n * * 带标签与错误态\n * <Input label=\"用户名\" error={errors.name} value={name} onChange={(e) => setName(e.target.value)} />\n * * 右侧可点击图标(如清除)\n * <Input rightIcon={<X size={16} />} rightIconInteractive onRightIconClick={clear} />\n * ```\n */\nimport type { InputHTMLAttributes, ReactNode } from \"react\";\n\nimport { forwardRef } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n /** 标签文案。Label text. */\n label?: ReactNode;\n /** 错误信息。Error message. */\n error?: ReactNode;\n /** 辅助说明。Helper text. */\n helperText?: ReactNode;\n /** 左侧图标。Left icon. */\n leftIcon?: ReactNode;\n /** 右侧图标。Right icon. */\n rightIcon?: ReactNode;\n /** 为 true 时 rightIcon 可点击(如密码切换、清除按钮)。When true, right icon is clickable (e.g. password toggle, clear). */\n rightIconInteractive?: boolean;\n /** 尺寸。Size. */\n size?: \"small\" | \"medium\" | \"large\";\n /** 视觉变体。Variant. */\n variant?: \"default\" | \"filled\";\n /** 是否占满宽度。Full width. */\n fullWidth?: boolean;\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n label,\n error,\n helperText,\n leftIcon,\n rightIcon,\n rightIconInteractive = false,\n size = \"medium\",\n variant = \"default\",\n fullWidth = false,\n className = \"\",\n disabled,\n ...props\n },\n ref,\n ) => {\n const inputClasses = [styles.input, styles[size], styles[variant], error && styles.error, disabled && styles.disabled, className].filter(Boolean).join(\" \");\n\n const wrapperClasses = [styles.wrapper, fullWidth && styles.fullWidth].filter(Boolean).join(\" \");\n\n const containerClasses = [\n styles.inputContainer,\n leftIcon && styles.withLeftIcon,\n rightIcon && styles.withRightIcon,\n size && styles[`container${size.charAt(0).toUpperCase() + size.slice(1)}`],\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label className={styles.label}>\n {label}\n {props.required && <span className={styles.required}>*</span>}\n </label>\n )}\n <div className={containerClasses}>\n {leftIcon && <div className={styles.leftIcon}>{leftIcon}</div>}\n <input ref={ref} className={inputClasses} disabled={disabled} {...props} />\n {rightIcon && <div className={`${styles.rightIcon} ${rightIconInteractive ? styles.rightIconInteractive : \"\"}`}>{rightIcon}</div>}\n </div>\n {error && <p className={styles.errorMessage}>{error}</p>}\n {helperText && !error && <p className={styles.helperText}>{helperText}</p>}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n\nexport default Input;\n",".container {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.label {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-fg-text);\n}\n\n.error {\n font-size: 0.875rem;\n color: var(--color-error);\n}\n\n.pairs {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.pair {\n display: grid;\n grid-template-columns: 1fr 2fr auto;\n gap: 0.75rem;\n align-items: start;\n}\n\n.keyInput,\n.valueInput {\n flex: 1;\n}\n\n.removeButton {\n padding: 0.5rem;\n min-width: auto;\n color: var(--color-error);\n}\n\n.removeButton:hover {\n background-color: var(--color-error);\n color: var(--color-primary-fg);\n}\n\n.addButton {\n align-self: flex-start;\n}\n\n@media (max-width: 768px) {\n .pair {\n grid-template-columns: 1fr;\n }\n\n .removeButton {\n align-self: flex-end;\n }\n}\n","/**\n * 键值对编辑器:动态增删 key-value 行,支持 string 或 array 值类型。Key-value pair editor; add/remove rows, valueType string or array.\n *\n * @example\n * ```tsx\n * * 字符串值\n * const [pairs, setPairs] = useState<KeyValuePair[]>([{ key: \"env\", value: \"prod\" }]);\n * <KeyValueEditor label=\"环境变量\" pairs={pairs} onChange={setPairs} />\n * * 数组值(逗号分隔)\n * <KeyValueEditor label=\"标签\" pairs={pairs} onChange={setPairs} valueType=\"array\" />\n * ```\n */\nimport type { ReactNode } from \"react\";\n\nimport { memo, useEffect, useState } from \"react\";\n\nimport Button from \"@/designs/components/Button\";\nimport Input from \"@/designs/components/Input\";\nimport { Plus, Trash2 } from \"@/icons/lucide\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface KeyValuePair {\n /** 键。Key. */\n key: string;\n /** 值(字符串或字符串数组)。Value (string or string[]). */\n value: string | string[];\n}\n\nexport interface KeyValueEditorProps {\n /** 表单项标签。Field label. */\n label: ReactNode;\n /** 键值对列表。Key-value pairs. */\n pairs: KeyValuePair[];\n /** 列表变化回调。Change callback. */\n onChange: (pairs: KeyValuePair[]) => void;\n /** 值类型:string 或 array。Value type: string or array. */\n valueType?: \"string\" | \"array\";\n /** 键占位符。Key placeholder. */\n keyPlaceholder?: string;\n /** 值占位符(string 模式)。Value placeholder (string mode). */\n valuePlaceholder?: string;\n /** 值占位符(array 模式)。Value placeholder (array mode). */\n valueArrayPlaceholder?: string;\n /** 删除按钮 aria-label。Remove button aria-label. */\n removeAriaLabel?: string;\n /** 新增按钮文案。Add button label. */\n addLabel?: ReactNode;\n /** 错误信息。Error message. */\n error?: ReactNode;\n}\n\nconst KeyValueEditor = memo(\n ({\n label,\n pairs,\n onChange,\n valueType = \"string\",\n keyPlaceholder = \"Key\",\n valuePlaceholder = \"Value\",\n valueArrayPlaceholder = \"Value (comma-separated)\",\n removeAriaLabel = \"Remove row\",\n addLabel = \"Add\",\n error,\n }: KeyValueEditorProps) => {\n const effectiveValuePlaceholder = valueType === \"array\" ? valueArrayPlaceholder : valuePlaceholder;\n const [localPairs, setLocalPairs] = useState<KeyValuePair[]>(pairs);\n\n // Sync with external pairs changes\n useEffect(() => {\n setLocalPairs(pairs);\n }, [pairs]);\n\n const handleAdd = () => {\n const newPairs = [...localPairs, { key: \"\", value: valueType === \"array\" ? [] : \"\" }];\n setLocalPairs(newPairs);\n onChange(newPairs);\n };\n\n const handleRemove = (index: number) => {\n const newPairs = localPairs.filter((_, i) => i !== index);\n setLocalPairs(newPairs);\n onChange(newPairs);\n };\n\n const handleKeyChange = (index: number, key: string) => {\n const newPairs = [...localPairs];\n newPairs[index] = { ...newPairs[index], key };\n setLocalPairs(newPairs);\n onChange(newPairs);\n };\n\n const handleValueChange = (index: number, value: string) => {\n const newPairs = [...localPairs];\n if (valueType === \"array\") {\n // Split by comma and trim\n const arrayValue = value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n newPairs[index] = { ...newPairs[index], value: arrayValue };\n } else {\n newPairs[index] = { ...newPairs[index], value };\n }\n setLocalPairs(newPairs);\n onChange(newPairs);\n };\n\n const getDisplayValue = (value: string | string[]): string => {\n if (Array.isArray(value)) {\n return value.join(\", \");\n }\n return value;\n };\n\n return (\n <div className={styles.container}>\n <label className={styles.label}>{label}</label>\n {error && <div className={styles.error}>{error}</div>}\n <div className={styles.pairs}>\n {localPairs.map((pair, index) => (\n <div key={index} className={styles.pair}>\n <Input placeholder={keyPlaceholder} value={pair.key} onChange={(e) => handleKeyChange(index, e.target.value)} className={styles.keyInput} />\n <Input\n placeholder={effectiveValuePlaceholder}\n value={getDisplayValue(pair.value)}\n onChange={(e) => handleValueChange(index, e.target.value)}\n className={styles.valueInput}\n />\n <Button type=\"button\" variant=\"ghost\" onClick={() => handleRemove(index)} className={styles.removeButton} aria-label={removeAriaLabel}>\n <Trash2 size={16} />\n </Button>\n </div>\n ))}\n </div>\n <Button type=\"button\" variant=\"secondary\" onClick={handleAdd} className={styles.addButton}>\n <Plus size={16} />\n {addLabel}\n </Button>\n </div>\n );\n },\n);\n\nKeyValueEditor.displayName = \"KeyValueEditor\";\n\nexport default KeyValueEditor;\n",".searchContainer {\r\n position: relative;\r\n width: 100%;\r\n max-width: 400px;\r\n}\r\n\r\n/** 占满父级(如 dialog / modal 内容区),不受 400px 上限 */\r\n.searchContainerFull {\r\n max-width: none;\r\n}\r\n\r\n.searchIcon {\r\n position: absolute;\r\n left: 1rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: var(--color-fg-muted);\r\n pointer-events: none;\r\n}\r\n\r\n.searchInput {\r\n width: 100%;\r\n padding: 0.75rem 3rem 0.75rem 3rem;\r\n border: 1px solid var(--color-border);\r\n border-radius: var(--radius-input);\r\n font-size: 1rem;\r\n color: var(--color-fg-text);\r\n background: var(--color-bg-2);\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.searchInput:focus {\r\n outline: none;\r\n border-color: var(--color-primary);\r\n box-shadow: 0 0 0 3px var(--color-primary-bg);\r\n}\r\n\r\n.searchInput::placeholder {\r\n color: var(--color-fg-muted);\r\n}\r\n\r\n.clearBtn {\r\n position: absolute;\r\n right: 0.75rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 1.5rem;\r\n height: 1.5rem;\r\n padding: 0;\r\n background: none;\r\n border: none;\r\n color: var(--color-fg-muted);\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.clearBtn:hover {\r\n color: var(--color-fg-text);\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .searchContainer {\r\n max-width: 100%;\r\n }\r\n}\r\n\r\n","/**\n * 搜索输入框:带搜索图标与清除按钮;文案由调用方传入。Search input with search icon and clear button; labels passed as props.\n *\n * @example\n * ```tsx\n * * 受控,文案由上层 i18n 传入\n * const { t } = useTranslation(\"components\");\n * <SearchInput value={keyword} onChange={setKeyword} placeholder={t(\"searchInput.placeholder\")} clearButtonAriaLabel={t(\"searchInput.clearSearch\")} />\n * ```\n */\nimport { memo } from \"react\";\n\nimport { Search, X } from \"@/icons/lucide\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface SearchInputProps {\n /** 当前输入值。Current value. */\n value: string;\n /** 值变化回调。Change callback. */\n onChange: (value: string) => void;\n /** 占位符,由调用方传入。Placeholder; pass from caller. */\n placeholder?: string;\n /** 清除按钮 aria-label;由调用方传入(可来自 i18n)。Clear button aria-label; pass from caller. */\n clearButtonAriaLabel?: string;\n /** 为 true 时占满父级宽度并去掉 400px 上限(如模态内);列表顶栏保持默认。 */\n fullWidth?: boolean;\n}\n\nconst SearchInput = memo(\n ({ value, onChange, placeholder, clearButtonAriaLabel = \"Clear search\", fullWidth = false }: SearchInputProps) => {\n const handleClear = () => onChange(\"\");\n\n return (\n <div className={`${styles.searchContainer} ${fullWidth ? styles.searchContainerFull : \"\"}`.trim()}>\n <Search size={18} className={styles.searchIcon} />\n <input type=\"text\" value={value} onChange={(e) => onChange(e.target.value)} placeholder={placeholder} className={styles.searchInput} />\n {value && (\n <button onClick={handleClear} className={styles.clearBtn} aria-label={clearButtonAriaLabel}>\n <X size={16} />\n </button>\n )}\n </div>\n );\n },\n);\n\nSearchInput.displayName = \"SearchInput\";\n\nexport default SearchInput;\n",".container {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.75rem;\r\n}\r\n\r\n.toggleContainer {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.toggleButton {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.5rem 1rem;\r\n border: 1px solid var(--color-border-4);\r\n border-radius: var(--radius-button);\r\n background: var(--color-bg);\r\n color: var(--color-fg-muted);\r\n font-size: 0.875rem;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.toggleButton:hover {\r\n background: var(--color-bg-2);\r\n border-color: var(--color-border-3);\r\n}\r\n\r\n.toggleButton.enabled {\r\n background: var(--color-primary);\r\n color: var(--color-primary-fg);\r\n border-color: var(--color-primary);\r\n}\r\n\r\n.toggleButton.enabled:hover {\r\n background: var(--color-primary-hover);\r\n border-color: var(--color-primary-hover);\r\n color: var(--color-primary-fg);\r\n}\r\n\r\n.optionsContainer {\r\n display: flex;\r\n gap: 0.5rem;\r\n padding: 0.5rem;\r\n background: var(--color-bg-2);\r\n border-radius: var(--radius-card);\r\n border: 1px solid var(--color-border-4);\r\n}\r\n\r\n.option {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.375rem;\r\n padding: 0.5rem 0.875rem;\r\n border: 1px solid var(--color-border-4);\r\n border-radius: var(--radius-button);\r\n background: var(--color-bg);\r\n color: var(--color-fg);\r\n font-size: 0.875rem;\r\n font-weight: 500;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n flex: 1;\r\n justify-content: center;\r\n}\r\n\r\n.option:hover {\r\n background: var(--color-bg-3);\r\n border-color: var(--color-border-3);\r\n}\r\n\r\n.option.active {\r\n background: var(--color-primary);\r\n color: var(--color-primary-fg);\r\n border-color: var(--color-primary);\r\n}\r\n\r\n.option.active:hover {\r\n background: var(--color-primary-hover);\r\n border-color: var(--color-primary-hover);\r\n color: var(--color-primary-fg);\r\n}\r\n\r\n","/**\n * 显示/隐藏筛选器:开关 + 全部/显示/隐藏选项;文案由调用方传入。Show/hide filter; labels passed as props.\n *\n * @example\n * ```tsx\n * * 受控,不传文案则用默认英文;可传 i18n\n * <ShowFilter value={filter} onChange={setFilter} />\n * <ShowFilter value={filter} onChange={setFilter} all={t(\"showFilter.all\")} show={t(\"showFilter.show\")} hide={t(\"showFilter.hide\")} />\n * ```\n */\nimport type { ReactNode } from \"react\";\n\nimport { memo } from \"react\";\n\nimport { Eye, EyeOff, Filter } from \"@/icons/lucide\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface ShowFilterValue {\n /** 筛选是否启用。Whether filter is enabled. */\n enabled: boolean;\n /** 显示/隐藏:null=全部,true=显示,false=隐藏。Show/hide: null=all, true=show, false=hide. */\n value: boolean | null;\n}\n\nexport interface ShowFilterProps {\n /** 当前值。Current value. */\n value: ShowFilterValue;\n /** 值变化回调。Change callback. */\n onChange: (value: ShowFilterValue) => void;\n /** 筛选开启时的按钮文案。Label when filter enabled. */\n filterEnabled?: ReactNode;\n /** 筛选关闭时的按钮文案。Label when filter disabled. */\n filterDisabled?: ReactNode;\n /** 开启筛选按钮的 aria-label。Aria-label for enable filter button. */\n enableFilterAriaLabel?: string;\n /** 关闭筛选按钮的 aria-label。Aria-label for disable filter button. */\n disableFilterAriaLabel?: string;\n /** 「全部」选项文案。Label for \"all\" option. */\n all?: ReactNode;\n /** 「显示」选项文案。Label for \"show\" option. */\n show?: ReactNode;\n /** 「隐藏」选项文案。Label for \"hide\" option. */\n hide?: ReactNode;\n}\n\nconst ShowFilter = memo(\n ({\n value,\n onChange,\n filterEnabled = \"Filter on\",\n filterDisabled = \"Filter\",\n enableFilterAriaLabel = \"Enable filter\",\n disableFilterAriaLabel = \"Disable filter\",\n all = \"All\",\n show = \"Show\",\n hide = \"Hide\",\n }: ShowFilterProps) => {\n const handleToggleEnabled = () => {\n onChange({ ...value, enabled: !value.enabled });\n };\n\n const handleSelectValue = (filterValue: boolean | null) => {\n onChange({ ...value, value: filterValue });\n };\n\n return (\n <div className={styles.container}>\n <div className={styles.toggleContainer}>\n <button\n type=\"button\"\n className={`${styles.toggleButton} ${value.enabled ? styles.enabled : \"\"}`}\n onClick={handleToggleEnabled}\n aria-label={value.enabled ? disableFilterAriaLabel : enableFilterAriaLabel}\n >\n <Filter size={16} />\n <span>{value.enabled ? filterEnabled : filterDisabled}</span>\n </button>\n </div>\n\n {value.enabled && (\n <div className={styles.optionsContainer}>\n <button type=\"button\" className={`${styles.option} ${value.value === null ? styles.active : \"\"}`} onClick={() => handleSelectValue(null)}>\n {all}\n </button>\n <button type=\"button\" className={`${styles.option} ${value.value === true ? styles.active : \"\"}`} onClick={() => handleSelectValue(true)}>\n <Eye size={16} />\n <span>{show}</span>\n </button>\n <button type=\"button\" className={`${styles.option} ${value.value === false ? styles.active : \"\"}`} onClick={() => handleSelectValue(false)}>\n <EyeOff size={16} />\n <span>{hide}</span>\n </button>\n </div>\n )}\n </div>\n );\n },\n);\n\nShowFilter.displayName = \"ShowFilter\";\n\nexport default ShowFilter;\n","/* ===== Nebular Select 样式模仿(下拉滑出) ===== */\n\n.nbSelect {\n display: inline-block;\n position: relative;\n font-family: inherit;\n font-size: 0.9375rem;\n line-height: 1.5rem;\n font-weight: 600;\n}\n\n.selectButton {\n position: relative;\n width: 100%;\n min-width: 8rem;\n padding: 0.4375rem 2.2rem 0.4375rem 1.125rem;\n border: 1px solid;\n border-radius: var(--radius-button);\n cursor: pointer;\n outline: none;\n transition: all 0.15s ease-in-out;\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.selectButton.primary {\n background-color: var(--color-primary);\n border-color: var(--color-primary);\n color: var(--color-primary-fg);\n}\n\n.selectButton.primary:hover:not(:disabled) {\n background-color: var(--color-primary-light);\n border-color: var(--color-primary-light);\n}\n\n.selectButton.primary:focus,\n.selectButton.primary.open {\n background-color: var(--color-primary-light);\n border-color: var(--color-primary-light);\n box-shadow: 0 0 0 0.125rem rgba(var(--color-primary-rgb), 0.25);\n}\n\n.selectButton.default {\n background-color: var(--color-bg);\n border-color: var(--color-border-4);\n color: var(--color-fg-text);\n}\n\n.selectButton.default:hover:not(:disabled) {\n background-color: var(--color-bg-2);\n border-color: var(--color-primary);\n}\n\n.selectButton.default:focus,\n.selectButton.default.open {\n background-color: var(--color-bg-2);\n border-color: var(--color-primary);\n box-shadow: 0 0 0 0.125rem rgba(var(--color-primary-rgb), 0.25);\n}\n\n.selectButton:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.buttonText {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.chevronIcon {\n position: absolute;\n right: 0.41rem;\n width: 1.5rem;\n height: 1.5rem;\n transition: transform 0.15s ease;\n flex-shrink: 0;\n}\n\n.selectButton.primary .chevronIcon {\n color: var(--color-primary-fg);\n}\n\n.selectButton.default .chevronIcon {\n color: var(--color-fg);\n}\n\n.chevronIcon.open {\n transform: rotate(180deg);\n}\n\n.optionsPanel {\n position: absolute;\n top: calc(100% + 0.5rem);\n left: 0;\n right: 0;\n min-width: 100%;\n background-color: var(--color-bg);\n border: 1px solid var(--color-border-4);\n border-radius: var(--radius-button);\n box-shadow: 0 0.5rem 1rem var(--color-shadow);\n z-index: 1000;\n overflow: hidden;\n transform-origin: top;\n visibility: hidden;\n pointer-events: none;\n}\n\n.optionsPanel.open {\n visibility: visible;\n pointer-events: auto;\n animation: expandDown 0.25s ease-out;\n}\n\n.optionsPanel.closed {\n visibility: hidden;\n pointer-events: none;\n animation: collapseUp 0.25s ease-out;\n}\n\n@keyframes expandDown {\n from {\n opacity: 0;\n transform: scaleY(0);\n }\n to {\n opacity: 1;\n transform: scaleY(1);\n }\n}\n\n@keyframes collapseUp {\n from {\n opacity: 1;\n transform: scaleY(1);\n }\n to {\n opacity: 0;\n transform: scaleY(0);\n }\n}\n\n.optionsPanel.primary {\n border-color: var(--color-primary);\n}\n\n.optionsPanel.default {\n border-color: var(--color-border-4);\n}\n\n.optionsList {\n list-style: none;\n margin: 0;\n padding: 0.5rem 0;\n}\n\n.option {\n padding: 0.75rem 1.125rem;\n cursor: pointer;\n transition: all 0.15s ease;\n display: flex;\n align-items: center;\n justify-content: space-between;\n color: var(--color-fg-text);\n}\n\n.option:hover {\n background-color: var(--color-bg-2);\n}\n\n.option.selected {\n background-color: var(--color-primary);\n color: var(--color-primary-fg);\n font-weight: 700;\n}\n\n@media (prefers-color-scheme: dark) {\n .optionsPanel {\n box-shadow: 0 0.5rem 1rem var(--color-shadow);\n }\n}\n","/**\n * 下滑切换器:选项列表下拉选择,支持泛型 T(如 enum)。Dropdown switcher with options; generic T (e.g. enum).\n *\n * @example\n * ```tsx\n * * 与 enum 配合\n * type Status = \"all\" | \"active\" | \"archived\";\n * <SlideDownSwitcher<Status>\n * value={filter}\n * options={[\"all\", \"active\", \"archived\"]}\n * getDisplayName={(v) => ({ all: \"全部\", active: \"启用\", archived: \"归档\" }[v])}\n * onChange={setFilter}\n * />\n * ```\n */\nimport { memo, useEffect, useRef, useState } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface SlideDownSwitcherProps<T extends string> {\n /** 当前选中的值(enum 或 string) */\n value: T;\n /** 可选项列表(如 Object.values(SomeEnum)) */\n options: readonly T[];\n /** 选项展示文案 */\n getDisplayName: (value: T) => string;\n /** 选中后回调 */\n onChange: (value: T) => void;\n status?: \"primary\" | \"default\";\n}\n\nconst SlideDownSwitcherInner = <T extends string>({ value, options, getDisplayName, onChange, status = \"primary\" }: SlideDownSwitcherProps<T>) => {\n const [isOpen, setIsOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, []);\n\n const handleSelect = (option: T) => {\n onChange(option);\n setIsOpen(false);\n };\n\n return (\n <div className={styles.nbSelect} ref={wrapperRef}>\n <button\n type=\"button\"\n className={`${styles.selectButton} ${styles[status]}`}\n onClick={() => setIsOpen(!isOpen)}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n >\n <span className={styles.buttonText}>{getDisplayName(value)}</span>\n <svg\n className={`${styles.chevronIcon} ${isOpen ? styles.open : \"\"}`}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <path d=\"m6 9 6 6 6-6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n\n <div className={`${styles.optionsPanel} ${styles[status]} ${isOpen ? styles.open : styles.closed}`} role=\"listbox\">\n <ul className={styles.optionsList}>\n {options.map((option) => (\n <li\n key={option}\n className={`${styles.option} ${option === value ? styles.selected : \"\"}`}\n onClick={() => handleSelect(option)}\n role=\"option\"\n aria-selected={option === value}\n >\n <span>{getDisplayName(option)}</span>\n {option === value && (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M20 6L9 17l-5-5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </li>\n ))}\n </ul>\n </div>\n </div>\n );\n};\n\nconst SlideDownSwitcher = memo(SlideDownSwitcherInner) as typeof SlideDownSwitcherInner & {\n displayName?: string;\n};\nSlideDownSwitcher.displayName = \"SlideDownSwitcher\";\n\nexport default SlideDownSwitcher;\n","import type { ThemeEnum, ThemeSwitcherProps } from \"@/themes/types\";\n\nimport { memo } from \"react\";\n\nimport { useTheme } from \"@/themes/hooks/useTheme\";\n\nimport SlideDownSwitcher from \"../SlideDownSwitcher\";\n\nconst ThemeSwitcher = memo(({ status = \"primary\", getThemeDisplayName, handleChangeTheme }: ThemeSwitcherProps) => {\n const { themeName, setTheme, availableThemes } = useTheme();\n\n const getDisplayName = getThemeDisplayName ?? ((theme: ThemeEnum) => theme);\n\n const handleChange = (theme: ThemeEnum) => {\n setTheme(theme);\n handleChangeTheme?.(theme);\n };\n\n return <SlideDownSwitcher value={themeName} options={availableThemes} getDisplayName={getDisplayName} onChange={handleChange} status={status} />;\n});\n\nThemeSwitcher.displayName = \"ThemeSwitcher\";\n\nexport default ThemeSwitcher;\n","import type { LayoutSwitcherProps } from \"@/designs/layouts/types\";\n\nimport { memo } from \"react\";\n\nimport useLayout from \"@/designs/layouts/hooks/useLayout\";\nimport { LAYOUT_MODE_VALUES, LayoutModeEnum } from \"@/designs/layouts/types\";\n\nimport SlideDownSwitcher from \"../SlideDownSwitcher\";\n\nconst LayoutSwitcher = memo(({ status = \"primary\", getLayoutDisplayName, handleChangeLayoutMode }: LayoutSwitcherProps) => {\n const { layoutMode, setLayoutMode } = useLayout();\n\n const getDisplayName = getLayoutDisplayName ?? ((mode: LayoutModeEnum) => mode);\n\n const handleChange = (mode: LayoutModeEnum) => {\n setLayoutMode(mode);\n handleChangeLayoutMode?.(mode);\n };\n\n return <SlideDownSwitcher value={layoutMode} options={LAYOUT_MODE_VALUES} getDisplayName={getDisplayName} onChange={handleChange} status={status} />;\n});\n\nLayoutSwitcher.displayName = \"LayoutSwitcher\";\n\nexport default LayoutSwitcher;\n",".sliderContainer {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.sliderContainer.fullWidth {\n width: 100%;\n}\n\n.labelRow {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n min-height: 1.5rem;\n}\n\n.label {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-fg-text);\n}\n\n.required {\n color: var(--color-danger);\n margin-left: 0.25rem;\n}\n\n.sliderWrapper {\n display: flex;\n width: 100%;\n touch-action: none;\n user-select: none;\n align-items: center;\n justify-content: center;\n gap: 0.75rem;\n}\n\n.sliderRoot {\n position: relative;\n display: flex;\n width: 100%;\n flex-grow: 1;\n cursor: grab;\n touch-action: none;\n user-select: none;\n align-items: center;\n padding: 0.75rem 0;\n}\n\n.sliderRoot:active {\n cursor: grabbing;\n}\n\n.sliderTrackWrapper {\n display: flex;\n flex-grow: 1;\n position: relative;\n}\n\n.sliderTrack {\n position: relative;\n height: 0.375rem;\n width: 100%;\n overflow: hidden;\n border-radius: var(--radius-badge);\n background-color: var(--color-bg-3);\n}\n\n.sliderRange {\n position: absolute;\n height: 100%;\n background-color: var(--color-primary);\n border-radius: var(--radius-badge);\n}\n\n.valueIndicator {\n color: var(--color-primary);\n font-size: 0.875rem;\n font-weight: 600;\n min-width: 2rem;\n text-align: center;\n flex-shrink: 0;\n line-height: 1;\n}\n\n.iconWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.icon {\n width: 20px;\n height: 20px;\n color: var(--color-fg-muted);\n}\n\n.errorMessage {\n font-size: 0.75rem;\n color: var(--color-danger);\n margin: 0;\n}\n\n.helperText {\n font-size: 0.75rem;\n color: var(--color-fg-muted);\n margin: 0;\n}\n","/**\n * 滑块:受控 value/onChange,支持 min/max/step、label、error、overflow 动效。Slider; controlled value/onChange, min/max/step, label, error.\n *\n * @example\n * ```tsx\n * * 基础\n * <Slider value={volume} onChange={setVolume} min={0} max={100} />\n * * 带标签与辅助文案\n * <Slider label=\"音量\" value={volume} onChange={setVolume} showValue helperText=\"0-100\" />\n * ```\n */\nimport type { ReactNode } from \"react\";\n\nimport { forwardRef, memo, useEffect, useRef, useState } from \"react\";\nimport { animate, motion, useMotionValue, useMotionValueEvent, useTransform } from \"motion/react\";\n\nimport { ChevronLeft, ChevronRight } from \"@/icons/lucide\";\n\nimport styles from \"./styles.module.css\";\n\nconst MAX_OVERFLOW = 50;\n\nexport interface SliderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n /** 当前值。Current value. */\n value: number;\n /** 值变化回调。Change callback. */\n onChange: (value: number) => void;\n /** 最小值。Minimum. */\n min?: number;\n /** 最大值。Maximum. */\n max?: number;\n /** 步长。Step. */\n step?: number;\n /** 是否显示数值。Show value. */\n showValue?: boolean;\n /** 是否占满宽度。Full width. */\n fullWidth?: boolean;\n /** 标签文案。Label text. */\n label?: ReactNode;\n /** 错误信息。Error message. */\n error?: ReactNode;\n /** 辅助说明。Helper text. */\n helperText?: ReactNode;\n /** 是否必填。Required. */\n required?: boolean;\n}\n\nconst Slider = memo(\n forwardRef<HTMLDivElement, SliderProps>(\n (\n {\n value: controlledValue,\n onChange,\n min = 0,\n max = 10,\n step = 1,\n showValue = true,\n fullWidth = false,\n label,\n error,\n helperText,\n required = false,\n className = \"\",\n ...props\n },\n ref,\n ) => {\n const [value, setValue] = useState<number>(controlledValue);\n const sliderRef = useRef<HTMLDivElement>(null);\n const [region, setRegion] = useState<\"left\" | \"middle\" | \"right\">(\"middle\");\n const clientX = useMotionValue(0);\n const overflow = useMotionValue(0);\n\n useEffect(() => {\n setValue(controlledValue);\n }, [controlledValue]);\n\n useMotionValueEvent(clientX, \"change\", (latest: number) => {\n if (sliderRef.current) {\n const { left, right } = sliderRef.current.getBoundingClientRect();\n let newValue: number;\n if (latest < left) {\n setRegion(\"left\");\n newValue = left - latest;\n } else if (latest > right) {\n setRegion(\"right\");\n newValue = latest - right;\n } else {\n setRegion(\"middle\");\n newValue = 0;\n }\n overflow.jump(decay(newValue, MAX_OVERFLOW));\n }\n });\n\n const handlePointerMove = (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.buttons > 0 && sliderRef.current) {\n const { left, width } = sliderRef.current.getBoundingClientRect();\n let newValue = min + ((e.clientX - left) / width) * (max - min);\n if (step > 0) {\n newValue = Math.round(newValue / step) * step;\n }\n newValue = Math.min(Math.max(newValue, min), max);\n setValue(newValue);\n onChange(newValue);\n clientX.jump(e.clientX);\n }\n };\n\n const handlePointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n handlePointerMove(e);\n e.currentTarget.setPointerCapture(e.pointerId);\n };\n\n const handlePointerUp = () => {\n animate(overflow, 0, { type: \"spring\", bounce: 0.5 });\n };\n\n const getRangePercentage = (): number => {\n const totalRange = max - min;\n if (totalRange === 0) return 0;\n return ((value - min) / totalRange) * 100;\n };\n\n const wrapperClasses = [styles.sliderContainer, fullWidth && styles.fullWidth, className].filter(Boolean).join(\" \");\n\n return (\n <div ref={ref} className={wrapperClasses} {...props}>\n {label && (\n <div className={styles.labelRow}>\n <label className={styles.label}>\n {label}\n {required && <span className={styles.required}>*</span>}\n </label>\n </div>\n )}\n <motion.div className={styles.sliderWrapper}>\n <motion.div\n animate={{\n scale: region === \"left\" ? [1, 1.4, 1] : 1,\n transition: { duration: 0.25 },\n }}\n style={{\n x: useTransform(() => (region === \"left\" ? -overflow.get() : 0)),\n }}\n className={styles.iconWrapper}\n >\n <ChevronLeft size={20} className={styles.icon} />\n </motion.div>\n\n <div\n ref={sliderRef}\n className={styles.sliderRoot}\n onPointerMove={handlePointerMove}\n onPointerDown={handlePointerDown}\n onPointerUp={handlePointerUp}\n >\n <motion.div\n style={{\n scaleX: useTransform(() => {\n if (sliderRef.current) {\n const { width } = sliderRef.current.getBoundingClientRect();\n return 1 + overflow.get() / width;\n }\n return 1;\n }),\n scaleY: useTransform(overflow, [0, MAX_OVERFLOW], [1, 0.8]),\n transformOrigin: useTransform(() => {\n if (sliderRef.current) {\n const { left, width } = sliderRef.current.getBoundingClientRect();\n return clientX.get() < left + width / 2 ? \"right\" : \"left\";\n }\n return \"center\";\n }),\n }}\n className={styles.sliderTrackWrapper}\n >\n <div className={styles.sliderTrack}>\n <motion.div\n className={styles.sliderRange}\n initial={false}\n animate={{ width: `${getRangePercentage()}%` }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n />\n </div>\n </motion.div>\n </div>\n\n <motion.div\n animate={{\n scale: region === \"right\" ? [1, 1.4, 1] : 1,\n transition: { duration: 0.25 },\n }}\n style={{\n x: useTransform(() => (region === \"right\" ? overflow.get() : 0)),\n }}\n className={styles.iconWrapper}\n >\n <ChevronRight size={20} className={styles.icon} />\n </motion.div>\n {showValue && !label && <span className={styles.valueIndicator}>{Math.round(value)}</span>}\n </motion.div>\n {error && <p className={styles.errorMessage}>{error}</p>}\n {helperText && !error && <p className={styles.helperText}>{helperText}</p>}\n </div>\n );\n },\n ),\n);\n\nfunction decay(value: number, max: number): number {\n if (max === 0) {\n return 0;\n }\n const entry = value / max;\n const sigmoid = 2 * (1 / (1 + Math.exp(-entry)) - 0.5);\n return sigmoid * max;\n}\n\nSlider.displayName = \"Slider\";\n\nexport default Slider;\n",".loadingContainer {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 60vh;\r\n gap: 1.5rem;\r\n}\r\n\r\n.loadingText {\r\n color: var(--color-fg-muted);\r\n font-size: 1rem;\r\n}\r\n\r\n.errorContainer {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 60vh;\r\n gap: 2rem;\r\n padding: 3rem 2rem;\r\n text-align: center;\r\n color: var(--color-fg-text);\r\n}\r\n\r\n.errorIconWrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 120px;\r\n height: 120px;\r\n border-radius: 50%;\r\n background: linear-gradient(135deg, rgba(var(--color-error-rgb), 0.1), rgba(var(--color-error-rgb), 0.05));\r\n border: 2px solid rgba(var(--color-error-rgb), 0.2);\r\n animation: pulse 2s ease-in-out infinite;\r\n}\r\n\r\n@keyframes pulse {\r\n 0%, 100% {\r\n transform: scale(1);\r\n opacity: 1;\r\n }\r\n 50% {\r\n transform: scale(1.05);\r\n opacity: 0.9;\r\n }\r\n}\r\n\r\n.errorIcon {\r\n color: var(--color-error);\r\n stroke-width: 1.5;\r\n}\r\n\r\n.errorContent {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1rem;\r\n max-width: 600px;\r\n width: 100%;\r\n}\r\n\r\n.errorTitle {\r\n margin: 0;\r\n font-size: 1.75rem;\r\n font-weight: 700;\r\n color: var(--color-fg-heading);\r\n letter-spacing: -0.02em;\r\n line-height: 1.2;\r\n}\r\n\r\n.errorDescription {\r\n margin: 0;\r\n color: var(--color-fg-muted);\r\n font-size: 1rem;\r\n line-height: 1.6;\r\n max-width: 480px;\r\n}\r\n\r\n.errorDetailsWrapper {\r\n width: 100%;\r\n max-width: 600px;\r\n margin-top: 0.5rem;\r\n}\r\n\r\n.errorDetailsContainer {\r\n width: 100%;\r\n text-align: left;\r\n border: 1px solid var(--color-border);\r\n border-radius: var(--radius-card);\r\n background: var(--color-bg-2);\r\n overflow: hidden;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.errorDetailsContainer:hover {\r\n border-color: var(--color-border-hover);\r\n background: var(--color-bg-3);\r\n}\r\n\r\n.errorDetailsSummary {\r\n padding: 0.875rem 1.25rem;\r\n cursor: pointer;\r\n font-size: 0.875rem;\r\n font-weight: 500;\r\n color: var(--color-fg-muted);\r\n user-select: none;\r\n list-style: none;\r\n transition: color 0.2s ease;\r\n}\r\n\r\n.errorDetailsSummary:hover {\r\n color: var(--color-fg-text);\r\n}\r\n\r\n.errorDetailsSummary::-webkit-details-marker {\r\n display: none;\r\n}\r\n\r\n.errorDetailsSummary::before {\r\n content: \"▶\";\r\n display: inline-block;\r\n margin-right: 0.5rem;\r\n font-size: 0.75rem;\r\n transition: transform 0.2s ease;\r\n}\r\n\r\n.errorDetailsContainer[open] .errorDetailsSummary::before {\r\n transform: rotate(90deg);\r\n}\r\n\r\n.errorDetails {\r\n max-width: 100%;\r\n padding: 1rem 1.25rem;\r\n margin: 0;\r\n background: var(--color-bg-3);\r\n border-top: 1px solid var(--color-border);\r\n color: var(--color-fg-muted);\r\n font-size: 0.8125rem;\r\n font-family: \"Monaco\", \"Menlo\", \"Ubuntu Mono\", \"Consolas\", \"source-code-pro\", monospace;\r\n line-height: 1.6;\r\n overflow-x: auto;\r\n white-space: pre-wrap;\r\n word-break: break-word;\r\n}\r\n\r\n.errorActions {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.75rem;\r\n margin-top: 1rem;\r\n}\r\n\r\n.retryButton {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.5rem;\r\n padding: 0.75rem 2rem;\r\n border-radius: var(--radius-button);\r\n background: var(--color-primary);\r\n color: var(--color-primary-fg);\r\n border: none;\r\n cursor: pointer;\r\n font-size: 0.9375rem;\r\n font-weight: 500;\r\n transition: all 0.2s ease;\r\n box-shadow: 0 2px 8px var(--color-shadow);\r\n}\r\n\r\n.retryButton:hover {\r\n transform: translateY(-2px);\r\n box-shadow: 0 4px 16px var(--color-shadow);\r\n background: var(--color-primary-light);\r\n color: var(--color-primary-fg);\r\n}\r\n\r\n.retryButton:active {\r\n transform: translateY(0);\r\n box-shadow: 0 2px 8px var(--color-shadow);\r\n}\r\n\r\n.retryButtonIcon {\r\n display: inline-block;\r\n font-size: 1.125rem;\r\n line-height: 1;\r\n transition: transform 0.3s ease;\r\n}\r\n\r\n.retryButton:hover .retryButtonIcon {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.clearLocalDataButton {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0.75rem 1.5rem;\r\n border-radius: var(--radius-button);\r\n background: transparent;\r\n color: var(--color-fg-muted);\r\n border: 1px solid var(--color-border-4);\r\n cursor: pointer;\r\n font-size: 0.9375rem;\r\n font-weight: 500;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.clearLocalDataButton:hover {\r\n color: var(--color-fg-text);\r\n border-color: var(--color-border-3);\r\n background: var(--color-bg-secondary);\r\n}","import type { ReactNode } from \"react\";\n\nimport { Component } from \"react\";\n\ninterface SuspenseErrorBoundaryProps {\n children: ReactNode;\n fallbackRender: (args: { error: Error | null; retry: () => void }) => ReactNode;\n onReset?: () => void;\n}\n\ninterface SuspenseErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\nclass SuspenseErrorBoundary extends Component<SuspenseErrorBoundaryProps, SuspenseErrorBoundaryState> {\n state: SuspenseErrorBoundaryState = {\n hasError: false,\n error: null,\n };\n\n static getDerivedStateFromError(error: Error): SuspenseErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error) {\n if (import.meta.env.DEV) {\n console.error(\"SuspenseErrorBoundary captured error:\", error);\n }\n }\n\n private handleReset = () => {\n this.setState({ hasError: false, error: null }, () => {\n this.props.onReset?.();\n });\n };\n\n render() {\n if (this.state.hasError) {\n return this.props.fallbackRender({ error: this.state.error, retry: this.handleReset });\n }\n\n return this.props.children;\n }\n}\n\nexport default SuspenseErrorBoundary;\n","/**\n * 统一 Suspense 包装:QueryErrorResetBoundary + 自定义 Loading/Error 样式,支持 loadingType、errorFallback。Suspense wrapper with QueryErrorResetBoundary, custom loading/error UI.\n *\n * @example\n * ```tsx\n * * 包裹懒加载内容\n * <Suspense fallback={null}>\n * <LazyPage />\n * </Suspense>\n * * 自定义 loading 类型\n * <Suspense loadingType=\"bounce\" loadingShape=\"circle\">...</Suspense>\n * ```\n */\nimport type { QueryErrorResetBoundaryProps } from \"@tanstack/react-query\";\nimport type { ReactNode, SuspenseProps as ReactSuspenseProps } from \"react\";\n\nimport { memo, Suspense as ReactSuspense } from \"react\";\nimport { QueryErrorResetBoundary } from \"@tanstack/react-query\";\n\nimport BounceLoading from \"@/designs/animations/BounceLoading\";\nimport ECGLoading from \"@/designs/animations/ECGLoading\";\nimport TruckLoading from \"@/designs/animations/TruckLoading\";\nimport { AlertCircle } from \"@/icons/lucide\";\n\nimport styles from \"./styles.module.css\";\nimport SuspenseErrorBoundary from \"./SuspenseErrorBoundary\";\n\ninterface LoadingFallbackProps {\n /** 自定义 fallback 节点。Custom fallback node. */\n fallback?: ReactNode;\n /** 加载动画类型。Loading animation type. */\n loadingType?: \"ecg\" | \"truck\" | \"bounce\";\n /** 加载图形形状。Loading shape. */\n loadingShape?: \"square\" | \"circle\";\n /** 加载中文案。Loading text. */\n loadingText?: ReactNode;\n /** 加载图尺寸。Loading size. */\n loadingSize?: \"small\" | \"medium\" | \"large\";\n /** 容器 className。Container className. */\n loadingContainerClassName?: string;\n /** 文案 className。Text className. */\n loadingTextClassName?: string;\n /** 加载图 className。Loading className. */\n loadingClassName?: string;\n}\n\ninterface ErrorFallbackProps {\n /** 错误对象。Error object. */\n error: Error | null;\n /** 重试函数。Retry function. */\n retry: () => void;\n /** 自定义错误 UI。Custom error UI. */\n errorFallback?: (args: { error: Error | null; retry: () => void }) => ReactNode;\n /** 错误标题。Error title. */\n errorTitle?: ReactNode;\n /** 错误描述。Error description. */\n errorDescription?: ReactNode;\n /** 重试按钮文案。Retry button text. */\n retryText?: ReactNode;\n /** 详情折叠文案。Error details summary text. */\n errorDetailsText?: ReactNode;\n /** 清除本地数据按钮文案。Clear local data button text. */\n clearLocalDataText?: ReactNode;\n /** 点击「清除本地数据」后执行(如跳转登录页),由调用方传入。Called after clear local data (e.g. navigate to login); pass from caller. */\n onClearLocalData?: () => void;\n /** 错误容器 className。Error container className. */\n errorContainerClassName?: string;\n /** 错误详情 className。Error details className. */\n errorDetailsClassName?: string;\n /** 是否展示错误详情。Show error details. */\n showErrorDetails?: boolean;\n}\n\nexport interface SuspenseProps extends Omit<ReactSuspenseProps, \"fallback\">, Omit<QueryErrorResetBoundaryProps, \"children\"> {\n /** 自定义 fallback。Custom fallback. */\n fallback?: ReactNode;\n /** 测试用:始终挂起。Test: always suspend. */\n test?: boolean;\n /** 加载动画类型。Loading type. */\n loadingType?: \"ecg\" | \"truck\" | \"bounce\";\n /** 加载图形形状。Loading shape. */\n loadingShape?: \"square\" | \"circle\";\n /** 加载中文案,由调用方传入。Loading text; pass from caller (e.g. i18n). */\n loadingText?: ReactNode;\n /** 加载图尺寸。Loading size. */\n loadingSize?: \"small\" | \"medium\" | \"large\";\n /** 加载容器 className。Loading container className. */\n loadingContainerClassName?: string;\n /** 加载文案 className。Loading text className. */\n loadingTextClassName?: string;\n /** 加载图 className。Loading className. */\n loadingClassName?: string;\n /** 自定义错误 UI。Custom error fallback. */\n errorFallback?: (args: { error: Error | null; retry: () => void }) => ReactNode;\n /** 错误标题,由调用方传入。Error title; pass from caller. */\n errorTitle?: ReactNode;\n /** 错误描述,由调用方传入。Error description; pass from caller. */\n errorDescription?: ReactNode;\n /** 重试按钮文案,由调用方传入。Retry text; pass from caller. */\n retryText?: ReactNode;\n /** 错误详情折叠文案。Error details text. */\n errorDetailsText?: ReactNode;\n /** 清除本地数据按钮文案。Clear local data text. */\n clearLocalDataText?: ReactNode;\n /** 点击「清除本地数据」后执行(如跳转登录页),由调用方传入。Called after clear local data (e.g. navigate to login); pass from caller. */\n onClearLocalData?: () => void;\n /** 错误容器 className。Error container className. */\n errorContainerClassName?: string;\n /** 错误详情 className。Error details className. */\n errorDetailsClassName?: string;\n /** 是否展示错误详情。Show error details. */\n showErrorDetails?: boolean;\n}\n\nconst LoadingFallback = memo(\n ({\n fallback,\n loadingType = \"ecg\",\n loadingShape = \"square\",\n loadingText = \"Loading...\",\n loadingSize = \"medium\",\n loadingContainerClassName,\n loadingTextClassName,\n loadingClassName,\n }: LoadingFallbackProps) => {\n if (fallback) {\n return <>{fallback}</>;\n }\n\n const renderLoading = () => {\n switch (loadingType) {\n case \"ecg\":\n return <ECGLoading size={loadingSize} className={loadingClassName} />;\n case \"truck\":\n return <TruckLoading size={loadingSize} className={loadingClassName} />;\n case \"bounce\":\n return <BounceLoading size={loadingSize} shape={loadingShape} className={loadingClassName} />;\n default:\n return <ECGLoading size={loadingSize} className={loadingClassName} />;\n }\n };\n\n return (\n <div className={`${styles.loadingContainer} ${loadingContainerClassName || \"\"}`}>\n {renderLoading()}\n <p className={`${styles.loadingText} ${loadingTextClassName || \"\"}`}>{loadingText}</p>\n </div>\n );\n },\n);\n\nLoadingFallback.displayName = \"LoadingFallback\";\n\nconst ErrorFallback = memo(\n ({\n error,\n retry,\n errorFallback,\n errorTitle = \"Error\",\n errorDescription = \"Something went wrong. Please try again.\",\n retryText = \"Retry\",\n errorDetailsText = \"Details\",\n clearLocalDataText = \"Clear local data\",\n onClearLocalData,\n errorContainerClassName,\n errorDetailsClassName,\n showErrorDetails = import.meta.env.DEV,\n }: ErrorFallbackProps) => {\n const handleClearLocalData = () => {\n try {\n sessionStorage.clear();\n } catch {\n // ignore\n } finally {\n onClearLocalData?.();\n }\n };\n\n if (errorFallback) {\n return <>{errorFallback({ error, retry })}</>;\n }\n\n return (\n <div className={`${styles.errorContainer} ${errorContainerClassName || \"\"}`}>\n <div className={styles.errorIconWrapper}>\n <AlertCircle className={styles.errorIcon} size={64} />\n </div>\n <div className={styles.errorContent}>\n <h3 className={styles.errorTitle}>{errorTitle}</h3>\n <p className={styles.errorDescription}>{errorDescription}</p>\n {showErrorDetails && error && (\n <div className={styles.errorDetailsWrapper}>\n <details className={styles.errorDetailsContainer}>\n <summary className={styles.errorDetailsSummary}>{errorDetailsText}</summary>\n <pre className={`${styles.errorDetails} ${errorDetailsClassName || \"\"}`}>{error.message}</pre>\n </details>\n </div>\n )}\n <div className={styles.errorActions}>\n <button type=\"button\" className={styles.retryButton} onClick={retry}>\n <span className={styles.retryButtonIcon}>↻</span>\n <span>{retryText}</span>\n </button>\n <button type=\"button\" className={styles.clearLocalDataButton} onClick={handleClearLocalData}>\n <span>{clearLocalDataText}</span>\n </button>\n </div>\n </div>\n </div>\n );\n },\n);\n\nErrorFallback.displayName = \"ErrorFallback\";\n\nconst Suspense = memo(\n ({\n fallback,\n test,\n loadingType = \"ecg\",\n loadingShape = \"square\",\n loadingClassName,\n loadingText,\n loadingSize = \"medium\",\n loadingContainerClassName,\n loadingTextClassName,\n children,\n errorFallback,\n errorTitle,\n errorDescription,\n retryText,\n errorDetailsText,\n clearLocalDataText,\n onClearLocalData,\n errorContainerClassName,\n errorDetailsClassName,\n showErrorDetails = import.meta.env.DEV,\n ...restProps\n }: SuspenseProps) => {\n return (\n <QueryErrorResetBoundary {...restProps}>\n {({ reset }) => (\n <SuspenseErrorBoundary\n onReset={reset}\n fallbackRender={({ error, retry }) => (\n <ErrorFallback\n error={error}\n retry={retry}\n errorFallback={errorFallback}\n errorTitle={errorTitle}\n errorDescription={errorDescription}\n retryText={retryText}\n errorDetailsText={errorDetailsText}\n clearLocalDataText={clearLocalDataText}\n onClearLocalData={onClearLocalData}\n errorContainerClassName={errorContainerClassName}\n errorDetailsClassName={errorDetailsClassName}\n showErrorDetails={showErrorDetails}\n />\n )}\n >\n <ReactSuspense\n fallback={\n <LoadingFallback\n fallback={fallback}\n loadingType={loadingType}\n loadingShape={loadingShape}\n loadingText={loadingText}\n loadingSize={loadingSize}\n loadingContainerClassName={loadingContainerClassName}\n loadingTextClassName={loadingTextClassName}\n loadingClassName={loadingClassName}\n />\n }\n {...restProps}\n >\n {test ? <AlwaysPending /> : children}\n </ReactSuspense>\n </SuspenseErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n );\n },\n);\n\nSuspense.displayName = \"Suspense\";\nexport default Suspense;\n\nconst AlwaysPending = () => {\n throw new Promise(() => {}); // 永不 resolve 的 Promise\n};\n",".wrapper {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.wrapper.fullWidth {\n width: 100%;\n}\n\n.label {\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--color-fg-heading);\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.required {\n color: var(--color-danger);\n}\n\n.inputContainer {\n position: relative;\n display: flex;\n align-items: flex-start;\n width: 100%;\n}\n\n.textarea {\n width: 100%;\n border: 1px solid var(--color-border-4);\n border-radius: var(--radius-input);\n background: var(--color-bg);\n color: var(--color-fg-text);\n font-size: 0.875rem;\n font-family: inherit;\n transition: all 0.2s ease;\n outline: none;\n resize: vertical;\n min-height: 4rem;\n}\n\n.textarea:focus {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.1);\n}\n\n.textarea::placeholder {\n color: var(--color-fg-muted);\n opacity: 0.5;\n}\n\n/* Size variants */\n.textarea.small {\n padding: 0.5rem 0.75rem;\n font-size: 0.8125rem;\n min-height: 3rem;\n}\n\n.textarea.medium {\n padding: 0.75rem;\n font-size: 0.875rem;\n min-height: 4rem;\n}\n\n.textarea.large {\n padding: 1rem;\n font-size: 1rem;\n min-height: 5rem;\n}\n\n/* Variant styles */\n.textarea.default {\n background: var(--color-bg);\n border-color: var(--color-border-4);\n}\n\n.textarea.filled {\n background: var(--color-bg-2);\n border-color: var(--color-border-3);\n}\n\n/* With icons */\n.inputContainer .leftIcon {\n position: absolute;\n left: 0.75rem;\n top: 0.75rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color-fg-muted);\n pointer-events: none;\n z-index: 1;\n}\n\n.inputContainer .rightIcon {\n position: absolute;\n right: 0.75rem;\n top: 0.75rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--color-fg-muted);\n pointer-events: none;\n z-index: 1;\n}\n\n.inputContainer .textarea.small + .leftIcon,\n.inputContainer .textarea.small + .rightIcon {\n top: 0.5rem;\n}\n\n.inputContainer .textarea.large + .leftIcon,\n.inputContainer .textarea.large + .rightIcon {\n top: 1rem;\n}\n\n/* Error state */\n.textarea.error {\n border-color: var(--color-danger);\n}\n\n.textarea.error:focus {\n border-color: var(--color-danger);\n box-shadow: 0 0 0 3px rgba(var(--color-danger-rgb), 0.1);\n}\n\n/* Disabled state */\n.textarea.disabled {\n background: var(--color-bg-3);\n border-color: var(--color-border-5);\n color: var(--color-fg-muted);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.errorText {\n font-size: 0.75rem;\n color: var(--color-danger);\n margin: 0;\n}\n\n.helperText {\n font-size: 0.75rem;\n color: var(--color-fg-muted);\n margin: 0;\n}\n","/**\n * 多行文本框:支持 label、error、helperText、左右图标与 size/variant。Textarea with label, error, helperText, left/right icon.\n *\n * @example\n * ```tsx\n * * 基础用法\n * <Textarea label=\"备注\" value={note} onChange={(e) => setNote(e.target.value)} rows={4} />\n * * 错误态\n * <Textarea error={errors.note} helperText=\"选填\" />\n * ```\n */\nimport type { ReactNode, TextareaHTMLAttributes } from \"react\";\n\nimport { forwardRef } from \"react\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, \"size\"> {\n /** 标签文案。Label text. */\n label?: ReactNode;\n /** 错误信息。Error message. */\n error?: ReactNode;\n /** 辅助说明。Helper text. */\n helperText?: ReactNode;\n /** 左侧图标。Left icon. */\n leftIcon?: ReactNode;\n /** 右侧图标。Right icon. */\n rightIcon?: ReactNode;\n /** 尺寸。Size. */\n size?: \"small\" | \"medium\" | \"large\";\n /** 视觉变体。Variant. */\n variant?: \"default\" | \"filled\";\n /** 是否占满宽度。Full width. */\n fullWidth?: boolean;\n}\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ label, error, helperText, leftIcon, rightIcon, size = \"medium\", variant = \"default\", fullWidth = false, className = \"\", disabled, ...props }, ref) => {\n const textareaClasses = [styles.textarea, styles[size], styles[variant], error && styles.error, disabled && styles.disabled, className]\n .filter(Boolean)\n .join(\" \");\n\n const wrapperClasses = [styles.wrapper, fullWidth && styles.fullWidth].filter(Boolean).join(\" \");\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label className={styles.label}>\n {label}\n {props.required && <span className={styles.required}>*</span>}\n </label>\n )}\n <div className={styles.inputContainer}>\n {leftIcon && <div className={styles.leftIcon}>{leftIcon}</div>}\n <textarea ref={ref} className={textareaClasses} disabled={disabled} {...props} />\n {rightIcon && <div className={styles.rightIcon}>{rightIcon}</div>}\n </div>\n {error && <span className={styles.errorText}>{error}</span>}\n {helperText && !error && <span className={styles.helperText}>{helperText}</span>}\n </div>\n );\n },\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport default Textarea;\n","function createLazyMeasurementsView(count, flat, getItemKey) {\n const cache = new Array(count);\n return new Proxy(cache, {\n get(target, prop, receiver) {\n if (typeof prop === \"string\") {\n const c = prop.charCodeAt(0);\n if (c >= 48 && c <= 57) {\n const i = +prop;\n if (Number.isInteger(i) && i >= 0 && i < count) {\n let v = target[i];\n if (!v) {\n const s = flat[i * 2];\n v = target[i] = {\n index: i,\n key: getItemKey(i),\n start: s,\n size: flat[i * 2 + 1],\n end: s + flat[i * 2 + 1],\n lane: 0\n };\n }\n return v;\n }\n }\n if (prop === \"length\") return count;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nexport {\n createLazyMeasurementsView\n};\n//# sourceMappingURL=lazy-measurements.js.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a;\n const debugEnabled = process.env.NODE_ENV !== \"production\" && !!opts.key && !!((_a = opts.debug) == null ? void 0 : _a.call(opts));\n let depTime = 0;\n if (debugEnabled) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime = 0;\n if (debugEnabled) resultTime = Date.now();\n result = fn(...newDeps);\n if (debugEnabled) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { createLazyMeasurementsView } from \"./lazy-measurements.js\";\nimport { memo, notUndefined, approxEqual, debounce } from \"./utils.js\";\nlet _isIOSResult;\nconst isIOSWebKit = () => {\n if (_isIOSResult !== void 0) return _isIOSResult;\n if (typeof navigator === \"undefined\") return _isIOSResult = false;\n if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;\n const mtp = navigator.maxTouchPoints;\n return _isIOSResult = navigator.platform === \"MacIntel\" && mtp !== void 0 && mtp > 0;\n};\nconst _resetIOSDetectionForTests = () => {\n _isIOSResult = void 0;\n};\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const len = end - start + 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = start + i;\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeOffset = (instance, cb, readOffset) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n let offset = 0;\n const fallback = registerScrollendEvent ? null : debounce(\n targetWindow,\n () => cb(offset, false),\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = readOffset(element);\n fallback == null ? void 0 : fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeElementOffset = (instance, cb) => observeOffset(instance, cb, (el) => {\n const { horizontal, isRtl } = instance.options;\n return horizontal ? el.scrollLeft * (isRtl && -1 || 1) : el.scrollTop;\n});\nconst observeWindowOffset = (instance, cb) => observeOffset(\n instance,\n cb,\n (win) => instance.options.horizontal ? win.scrollX : win.scrollY\n);\nconst measureElement = (element, entry, instance) => {\n if (instance.options.useCachedMeasurements) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n return instance.itemSizeCache.get(key) ?? instance.options.estimateSize(index);\n }\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n if (!entry) {\n const index = instance.indexFromElement(element);\n const key = instance.options.getItemKey(index);\n const cachedSize = instance.itemSizeCache.get(key);\n if (cachedSize !== void 0) {\n return cachedSize;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst scrollWithAdjustments = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: offset + adjustments,\n behavior\n });\n};\nconst windowScroll = scrollWithAdjustments;\nconst elementScroll = scrollWithAdjustments;\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollState = null;\n this.measurementsCache = [];\n this._flatMeasurements = null;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.itemSizeCacheVersion = 0;\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMin = null;\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.pendingScrollAnchor = null;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this._iosDeferredAdjustment = 0;\n this._iosTouching = false;\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._intendedScrollOffset = null;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.now = () => {\n var _a, _b, _c;\n return ((_c = (_b = (_a = this.targetWindow) == null ? void 0 : _a.performance) == null ? void 0 : _b.now) == null ? void 0 : _c.call(_b)) ?? Date.now();\n };\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n const node = entry.target;\n const index = this.indexFromElement(node);\n if (!node.isConnected) {\n this.observer.unobserve(node);\n for (const [cacheKey, cachedNode] of this.elementsCache) {\n if (cachedNode === node) {\n this.elementsCache.delete(cacheKey);\n break;\n }\n }\n return;\n }\n if (this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(\n index,\n this.options.measureElement(node, entry, this)\n );\n }\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n var _a, _b;\n const merged = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n anchorTo: \"start\",\n followOnAppend: false,\n scrollEndThreshold: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n laneAssignmentMode: \"estimate\",\n useCachedMeasurements: false\n };\n for (const key in opts2) {\n const v = opts2[key];\n if (v !== void 0) merged[key] = v;\n }\n const prevOptions = this.options;\n let anchor = null;\n let followOnAppend = null;\n let edgeKeysChanged = false;\n if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === \"end\" && this.scrollElement !== null) {\n const prevCount = prevOptions.count;\n const nextCount = merged.count;\n const measurements = this.getMeasurements();\n const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;\n const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;\n const didCountChange = nextCount !== prevCount;\n const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);\n if (didEdgeKeysChange) {\n edgeKeysChanged = true;\n const item = prevCount > 0 ? this.getVirtualItemForOffset(this.getScrollOffset()) ?? measurements[0] : null;\n if (item) {\n anchor = [item.key, this.getScrollOffset() - item.start];\n }\n const behavior = merged.followOnAppend === true ? \"auto\" : merged.followOnAppend || null;\n if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {\n followOnAppend = behavior;\n }\n }\n }\n this.options = merged;\n if (edgeKeysChanged) {\n this.pendingMin = 0;\n this.itemSizeCacheVersion++;\n }\n let anchorResolved = false;\n let anchorDelta = 0;\n if (anchor && this.scrollOffset !== null) {\n const [anchorKey, anchorOffset] = anchor;\n const newMeasurements = this.getMeasurements();\n const { count, getItemKey } = this.options;\n let idx = 0;\n while (idx < count && getItemKey(idx) !== anchorKey) {\n idx++;\n }\n if (idx < count) {\n const anchorItem = newMeasurements[idx];\n if (anchorItem) {\n const newOffset = anchorItem.start + anchorOffset;\n if (newOffset !== this.scrollOffset) {\n anchorDelta = newOffset - this.scrollOffset;\n this.scrollOffset = newOffset;\n anchorResolved = true;\n }\n }\n }\n }\n if (anchorResolved || followOnAppend) {\n this.pendingScrollAnchor = [\n anchorResolved ? anchor[0] : null,\n anchorResolved ? anchor[1] : 0,\n followOnAppend,\n anchorDelta\n ];\n }\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n if (this.rafId != null && this.targetWindow) {\n this.targetWindow.cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.scrollState = null;\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {\n offset = this._intendedScrollOffset;\n }\n this._intendedScrollOffset = null;\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this._flushIosDeferredIfReady();\n if (this.scrollState) {\n this.scheduleScrollReconcile();\n }\n this.maybeNotify();\n })\n );\n if (\"addEventListener\" in this.scrollElement) {\n const scrollEl = this.scrollElement;\n const onTouchStart = () => {\n this._iosTouching = true;\n this._iosJustTouchEnded = false;\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n };\n const onTouchEnd = () => {\n this._iosTouching = false;\n if (!isIOSWebKit() || this.targetWindow == null) {\n return;\n }\n this._iosJustTouchEnded = true;\n this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {\n this._iosJustTouchEnded = false;\n this._iosTouchEndTimerId = null;\n this._flushIosDeferredIfReady();\n }, 150);\n };\n scrollEl.addEventListener(\n \"touchstart\",\n onTouchStart,\n addEventListenerOptions\n );\n scrollEl.addEventListener(\n \"touchend\",\n onTouchEnd,\n addEventListenerOptions\n );\n this.unsubs.push(() => {\n scrollEl.removeEventListener(\"touchstart\", onTouchStart);\n scrollEl.removeEventListener(\"touchend\", onTouchEnd);\n if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {\n this.targetWindow.clearTimeout(this._iosTouchEndTimerId);\n this._iosTouchEndTimerId = null;\n }\n });\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n const anchor = this.pendingScrollAnchor;\n this.pendingScrollAnchor = null;\n if (anchor && this.scrollElement && this.options.enabled) {\n const [key, _offset, followOnAppend, anchorDelta] = anchor;\n if (key !== null && !followOnAppend) {\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n if (anchorDelta !== 0) {\n this._iosDeferredAdjustment += anchorDelta;\n }\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n }\n if (followOnAppend) {\n this.scrollToEnd({ behavior: followOnAppend });\n }\n }\n };\n this._flushIosDeferredIfReady = () => {\n if (this._iosDeferredAdjustment === 0) return;\n if (this.isScrolling) return;\n if (this._iosTouching) return;\n if (this._iosJustTouchEnded) return;\n const cur = this.getScrollOffset();\n const max = this.getMaxScrollOffset();\n if (cur < 0 || cur > max) return;\n const delta = this._iosDeferredAdjustment;\n this._iosDeferredAdjustment = 0;\n this._scrollToOffset(cur, {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n };\n this.rafId = null;\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes,\n this.options.laneAssignmentMode\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMin = null;\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCacheVersion],\n ({\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes,\n laneAssignmentMode\n }, _itemSizeCacheVersion) => {\n const itemSizeCache = this.itemSizeCache;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMin = null;\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMin ?? 0;\n this.pendingMin = null;\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n if (lanes === 1) {\n const gap = this.options.gap;\n const need = count * 2;\n let flat = this._flatMeasurements;\n if (!flat || flat.length < need) {\n const next = new Float64Array(need);\n if (flat && min > 0) next.set(flat.subarray(0, min * 2));\n flat = next;\n this._flatMeasurements = flat;\n }\n let runningStart;\n if (min === 0) {\n runningStart = paddingStart + scrollMargin;\n } else {\n const prevIdx = min - 1;\n runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n flat[i * 2] = runningStart;\n flat[i * 2 + 1] = size;\n runningStart += size + gap;\n }\n const view = createLazyMeasurementsView(count, flat, getItemKey);\n this.measurementsCache = view;\n return view;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n const shouldCacheLane = laneAssignmentMode === \"estimate\" || itemSizeCache.has(key);\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1 && shouldCacheLane) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n // Pass the typed array so binary search + forward-walk can\n // read start/end directly from Float64Array, skipping the\n // Proxy traps that materialize a full VirtualItem per probe.\n flat: lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this.shouldMeasureDuringScroll = (index) => {\n var _a;\n if (!this.scrollState || this.scrollState.behavior !== \"smooth\") {\n return true;\n }\n const scrollIndex = this.scrollState.index ?? ((_a = this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)) == null ? void 0 : _a.index);\n if (scrollIndex !== void 0 && this.range) {\n const bufferSize = Math.max(\n this.options.overscan,\n Math.ceil((this.range.endIndex - this.range.startIndex) / 2)\n );\n const minIndex = Math.max(0, scrollIndex - bufferSize);\n const maxIndex = Math.min(\n this.options.count - 1,\n scrollIndex + bufferSize\n );\n return index >= minIndex && index <= maxIndex;\n }\n return true;\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key2) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key2);\n }\n });\n return;\n }\n const index = this.indexFromElement(node);\n const key = this.options.getItemKey(index);\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if ((!this.isScrolling || this.scrollState) && this.shouldMeasureDuringScroll(index)) {\n this.resizeItem(index, this.options.measureElement(node, void 0, this));\n }\n };\n this.resizeItem = (index, size) => {\n var _a, _b;\n if (index < 0 || index >= this.options.count) return;\n let cachedSize;\n let itemStart;\n let key;\n const flat = this._flatMeasurements;\n if (this.options.lanes === 1 && flat !== null) {\n key = this.options.getItemKey(index);\n itemStart = flat[index * 2];\n cachedSize = flat[index * 2 + 1];\n } else {\n const item = this.measurementsCache[index];\n if (!item) return;\n key = item.key;\n itemStart = item.start;\n cachedSize = item.size;\n }\n const itemSize = this.itemSizeCache.get(key) ?? cachedSize;\n const delta = size - itemSize;\n if (delta !== 0) {\n const wasAtEnd = this.options.anchorTo === \"end\" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== \"smooth\" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;\n const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;\n const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== \"smooth\" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(\n // The callback expects a VirtualItem; build one lazily only\n // when the consumer actually supplied a custom predicate.\n this.measurementsCache[index] ?? {\n index,\n key,\n start: itemStart,\n size: cachedSize,\n end: itemStart + cachedSize,\n lane: 0\n },\n delta,\n this\n ) : (\n // Default: adjust scrollTop only when the resize is an above-\n // viewport item AND we're not actively scrolling backward.\n // Adjusting during backward scroll fights the user's scroll\n // direction and produces the \"items jump while scrolling up\"\n // jank reported across many issues. Users who want the old\n // behavior can pass shouldAdjustScrollPositionOnItemSizeChange.\n itemStart < this.getScrollOffset() + this.scrollAdjustments && this.scrollDirection !== \"backward\"\n ));\n if (this.pendingMin === null || index < this.pendingMin) {\n this.pendingMin = index;\n }\n this.itemSizeCache.set(key, size);\n this.itemSizeCacheVersion++;\n if (wasAtEnd) {\n this.applyScrollAdjustment(this.getTotalSize() - prevTotalSize);\n } else if (shouldAdjustScroll) {\n this.applyScrollAdjustment(delta);\n }\n this.notify(false);\n }\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n const flat = this._flatMeasurements;\n const useFlat = this.options.lanes === 1 && flat != null;\n const idx = findNearestBinarySearch(\n 0,\n measurements.length - 1,\n useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,\n offset\n );\n return notUndefined(measurements[idx]);\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getVirtualDistanceFromEnd = () => {\n return Math.max(\n this.getTotalSize() - this.getSize() - this.getScrollOffset(),\n 0\n );\n };\n this.getDistanceFromEnd = () => {\n return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);\n };\n this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {\n return this.getDistanceFromEnd() <= threshold;\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n const item = this.measurementsCache[index];\n if (!item) return;\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior = \"auto\" } = {}) => {\n const offset = this.getOffsetForAlignment(toOffset, align);\n const now = this.now();\n this.scrollState = {\n index: null,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToIndex = (index, {\n align: initialAlign = \"auto\",\n behavior = \"auto\"\n } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const offsetInfo = this.getOffsetForIndex(index, initialAlign);\n if (!offsetInfo) {\n return;\n }\n const [offset, align] = offsetInfo;\n const now = this.now();\n this.scrollState = {\n index,\n align,\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollBy = (delta, { behavior = \"auto\" } = {}) => {\n const offset = this.getScrollOffset() + delta;\n const now = this.now();\n this.scrollState = {\n index: null,\n align: \"start\",\n behavior,\n startedAt: now,\n lastTargetOffset: offset,\n stableFrames: 0\n };\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.scheduleScrollReconcile();\n };\n this.scrollToEnd = ({ behavior = \"auto\" } = {}) => {\n if (this.options.count > 0) {\n this.scrollToIndex(this.options.count - 1, {\n align: \"end\",\n behavior\n });\n return;\n }\n this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n const lastIdx = measurements.length - 1;\n const flat = this._flatMeasurements;\n if (flat != null) {\n end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];\n } else {\n end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;\n }\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this.takeSnapshot = () => {\n const snapshot = [];\n if (this.itemSizeCache.size === 0) return snapshot;\n const m = this.getMeasurements();\n for (const item of m) {\n if (item && this.itemSizeCache.has(item.key)) {\n snapshot.push({\n index: item.index,\n key: item.key,\n start: item.start,\n size: item.size,\n end: item.end,\n lane: item.lane\n });\n }\n }\n return snapshot;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this._intendedScrollOffset = offset + (adjustments ?? 0);\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.pendingMin = null;\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.itemSizeCacheVersion++;\n this.notify(false);\n };\n this.setOptions(opts);\n }\n applyScrollAdjustment(delta, behavior) {\n if (delta === 0) return;\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {\n this._iosDeferredAdjustment += delta;\n } else {\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior\n });\n }\n }\n scheduleScrollReconcile() {\n if (!this.targetWindow) {\n this.scrollState = null;\n return;\n }\n if (this.rafId != null) return;\n this.rafId = this.targetWindow.requestAnimationFrame(() => {\n this.rafId = null;\n this.reconcileScroll();\n });\n }\n reconcileScroll() {\n if (!this.scrollState) return;\n const el = this.scrollElement;\n if (!el) return;\n const MAX_RECONCILE_MS = 5e3;\n if (this.now() - this.scrollState.startedAt > MAX_RECONCILE_MS) {\n this.scrollState = null;\n return;\n }\n const offsetInfo = this.scrollState.index != null ? this.getOffsetForIndex(this.scrollState.index, this.scrollState.align) : void 0;\n const targetOffset = offsetInfo ? offsetInfo[0] : this.scrollState.lastTargetOffset;\n const STABLE_FRAMES = 1;\n const targetChanged = targetOffset !== this.scrollState.lastTargetOffset;\n if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {\n this.scrollState.stableFrames++;\n if (this.scrollState.stableFrames >= STABLE_FRAMES) {\n if (this.getScrollOffset() !== targetOffset) {\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: \"auto\"\n });\n }\n this.scrollState = null;\n return;\n }\n } else {\n this.scrollState.stableFrames = 0;\n if (targetChanged) {\n const viewport = this.getSize() || 600;\n const distance = Math.abs(targetOffset - this.getScrollOffset());\n const keepSmooth = this.scrollState.behavior === \"smooth\" && distance > viewport;\n this.scrollState.lastTargetOffset = targetOffset;\n if (!keepSmooth) {\n this.scrollState.behavior = \"auto\";\n }\n this._scrollToOffset(targetOffset, {\n adjustments: void 0,\n behavior: keepSmooth ? \"smooth\" : \"auto\"\n });\n }\n }\n this.scheduleScrollReconcile();\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes,\n flat\n}) {\n const lastIndex = measurements.length - 1;\n const getStart = flat ? (index) => flat[index * 2] : (index) => measurements[index].start;\n const getEnd = flat ? (index) => flat[index * 2] + flat[index * 2 + 1] : (index) => measurements[index].end;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && getEnd(endIndex) < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n _resetIOSDetectionForTests,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n directDomUpdates = false,\n directDomUpdatesMode = \"transform\",\n ...options\n}) {\n const rerender = React.useReducer((x) => x + 1, 0)[1];\n const directRef = React.useRef({\n enabled: directDomUpdates,\n mode: directDomUpdatesMode,\n container: null,\n lastSize: null,\n // Keyed by the element itself so a remounted node (same key, new DOM\n // node — e.g. when `enabled` is toggled off then on) is treated as fresh\n // and gets its style written.\n lastPositions: /* @__PURE__ */ new WeakMap(),\n prevRange: null\n });\n directRef.current.enabled = directDomUpdates;\n directRef.current.mode = directDomUpdatesMode;\n const applyDirectStyles = (instance2) => {\n const state = directRef.current;\n if (!state.enabled) return;\n const totalSize = instance2.getTotalSize();\n if (state.container && totalSize !== state.lastSize) {\n state.lastSize = totalSize;\n const sizeAxis = instance2.options.horizontal ? \"width\" : \"height\";\n state.container.style[sizeAxis] = `${totalSize}px`;\n }\n const horizontal = !!instance2.options.horizontal;\n const useTransform = state.mode === \"transform\";\n const posAxis = horizontal ? \"left\" : \"top\";\n const scrollMargin = instance2.options.scrollMargin;\n const items = instance2.getVirtualItems();\n for (const item of items) {\n const next = item.start - scrollMargin;\n const el = instance2.elementsCache.get(item.key);\n if (!el) continue;\n if (state.lastPositions.get(el) === next) continue;\n state.lastPositions.set(el, next);\n if (useTransform) {\n el.style.transform = horizontal ? `translate3d(${next}px, 0, 0)` : `translate3d(0, ${next}px, 0)`;\n } else {\n el.style[posAxis] = `${next}px`;\n }\n }\n };\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n const state = directRef.current;\n let shouldRerender = true;\n if (state.enabled) {\n applyDirectStyles(instance2);\n const range = instance2.range;\n const prev = state.prevRange;\n shouldRerender = !prev || prev.isScrolling !== instance2.isScrolling || prev.startIndex !== (range == null ? void 0 : range.startIndex) || prev.endIndex !== (range == null ? void 0 : range.endIndex);\n if (shouldRerender) {\n state.prevRange = range ? {\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n isScrolling: instance2.isScrolling\n } : null;\n }\n }\n if (shouldRerender) {\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(() => {\n const v = new Virtualizer(resolvedOptions);\n return Object.assign(v, {\n containerRef: (node) => {\n const state = directRef.current;\n state.container = node;\n state.lastSize = null;\n if (node && state.enabled) {\n const total = v.getTotalSize();\n state.lastSize = total;\n const axis = v.options.horizontal ? \"width\" : \"height\";\n node.style[axis] = `${total}px`;\n }\n }\n });\n });\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n useIsomorphicLayoutEffect(() => {\n applyDirectStyles(instance);\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","/* Virtual List Container */\r\n.virtualList {\r\n position: relative;\r\n overflow: auto;\r\n contain: strict;\r\n width: 100%;\r\n padding-bottom: 300px;\r\n}\r\n\r\n/* Empty State Container */\r\n.emptyContainer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100%;\r\n color: var(--color-fg-muted);\r\n}\r\n\r\n/* Virtual List Inner Container */\r\n.virtualListInner {\r\n width: 100%;\r\n position: relative;\r\n}\r\n\r\n/* Virtual List Items Wrapper */\r\n.virtualListItems {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n}\r\n\r\n/* Loading More Indicator */\r\n.loadingMore {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.75rem;\r\n padding: 2rem 0;\r\n color: var(--color-fg-muted);\r\n font-size: 0.875rem;\r\n}\r\n\r\n/* End of List Indicator */\r\n.endOfList {\r\n display: flex;\r\n justify-content: center;\r\n padding: 2rem 0;\r\n color: var(--color-fg-muted);\r\n font-size: 0.875rem;\r\n border-top: 1px solid var(--color-border-3);\r\n margin-top: 1rem;\r\n}\r\n\r\n.endOfList span {\r\n padding: 0.5rem 1rem;\r\n background-color: var(--color-bg-2);\r\n border-radius: var(--radius-button);\r\n}","/**\n * 虚拟列表:基于 @tanstack/react-virtual,支持无限滚动 fetchNextPage。Virtual list; @tanstack/react-virtual, fetchNextPage.\n *\n * @example\n * ```tsx\n * * 与 useInfiniteQuery 配合,data 为 pages 拍平后的 items\n * <VirtualList data={items} getItemKey={(i) => i.id} renderItem={(i) => <Row item={i} />} hasNextPage fetchNextPage={fetchNextPage} />\n * ```\n */\nimport type { VirtualizerOptions } from \"@tanstack/react-virtual\";\nimport type { ReactNode } from \"react\";\n\nimport { memo, useCallback, useEffect, useRef } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface VirtualListProps<T> extends Partial<\n Omit<\n VirtualizerOptions<HTMLDivElement, Element>,\n \"count\" | \"getScrollElement\" | \"observeElementRect\" | \"observeElementOffset\" | \"scrollToFn\" | \"getItemKey\" | \"estimateSize\"\n >\n> {\n /** 数据列表。Data array. */\n data: T[];\n /** 是否有下一页。Has next page. */\n hasNextPage?: boolean;\n /** 是否正在拉取下一页。Is fetching next page. */\n isFetchingNextPage?: boolean;\n /** 拉取下一页。Fetch next page. */\n fetchNextPage?: () => void;\n /** 单项渲染。Render item. */\n renderItem: (item: T, index: number) => ReactNode;\n /** 单项高度估计。Estimate item size. */\n estimateSize?: number | ((index: number) => number);\n /** 列表高度。List height. */\n height?: string | number;\n /** 单项 key。Get item key. */\n getItemKey: (item: T, index: number) => string | number;\n /** 空状态自定义节点。Empty state node. */\n emptyState?: ReactNode;\n /** 加载更多指示器。Loading indicator node. */\n loadingIndicator?: ReactNode;\n /** 列表底指示器。End of list indicator node. */\n endOfListIndicator?: ReactNode;\n /** 当未提供 emptyState 时使用的文案,由调用方传入。Text when no data; used when emptyState not provided. */\n emptyText?: ReactNode;\n /** 当未提供 loadingIndicator 时使用的文案。Text when loading more. */\n loadingMoreText?: ReactNode;\n /** 当未提供 endOfListIndicator 时使用的文案。Text at end of list. */\n endOfListText?: ReactNode;\n /** 列表项容器 className。Flex container class. */\n flexClass?: string;\n /** 外层容器 className。Outer class. */\n outerClass?: string;\n /** 内层容器 className。Inner class. */\n innerClass?: string;\n}\n\nfunction VirtualListComponent<T>({\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n renderItem,\n estimateSize = 200,\n overscan = 5,\n height = \"600px\",\n getItemKey,\n emptyState,\n loadingIndicator,\n endOfListIndicator,\n emptyText = \"No data\",\n loadingMoreText = \"Loading more...\",\n endOfListText = \"No more items\",\n flexClass,\n outerClass,\n innerClass,\n ...virtualizerOptions\n}: VirtualListProps<T>) {\n const parentRef = useRef<HTMLDivElement>(null);\n\n // 防御性检查:确保 data 是数组\n const safeData = Array.isArray(data) ? data : [];\n const dataLength = safeData.length;\n\n // Setup virtualizer\n // eslint-disable-next-line react-hooks/incompatible-library\n const rowVirtualizer = useVirtualizer({\n count: hasNextPage ? dataLength + 1 : dataLength,\n getScrollElement: () => parentRef.current,\n estimateSize: typeof estimateSize === \"number\" ? () => estimateSize : estimateSize,\n overscan,\n ...virtualizerOptions,\n });\n\n const items = rowVirtualizer.getVirtualItems();\n\n // Auto-fetch when scrolling near bottom (following official pattern)\n useEffect(() => {\n const [lastItem] = [...items].reverse();\n\n if (!lastItem) {\n return;\n }\n\n if (lastItem.index >= dataLength - 1 && hasNextPage && !isFetchingNextPage && fetchNextPage) {\n fetchNextPage();\n }\n }, [hasNextPage, fetchNextPage, dataLength, isFetchingNextPage, items]);\n\n const renderEmptyState = useCallback(() => {\n return (\n <div\n className={styles.virtualList}\n style={{\n height: typeof height === \"number\" ? `${height}px` : height,\n }}\n >\n {emptyState ?? (\n <div className={styles.emptyContainer}>\n <span>{emptyText}</span>\n </div>\n )}\n </div>\n );\n }, [emptyState, height, emptyText]);\n\n const renderLoadingIndicator = useCallback(() => {\n if (loadingIndicator) return loadingIndicator;\n return (\n <div className={styles.loadingMore}>\n <span>{loadingMoreText}</span>\n </div>\n );\n }, [loadingIndicator, loadingMoreText]);\n\n const renderEndOfListIndicator = useCallback(() => {\n if (endOfListIndicator) return endOfListIndicator;\n return (\n <div className={styles.endOfList}>\n <span>{endOfListText}</span>\n </div>\n );\n }, [endOfListIndicator, endOfListText]);\n\n // Show empty state if no data\n if (dataLength === 0) return renderEmptyState();\n\n return (\n <div\n ref={parentRef}\n className={`${styles.virtualList} ${outerClass ?? \"\"}`}\n style={{\n height: typeof height === \"number\" ? `${height}px` : height,\n }}\n >\n <div\n className={`${styles.virtualListInner} ${innerClass ?? \"\"}`}\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n }}\n >\n <div\n className={`${styles.virtualListItems} ${flexClass ?? \"\"}`}\n style={{\n transform: `translateY(${items[0]?.start ?? 0}px)`,\n paddingTop: `2px`,\n }}\n >\n {items.map((virtualRow) => {\n const isLoaderRow = virtualRow.index > dataLength - 1;\n const item = safeData[virtualRow.index];\n\n return (\n <div key={virtualRow.key} data-index={virtualRow.index} ref={rowVirtualizer.measureElement}>\n {isLoaderRow ? (\n hasNextPage ? (\n renderLoadingIndicator()\n ) : (\n renderEndOfListIndicator()\n )\n ) : (\n <div key={getItemKey(item, virtualRow.index)}>{renderItem(item, virtualRow.index)}</div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\n// Use memo with generic type\nconst VirtualList = memo(VirtualListComponent) as typeof VirtualListComponent;\nexport default VirtualList;\n","/* 外层容器 */\r\n.virtualList {\r\n width: 100%;\r\n position: relative;\r\n overflow: visible; /* ✅ window 滚动,不是列表滚动 */\r\n padding-bottom: 300px;\r\n }\r\n \r\n /* 内层:撑出总高度 */\r\n .virtualListInner {\r\n width: 100%;\r\n position: relative;\r\n }\r\n \r\n /* 基于 translateY 的内容容器 */\r\n .virtualListItems {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n }\r\n \r\n /* 行样式(你不一定用得上,但可选) */\r\n .virtualListRow {\r\n width: 100%;\r\n }\r\n \r\n /* 无数据 */\r\n .emptyContainer {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 2rem 0;\r\n color: var(--color-fg-muted);\r\n }\r\n \r\n /* 加载中 */\r\n .loadingMore {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 1.5rem 0;\r\n color: var(--color-fg-muted);\r\n }\r\n \r\n /* 末尾提示 */\r\n .endOfList {\r\n display: flex;\r\n justify-content: center;\r\n padding: 1.5rem 0;\r\n color: var(--color-fg-muted);\r\n border-top: 1px solid var(--color-border-3);\r\n }\r\n ","/**\n * 窗口虚拟列表:基于 useWindowVirtualizer,相对视口滚动。Window virtual list; uses useWindowVirtualizer, scroll relative to viewport.\n *\n * @example\n * ```tsx\n * * 与无限列表数据配合\n * <VirtualWindowList\n * data={items}\n * getItemKey={(item) => item.id}\n * renderItem={(item) => <Row item={item} />}\n * hasNextPage={hasNextPage}\n * fetchNextPage={fetchNextPage}\n * />\n * ```\n */\nimport type { VirtualizerOptions } from \"@tanstack/react-virtual\";\nimport type { ReactNode } from \"react\";\n\nimport { memo, useCallback, useEffect } from \"react\";\nimport { useWindowVirtualizer } from \"@tanstack/react-virtual\";\n\nimport styles from \"./styles.module.css\";\n\nexport interface VirtualWindowListProps<T> extends Partial<\n Omit<\n VirtualizerOptions<Window, Element>,\n \"count\" | \"getScrollElement\" | \"observeElementRect\" | \"observeElementOffset\" | \"scrollToFn\" | \"estimateSize\" | \"getItemKey\"\n >\n> {\n /** 数据列表。Data array. */\n data: T[];\n /** 是否有下一页。Has next page. */\n hasNextPage?: boolean;\n /** 是否正在拉取下一页。Is fetching next page. */\n isFetchingNextPage?: boolean;\n /** 拉取下一页。Fetch next page. */\n fetchNextPage?: () => void;\n /** 单项渲染。Render item. */\n renderItem: (item: T, index: number) => ReactNode;\n /** 单项高度估计。Estimate item size. */\n estimateSize?: number | ((index: number) => number);\n /** 列表高度。List height. */\n height?: string | number;\n /** 单项 key。Get item key. */\n getItemKey: (item: T, index: number) => string | number;\n /** 空状态自定义节点。Empty state node. */\n emptyState?: ReactNode;\n /** 加载更多指示器。Loading indicator node. */\n loadingIndicator?: ReactNode;\n /** 列表底指示器。End of list indicator node. */\n endOfListIndicator?: ReactNode;\n /** 空状态文案(未提供 emptyState 时)。Empty text. */\n emptyText?: ReactNode;\n /** 加载更多文案。Loading more text. */\n loadingMoreText?: ReactNode;\n /** 列表底文案。End of list text. */\n endOfListText?: ReactNode;\n /** 列表项容器 className。Flex container class. */\n flexClass?: string;\n /** 外层容器 className。Outer class. */\n outerClass?: string;\n /** 内层容器 className。Inner class. */\n innerClass?: string;\n}\n\n/* -------------------------------------------\n ✅ MAIN COMPONENT\n-------------------------------------------- */\nfunction VirtualWindowListComponent<T>({\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n renderItem,\n estimateSize = 200,\n overscan = 5,\n height,\n getItemKey,\n\n emptyState,\n loadingIndicator,\n endOfListIndicator,\n emptyText = \"No data\",\n loadingMoreText = \"Loading more...\",\n endOfListText = \"No more items\",\n flexClass,\n outerClass,\n innerClass,\n ...virtualizerOptions\n}: VirtualWindowListProps<T>) {\n /* ✅ 防御性检查:确保 data 是数组 */\n const safeData = Array.isArray(data) ? data : [];\n const dataLength = safeData.length;\n\n /* ✅ 真正的 window 虚拟滚动器 */\n const virtualizer = useWindowVirtualizer({\n count: hasNextPage ? dataLength + 1 : dataLength,\n estimateSize: typeof estimateSize === \"number\" ? () => estimateSize : estimateSize,\n overscan,\n ...virtualizerOptions,\n });\n\n const items = virtualizer.getVirtualItems();\n\n /* ✅ 自动加载更多 */\n useEffect(() => {\n const last = items[items.length - 1];\n if (!last) return;\n\n const isLoaderRow = last.index >= dataLength;\n\n if (isLoaderRow && hasNextPage && !isFetchingNextPage && fetchNextPage) {\n fetchNextPage();\n }\n }, [items, hasNextPage, isFetchingNextPage, fetchNextPage, dataLength]);\n\n const renderEmptyState = useCallback(() => {\n return (\n <div\n className={styles.virtualList}\n style={{\n height: typeof height === \"number\" ? `${height}px` : (height ?? \"auto\"),\n }}\n >\n {emptyState ?? (\n <div className={styles.emptyContainer}>\n <span>{emptyText}</span>\n </div>\n )}\n </div>\n );\n }, [emptyState, height, emptyText]);\n\n const renderLoadingIndicator = useCallback(() => {\n return (\n loadingIndicator ?? (\n <div className={styles.loadingMore}>\n <span>{loadingMoreText}</span>\n </div>\n )\n );\n }, [loadingIndicator, loadingMoreText]);\n\n const renderEndOfListIndicator = useCallback(() => {\n return (\n endOfListIndicator ?? (\n <div className={styles.endOfList}>\n <span>{endOfListText}</span>\n </div>\n )\n );\n }, [endOfListIndicator, endOfListText]);\n\n /* ✅ 无数据情况 */\n if (dataLength === 0) return renderEmptyState();\n\n /* ✅ 正常渲染 */\n return (\n <div className={`${styles.virtualList} ${outerClass ?? \"\"}`}>\n <div\n className={`${styles.virtualListInner} ${innerClass ?? \"\"}`}\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className={`${styles.virtualListItems} ${flexClass ?? \"\"}`}\n style={{\n transform: `translateY(${items[0]?.start ?? 0}px)`,\n }}\n >\n {items.map((row) => {\n const isLoaderRow = row.index >= dataLength;\n const item = safeData[row.index];\n\n return (\n <div key={row.key} data-index={row.index} ref={virtualizer.measureElement}>\n {isLoaderRow ? (\n hasNextPage ? (\n renderLoadingIndicator()\n ) : (\n renderEndOfListIndicator()\n )\n ) : item == null ? (\n <div key={`missing-${row.index}`} />\n ) : (\n <div key={getItemKey(item, row.index)}>{renderItem(item, row.index)}</div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\nconst VirtualWindowList = memo(VirtualWindowListComponent) as typeof VirtualWindowListComponent;\n\nexport default VirtualWindowList;\n"],"x_google_ignoreList":[24,25,26,27],"mappings":"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"}