@orion-ds/react 4.0.0 → 4.2.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 (431) hide show
  1. package/dist/contexts/ThemeContext.d.ts.map +1 -1
  2. package/dist/index.d.ts +2 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index10.cjs +1 -1
  5. package/dist/index10.mjs +1 -1
  6. package/dist/index100.cjs +1 -1
  7. package/dist/index100.mjs +20 -40
  8. package/dist/index100.mjs.map +1 -1
  9. package/dist/index101.cjs +1 -1
  10. package/dist/index101.mjs +28 -14
  11. package/dist/index101.mjs.map +1 -1
  12. package/dist/index102.cjs +1 -1
  13. package/dist/index102.mjs +44 -28
  14. package/dist/index102.mjs.map +1 -1
  15. package/dist/index103.cjs +1 -1
  16. package/dist/index103.mjs +42 -30
  17. package/dist/index103.mjs.map +1 -1
  18. package/dist/index104.cjs +1 -1
  19. package/dist/index104.mjs +56 -36
  20. package/dist/index104.mjs.map +1 -1
  21. package/dist/index105.cjs +1 -1
  22. package/dist/index105.mjs +26 -30
  23. package/dist/index105.mjs.map +1 -1
  24. package/dist/index106.cjs +1 -1
  25. package/dist/index106.mjs +64 -52
  26. package/dist/index106.mjs.map +1 -1
  27. package/dist/index107.cjs +1 -1
  28. package/dist/index107.mjs +20 -42
  29. package/dist/index107.mjs.map +1 -1
  30. package/dist/index108.cjs +1 -1
  31. package/dist/index108.mjs +45 -32
  32. package/dist/index108.mjs.map +1 -1
  33. package/dist/index109.cjs +1 -1
  34. package/dist/index109.mjs +24 -50
  35. package/dist/index109.mjs.map +1 -1
  36. package/dist/index11.cjs +1 -1
  37. package/dist/index11.mjs +1 -1
  38. package/dist/index110.cjs +1 -1
  39. package/dist/index110.mjs +40 -12
  40. package/dist/index110.mjs.map +1 -1
  41. package/dist/index111.cjs +1 -1
  42. package/dist/index111.mjs +18 -33
  43. package/dist/index111.mjs.map +1 -1
  44. package/dist/index112.cjs +1 -1
  45. package/dist/index112.mjs +55 -28
  46. package/dist/index112.mjs.map +1 -1
  47. package/dist/index113.cjs +1 -1
  48. package/dist/index113.mjs +36 -20
  49. package/dist/index113.mjs.map +1 -1
  50. package/dist/index114.cjs +1 -1
  51. package/dist/index114.mjs +62 -24
  52. package/dist/index114.mjs.map +1 -1
  53. package/dist/index115.cjs +1 -1
  54. package/dist/index115.mjs +65 -33
  55. package/dist/index115.mjs.map +1 -1
  56. package/dist/index116.cjs +1 -1
  57. package/dist/index116.mjs +234 -18
  58. package/dist/index116.mjs.map +1 -1
  59. package/dist/index117.cjs +1 -1
  60. package/dist/index117.cjs.map +1 -1
  61. package/dist/index117.mjs +34 -31
  62. package/dist/index117.mjs.map +1 -1
  63. package/dist/index118.cjs +1 -1
  64. package/dist/index118.cjs.map +1 -1
  65. package/dist/index118.mjs +44 -29
  66. package/dist/index118.mjs.map +1 -1
  67. package/dist/index119.cjs +1 -1
  68. package/dist/index119.cjs.map +1 -1
  69. package/dist/index119.mjs +170 -234
  70. package/dist/index119.mjs.map +1 -1
  71. package/dist/index12.cjs +1 -1
  72. package/dist/index12.mjs +1 -1
  73. package/dist/index120.cjs +1 -1
  74. package/dist/index120.cjs.map +1 -1
  75. package/dist/index120.mjs +184 -32
  76. package/dist/index120.mjs.map +1 -1
  77. package/dist/index121.cjs +1 -1
  78. package/dist/index121.cjs.map +1 -1
  79. package/dist/index121.mjs +24 -39
  80. package/dist/index121.mjs.map +1 -1
  81. package/dist/index122.cjs +1 -1
  82. package/dist/index122.cjs.map +1 -1
  83. package/dist/index122.mjs +78 -158
  84. package/dist/index122.mjs.map +1 -1
  85. package/dist/index123.cjs +1 -1
  86. package/dist/index123.cjs.map +1 -1
  87. package/dist/index123.mjs +47 -180
  88. package/dist/index123.mjs.map +1 -1
  89. package/dist/index124.cjs +1 -1
  90. package/dist/index124.cjs.map +1 -1
  91. package/dist/index124.mjs +64 -26
  92. package/dist/index124.mjs.map +1 -1
  93. package/dist/index125.cjs +1 -1
  94. package/dist/index125.cjs.map +1 -1
  95. package/dist/index125.mjs +115 -81
  96. package/dist/index125.mjs.map +1 -1
  97. package/dist/index126.cjs +1 -1
  98. package/dist/index126.cjs.map +1 -1
  99. package/dist/index126.mjs +108 -52
  100. package/dist/index126.mjs.map +1 -1
  101. package/dist/index127.cjs +1 -1
  102. package/dist/index127.cjs.map +1 -1
  103. package/dist/index127.mjs +105 -60
  104. package/dist/index127.mjs.map +1 -1
  105. package/dist/index128.cjs +1 -1
  106. package/dist/index128.cjs.map +1 -1
  107. package/dist/index128.mjs +112 -114
  108. package/dist/index128.mjs.map +1 -1
  109. package/dist/index129.cjs +1 -1
  110. package/dist/index129.cjs.map +1 -1
  111. package/dist/index129.mjs +212 -106
  112. package/dist/index129.mjs.map +1 -1
  113. package/dist/index13.cjs +1 -1
  114. package/dist/index13.mjs +1 -1
  115. package/dist/index130.cjs +1 -1
  116. package/dist/index130.cjs.map +1 -1
  117. package/dist/index130.mjs +44 -111
  118. package/dist/index130.mjs.map +1 -1
  119. package/dist/index131.cjs +1 -1
  120. package/dist/index131.cjs.map +1 -1
  121. package/dist/index131.mjs +40 -122
  122. package/dist/index131.mjs.map +1 -1
  123. package/dist/index132.cjs +1 -1
  124. package/dist/index132.cjs.map +1 -1
  125. package/dist/index132.mjs +106 -214
  126. package/dist/index132.mjs.map +1 -1
  127. package/dist/index133.cjs +1 -1
  128. package/dist/index133.mjs +22 -42
  129. package/dist/index133.mjs.map +1 -1
  130. package/dist/index134.cjs +1 -1
  131. package/dist/index134.mjs +30 -44
  132. package/dist/index134.mjs.map +1 -1
  133. package/dist/index135.cjs +1 -1
  134. package/dist/index135.mjs +46 -28
  135. package/dist/index135.mjs.map +1 -1
  136. package/dist/index136.cjs +1 -1
  137. package/dist/index136.mjs +12 -76
  138. package/dist/index136.mjs.map +1 -1
  139. package/dist/index137.cjs +1 -1
  140. package/dist/index137.mjs +32 -38
  141. package/dist/index137.mjs.map +1 -1
  142. package/dist/index138.cjs +1 -1
  143. package/dist/index138.mjs +27 -38
  144. package/dist/index138.mjs.map +1 -1
  145. package/dist/index139.cjs +1 -1
  146. package/dist/index139.mjs +33 -65
  147. package/dist/index139.mjs.map +1 -1
  148. package/dist/index14.cjs +1 -1
  149. package/dist/index14.mjs +1 -1
  150. package/dist/index140.cjs +1 -1
  151. package/dist/index140.mjs +57 -28
  152. package/dist/index140.mjs.map +1 -1
  153. package/dist/index141.cjs +1 -1
  154. package/dist/index141.mjs +30 -16
  155. package/dist/index141.mjs.map +1 -1
  156. package/dist/index142.cjs +1 -1
  157. package/dist/index142.mjs +32 -22
  158. package/dist/index142.mjs.map +1 -1
  159. package/dist/index143.cjs +1 -1
  160. package/dist/index143.mjs +50 -62
  161. package/dist/index143.mjs.map +1 -1
  162. package/dist/index144.cjs +1 -1
  163. package/dist/index144.mjs +16 -20
  164. package/dist/index144.mjs.map +1 -1
  165. package/dist/index145.cjs +1 -1
  166. package/dist/index145.mjs +30 -20
  167. package/dist/index145.mjs.map +1 -1
  168. package/dist/index146.cjs +1 -1
  169. package/dist/index146.mjs +46 -26
  170. package/dist/index146.mjs.map +1 -1
  171. package/dist/index147.cjs +1 -1
  172. package/dist/index147.mjs +42 -42
  173. package/dist/index148.cjs +1 -1
  174. package/dist/index148.mjs +28 -45
  175. package/dist/index148.mjs.map +1 -1
  176. package/dist/index149.cjs +1 -1
  177. package/dist/index149.mjs +28 -27
  178. package/dist/index15.cjs +1 -1
  179. package/dist/index15.mjs +1 -1
  180. package/dist/index150.cjs +1 -1
  181. package/dist/index150.mjs +30 -28
  182. package/dist/index150.mjs.map +1 -1
  183. package/dist/index151.cjs +1 -1
  184. package/dist/index151.mjs +24 -32
  185. package/dist/index151.mjs.map +1 -1
  186. package/dist/index152.cjs +1 -1
  187. package/dist/index152.mjs +21 -29
  188. package/dist/index152.mjs.map +1 -1
  189. package/dist/index153.cjs +1 -1
  190. package/dist/index153.mjs +36 -24
  191. package/dist/index153.mjs.map +1 -1
  192. package/dist/index154.cjs +1 -1
  193. package/dist/index154.mjs +38 -28
  194. package/dist/index154.mjs.map +1 -1
  195. package/dist/index155.cjs +1 -1
  196. package/dist/index155.mjs +12 -30
  197. package/dist/index155.mjs.map +1 -1
  198. package/dist/index156.cjs +1 -1
  199. package/dist/index156.mjs +28 -33
  200. package/dist/index156.mjs.map +1 -1
  201. package/dist/index157.cjs +1 -1
  202. package/dist/index157.mjs +38 -46
  203. package/dist/index157.mjs.map +1 -1
  204. package/dist/index158.cjs +1 -1
  205. package/dist/index158.mjs +33 -46
  206. package/dist/index158.mjs.map +1 -1
  207. package/dist/index159.cjs +1 -1
  208. package/dist/index159.mjs +28 -44
  209. package/dist/index159.mjs.map +1 -1
  210. package/dist/index16.cjs +1 -1
  211. package/dist/index16.mjs +1 -1
  212. package/dist/index160.cjs +1 -1
  213. package/dist/index160.mjs +13 -39
  214. package/dist/index160.mjs.map +1 -1
  215. package/dist/index161.cjs +1 -1
  216. package/dist/index161.mjs +18 -22
  217. package/dist/index161.mjs.map +1 -1
  218. package/dist/index162.cjs +1 -1
  219. package/dist/index162.mjs +28 -18
  220. package/dist/index162.mjs.map +1 -1
  221. package/dist/index163.cjs +1 -1
  222. package/dist/index163.mjs +18 -40
  223. package/dist/index163.mjs.map +1 -1
  224. package/dist/index164.cjs +1 -1
  225. package/dist/index164.mjs +65 -16
  226. package/dist/index164.mjs.map +1 -1
  227. package/dist/index165.cjs +1 -1
  228. package/dist/index165.mjs +30 -24
  229. package/dist/index165.mjs.map +1 -1
  230. package/dist/index166.cjs +1 -1
  231. package/dist/index166.mjs +44 -64
  232. package/dist/index166.mjs.map +1 -1
  233. package/dist/index167.cjs +1 -1
  234. package/dist/index167.mjs +51 -52
  235. package/dist/index167.mjs.map +1 -1
  236. package/dist/index168.cjs +1 -1
  237. package/dist/index168.cjs.map +1 -1
  238. package/dist/index168.mjs +37 -13
  239. package/dist/index168.mjs.map +1 -1
  240. package/dist/index169.cjs +1 -1
  241. package/dist/index169.mjs +28 -56
  242. package/dist/index169.mjs.map +1 -1
  243. package/dist/index17.cjs +1 -1
  244. package/dist/index17.mjs +1 -1
  245. package/dist/index170.cjs +1 -1
  246. package/dist/index170.mjs +18 -106
  247. package/dist/index170.mjs.map +1 -1
  248. package/dist/index171.cjs +1 -1
  249. package/dist/index171.mjs +33 -18
  250. package/dist/index171.mjs.map +1 -1
  251. package/dist/index172.cjs +1 -1
  252. package/dist/index172.mjs +20 -62
  253. package/dist/index172.mjs.map +1 -1
  254. package/dist/index173.cjs +1 -1
  255. package/dist/index173.mjs +24 -55
  256. package/dist/index173.mjs.map +1 -1
  257. package/dist/index174.cjs +1 -1
  258. package/dist/index174.mjs +64 -18
  259. package/dist/index174.mjs.map +1 -1
  260. package/dist/index175.cjs +1 -1
  261. package/dist/index175.mjs +76 -52
  262. package/dist/index175.mjs.map +1 -1
  263. package/dist/index176.cjs +1 -1
  264. package/dist/index176.mjs +40 -64
  265. package/dist/index176.mjs.map +1 -1
  266. package/dist/index177.cjs +1 -1
  267. package/dist/index177.cjs.map +1 -1
  268. package/dist/index177.mjs +53 -37
  269. package/dist/index177.mjs.map +1 -1
  270. package/dist/index178.cjs +1 -1
  271. package/dist/index178.mjs +53 -28
  272. package/dist/index178.mjs.map +1 -1
  273. package/dist/index179.cjs +1 -1
  274. package/dist/index179.mjs +18 -67
  275. package/dist/index179.mjs.map +1 -1
  276. package/dist/index18.cjs +1 -1
  277. package/dist/index18.mjs +1 -1
  278. package/dist/index180.cjs +1 -1
  279. package/dist/index180.mjs +42 -57
  280. package/dist/index180.mjs.map +1 -1
  281. package/dist/index181.cjs +1 -1
  282. package/dist/index181.mjs +28 -44
  283. package/dist/index181.mjs.map +1 -1
  284. package/dist/index185.cjs +1 -1
  285. package/dist/index185.mjs +1 -1
  286. package/dist/index19.cjs +1 -1
  287. package/dist/index19.mjs +2 -2
  288. package/dist/index20.cjs +1 -1
  289. package/dist/index20.mjs +14 -14
  290. package/dist/index21.cjs +1 -1
  291. package/dist/index21.mjs +1 -1
  292. package/dist/index22.cjs +1 -1
  293. package/dist/index22.mjs +1 -1
  294. package/dist/index23.cjs +1 -1
  295. package/dist/index23.mjs +1 -1
  296. package/dist/index24.cjs +1 -1
  297. package/dist/index24.mjs +1 -1
  298. package/dist/index25.cjs +1 -1
  299. package/dist/index25.mjs +1 -1
  300. package/dist/index26.cjs +1 -1
  301. package/dist/index26.cjs.map +1 -1
  302. package/dist/index26.mjs +1 -1
  303. package/dist/index27.cjs +1 -1
  304. package/dist/index27.mjs +1 -1
  305. package/dist/index28.cjs +1 -1
  306. package/dist/index28.mjs +1 -1
  307. package/dist/index30.cjs +1 -1
  308. package/dist/index30.mjs +1 -1
  309. package/dist/index31.cjs +1 -1
  310. package/dist/index31.mjs +1 -1
  311. package/dist/index32.cjs +1 -1
  312. package/dist/index32.mjs +1 -1
  313. package/dist/index33.cjs +1 -1
  314. package/dist/index33.mjs +1 -1
  315. package/dist/index34.cjs +1 -1
  316. package/dist/index34.mjs +1 -1
  317. package/dist/index35.cjs +1 -1
  318. package/dist/index35.mjs +1 -1
  319. package/dist/index36.cjs +1 -1
  320. package/dist/index36.mjs +1 -1
  321. package/dist/index37.cjs +1 -1
  322. package/dist/index37.mjs +1 -1
  323. package/dist/index38.cjs +1 -1
  324. package/dist/index38.mjs +1 -1
  325. package/dist/index39.cjs +1 -1
  326. package/dist/index39.mjs +1 -1
  327. package/dist/index40.cjs +1 -1
  328. package/dist/index40.mjs +1 -1
  329. package/dist/index42.cjs +1 -1
  330. package/dist/index42.mjs +1 -1
  331. package/dist/index43.cjs +1 -1
  332. package/dist/index43.cjs.map +1 -1
  333. package/dist/index43.mjs +1 -1
  334. package/dist/index44.cjs +1 -1
  335. package/dist/index44.mjs +1 -1
  336. package/dist/index46.cjs +1 -1
  337. package/dist/index46.mjs +1 -1
  338. package/dist/index47.cjs +1 -1
  339. package/dist/index47.mjs +1 -1
  340. package/dist/index49.cjs +1 -1
  341. package/dist/index49.mjs +1 -1
  342. package/dist/index5.cjs +1 -1
  343. package/dist/index5.mjs +1 -1
  344. package/dist/index50.cjs +1 -1
  345. package/dist/index50.mjs +1 -1
  346. package/dist/index51.cjs +1 -1
  347. package/dist/index51.mjs +1 -1
  348. package/dist/index52.cjs +1 -1
  349. package/dist/index52.mjs +1 -1
  350. package/dist/index53.cjs +1 -1
  351. package/dist/index53.mjs +1 -1
  352. package/dist/index54.cjs +1 -1
  353. package/dist/index54.mjs +1 -1
  354. package/dist/index55.cjs +1 -1
  355. package/dist/index55.mjs +1 -1
  356. package/dist/index56.cjs +1 -1
  357. package/dist/index56.mjs +1 -1
  358. package/dist/index57.cjs +1 -1
  359. package/dist/index57.mjs +1 -1
  360. package/dist/index58.cjs +1 -1
  361. package/dist/index58.mjs +1 -1
  362. package/dist/index59.cjs +1 -1
  363. package/dist/index59.mjs +1 -1
  364. package/dist/index6.cjs +1 -1
  365. package/dist/index6.mjs +1 -1
  366. package/dist/index60.cjs +1 -1
  367. package/dist/index60.mjs +1 -1
  368. package/dist/index61.cjs +1 -1
  369. package/dist/index61.mjs +1 -1
  370. package/dist/index62.cjs +1 -1
  371. package/dist/index62.mjs +1 -1
  372. package/dist/index64.cjs +1 -1
  373. package/dist/index64.mjs +1 -1
  374. package/dist/index65.cjs +1 -1
  375. package/dist/index65.mjs +1 -1
  376. package/dist/index66.cjs +1 -1
  377. package/dist/index66.mjs +1 -1
  378. package/dist/index67.cjs +1 -1
  379. package/dist/index67.mjs +1 -1
  380. package/dist/index68.cjs +1 -1
  381. package/dist/index68.mjs +1 -1
  382. package/dist/index69.cjs +1 -1
  383. package/dist/index69.mjs +1 -1
  384. package/dist/index7.cjs +1 -1
  385. package/dist/index7.mjs +1 -1
  386. package/dist/index70.cjs +1 -1
  387. package/dist/index70.mjs +1 -1
  388. package/dist/index71.cjs +1 -1
  389. package/dist/index71.mjs +1 -1
  390. package/dist/index72.cjs +1 -1
  391. package/dist/index72.mjs +1 -1
  392. package/dist/index73.cjs +1 -1
  393. package/dist/index73.mjs +1 -1
  394. package/dist/index75.cjs +7 -10
  395. package/dist/index75.cjs.map +1 -1
  396. package/dist/index75.mjs +18 -21
  397. package/dist/index75.mjs.map +1 -1
  398. package/dist/index76.cjs +1 -1
  399. package/dist/index76.mjs +1 -1
  400. package/dist/index77.cjs +1 -1
  401. package/dist/index77.mjs +1 -1
  402. package/dist/index78.cjs +1 -1
  403. package/dist/index78.mjs +1 -1
  404. package/dist/index79.cjs +1 -1
  405. package/dist/index79.mjs +1 -1
  406. package/dist/index8.cjs +1 -1
  407. package/dist/index8.mjs +1 -1
  408. package/dist/index80.cjs +1 -1
  409. package/dist/index80.mjs +1 -1
  410. package/dist/index81.cjs +1 -1
  411. package/dist/index81.mjs +1 -1
  412. package/dist/index82.cjs +1 -1
  413. package/dist/index82.mjs +2 -2
  414. package/dist/index9.cjs +1 -1
  415. package/dist/index9.mjs +1 -1
  416. package/dist/index97.cjs +1 -1
  417. package/dist/index97.cjs.map +1 -1
  418. package/dist/index97.mjs +62 -154
  419. package/dist/index97.mjs.map +1 -1
  420. package/dist/index98.cjs +1 -1
  421. package/dist/index98.cjs.map +1 -1
  422. package/dist/index98.mjs +138 -202
  423. package/dist/index98.mjs.map +1 -1
  424. package/dist/index99.cjs +1 -1
  425. package/dist/index99.cjs.map +1 -1
  426. package/dist/index99.mjs +218 -36
  427. package/dist/index99.mjs.map +1 -1
  428. package/dist/react.css +1 -1
  429. package/dist/styles.css +8 -1
  430. package/dist/theme.css +7 -0
  431. package/package.json +5 -8
package/dist/index62.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs as L, jsx as e } from "react/jsx-runtime";
2
2
  import { forwardRef as S, useCallback as l } from "react";
3
3
  import { Loader2 as $, Search as h, X as D } from "lucide-react";
4
- import s from "./index160.mjs";
4
+ import s from "./index131.mjs";
5
5
  const E = S(
6
6
  ({
7
7
  size: n = "md",
package/dist/index64.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),$=require("react"),e=require("./index152.cjs"),n=$.forwardRef(({label:i,error:a,helperText:d,options:o,placeholder:r="Select an option...",fullWidth:u=!1,size:f="md",optional:m=!1,className:h,id:j,disabled:p,required:c,children:b,...x},N)=>{const s=j||`select-${Math.random().toString(36).substr(2,9)}`,v=[e.default.selectContainer,u&&e.default.fullWidth,a&&e.default.error,h].filter(Boolean).join(" "),S=[e.default.select,e.default[f]].filter(Boolean).join(" ");return l.jsxs("div",{className:v,children:[i&&l.jsxs("label",{htmlFor:s,className:e.default.label,children:[i,m&&l.jsx("span",{className:e.default.optional,children:"(optional)"}),c&&l.jsx("span",{"aria-label":"required",children:"*"})]}),l.jsx("div",{className:e.default.selectWrapper,children:l.jsxs("select",{ref:N,id:s,className:S,disabled:p,required:c,"aria-invalid":a?"true":"false","aria-describedby":a?`${s}-error`:d?`${s}-helper`:void 0,...x,children:[r&&l.jsx("option",{value:"",disabled:!0,className:e.default.placeholder,children:r}),o?.map(t=>l.jsx("option",{value:t.value,disabled:t.disabled,children:t.label},t.value)),b]})}),d&&!a&&l.jsx("span",{id:`${s}-helper`,className:e.default.helperText,children:d}),a&&l.jsxs("span",{id:`${s}-error`,className:e.default.errorMessage,role:"alert",children:[l.jsx("span",{className:e.default.errorIcon,"aria-hidden":"true",children:"⚠"}),a]})]})});n.displayName="Select";exports.Select=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),$=require("react"),e=require("./index145.cjs"),n=$.forwardRef(({label:i,error:a,helperText:d,options:o,placeholder:r="Select an option...",fullWidth:u=!1,size:f="md",optional:m=!1,className:h,id:j,disabled:p,required:c,children:b,...x},N)=>{const s=j||`select-${Math.random().toString(36).substr(2,9)}`,v=[e.default.selectContainer,u&&e.default.fullWidth,a&&e.default.error,h].filter(Boolean).join(" "),S=[e.default.select,e.default[f]].filter(Boolean).join(" ");return l.jsxs("div",{className:v,children:[i&&l.jsxs("label",{htmlFor:s,className:e.default.label,children:[i,m&&l.jsx("span",{className:e.default.optional,children:"(optional)"}),c&&l.jsx("span",{"aria-label":"required",children:"*"})]}),l.jsx("div",{className:e.default.selectWrapper,children:l.jsxs("select",{ref:N,id:s,className:S,disabled:p,required:c,"aria-invalid":a?"true":"false","aria-describedby":a?`${s}-error`:d?`${s}-helper`:void 0,...x,children:[r&&l.jsx("option",{value:"",disabled:!0,className:e.default.placeholder,children:r}),o?.map(t=>l.jsx("option",{value:t.value,disabled:t.disabled,children:t.label},t.value)),b]})}),d&&!a&&l.jsx("span",{id:`${s}-helper`,className:e.default.helperText,children:d}),a&&l.jsxs("span",{id:`${s}-error`,className:e.default.errorMessage,role:"alert",children:[l.jsx("span",{className:e.default.errorIcon,"aria-hidden":"true",children:"⚠"}),a]})]})});n.displayName="Select";exports.Select=n;
2
2
  //# sourceMappingURL=index64.cjs.map
package/dist/index64.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsxs as i, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as y } from "react";
3
- import e from "./index152.mjs";
3
+ import e from "./index145.mjs";
4
4
  const C = y(
5
5
  ({
6
6
  label: n,
package/dist/index65.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),u=require("react"),S=require("lucide-react"),s=require("./index148.cjs"),y=u.forwardRef(({className:e,...d},i)=>a.jsx("hr",{ref:i,className:`${s.default.divider} ${e||""}`,...d}));y.displayName="Sidebar.Divider";const b=u.forwardRef(({item:e,active:d=!1,collapsed:i=!1,depth:t=0,className:r,...c},l)=>{const[f,h]=u.useState(!1),n=e.children&&e.children.length>0,m=[s.default.item,d&&s.default.itemActive,e.disabled&&s.default.itemDisabled,t>0&&s.default.itemNested,r].filter(Boolean).join(" "),x=o=>{n&&(o.preventDefault(),h(!f)),e.onClick&&!e.disabled&&e.onClick()},j=a.jsxs(a.Fragment,{children:[e.icon&&a.jsx("span",{className:s.default.itemIcon,children:e.icon}),!i&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:s.default.itemLabel,children:e.label}),e.badge&&a.jsx("span",{className:s.default.itemBadge,children:e.badge}),n&&a.jsx(S.ChevronDown,{size:16,className:`${s.default.itemChevron} ${f?s.default.chevronExpanded:""}`})]})]}),v=e.href&&!n?"a":"button",N=e.href&&!n?{href:e.href}:{type:"button",onClick:x};return a.jsxs("li",{className:s.default.itemWrapper,children:[a.jsx(v,{ref:l,className:m,"aria-current":d?"page":void 0,"aria-disabled":e.disabled,title:i?e.label:void 0,style:{paddingLeft:!i&&t>0?`calc(var(--spacing-3) + ${t*12}px)`:void 0},...N,...c,children:j}),n&&f&&!i&&a.jsx("ul",{className:s.default.subItems,children:e.children.map(o=>a.jsx(b,{item:o,active:!1,collapsed:i,depth:t+1},o.id))})]})});b.displayName="Sidebar.Item";const g=u.forwardRef(({section:e,activeItem:d,collapsed:i=!1,className:t,...r},c)=>a.jsxs("div",{ref:c,className:`${s.default.section} ${t||""}`,...r,children:[e.title&&!i&&a.jsx("div",{className:s.default.sectionTitle,children:e.title}),a.jsx("ul",{className:s.default.sectionItems,children:e.items.map(l=>a.jsx(b,{item:l,active:d===l.id,collapsed:i},l.id))})]}));g.displayName="Sidebar.Section";const C=u.forwardRef(({sections:e,activeItem:d,collapsed:i=!1,onCollapsedChange:t,header:r,footer:c,variant:l="default",width:f=240,collapsedWidth:h=64,className:n,style:m,...x},j)=>{const v=[s.default.sidebar,s.default[`variant-${l}`],i&&s.default.collapsed,n].filter(Boolean).join(" "),N={...m,"--sidebar-width":`${i?h:f}px`},o=()=>{t&&t(!i)};return a.jsxs("nav",{ref:j,className:v,style:N,...x,children:[r&&a.jsx("div",{className:s.default.header,children:r}),a.jsx("div",{className:s.default.content,children:e.map((p,$)=>a.jsx(g,{section:p,activeItem:d,collapsed:i},p.title||$))}),c&&a.jsx("div",{className:s.default.footer,children:c}),t&&a.jsx("button",{type:"button",className:s.default.collapseToggle,onClick:o,"aria-label":i?"Expand sidebar":"Collapse sidebar",children:i?a.jsx(S.ChevronRight,{size:16}):a.jsx(S.ChevronLeft,{size:16})})]})});C.displayName="Sidebar";const R=Object.assign(C,{Item:b,Section:g,Divider:y});exports.Sidebar=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),u=require("react"),S=require("lucide-react"),s=require("./index108.cjs"),y=u.forwardRef(({className:e,...d},i)=>a.jsx("hr",{ref:i,className:`${s.default.divider} ${e||""}`,...d}));y.displayName="Sidebar.Divider";const b=u.forwardRef(({item:e,active:d=!1,collapsed:i=!1,depth:t=0,className:r,...c},l)=>{const[f,h]=u.useState(!1),n=e.children&&e.children.length>0,m=[s.default.item,d&&s.default.itemActive,e.disabled&&s.default.itemDisabled,t>0&&s.default.itemNested,r].filter(Boolean).join(" "),x=o=>{n&&(o.preventDefault(),h(!f)),e.onClick&&!e.disabled&&e.onClick()},j=a.jsxs(a.Fragment,{children:[e.icon&&a.jsx("span",{className:s.default.itemIcon,children:e.icon}),!i&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:s.default.itemLabel,children:e.label}),e.badge&&a.jsx("span",{className:s.default.itemBadge,children:e.badge}),n&&a.jsx(S.ChevronDown,{size:16,className:`${s.default.itemChevron} ${f?s.default.chevronExpanded:""}`})]})]}),v=e.href&&!n?"a":"button",N=e.href&&!n?{href:e.href}:{type:"button",onClick:x};return a.jsxs("li",{className:s.default.itemWrapper,children:[a.jsx(v,{ref:l,className:m,"aria-current":d?"page":void 0,"aria-disabled":e.disabled,title:i?e.label:void 0,style:{paddingLeft:!i&&t>0?`calc(var(--spacing-3) + ${t*12}px)`:void 0},...N,...c,children:j}),n&&f&&!i&&a.jsx("ul",{className:s.default.subItems,children:e.children.map(o=>a.jsx(b,{item:o,active:!1,collapsed:i,depth:t+1},o.id))})]})});b.displayName="Sidebar.Item";const g=u.forwardRef(({section:e,activeItem:d,collapsed:i=!1,className:t,...r},c)=>a.jsxs("div",{ref:c,className:`${s.default.section} ${t||""}`,...r,children:[e.title&&!i&&a.jsx("div",{className:s.default.sectionTitle,children:e.title}),a.jsx("ul",{className:s.default.sectionItems,children:e.items.map(l=>a.jsx(b,{item:l,active:d===l.id,collapsed:i},l.id))})]}));g.displayName="Sidebar.Section";const C=u.forwardRef(({sections:e,activeItem:d,collapsed:i=!1,onCollapsedChange:t,header:r,footer:c,variant:l="default",width:f=240,collapsedWidth:h=64,className:n,style:m,...x},j)=>{const v=[s.default.sidebar,s.default[`variant-${l}`],i&&s.default.collapsed,n].filter(Boolean).join(" "),N={...m,"--sidebar-width":`${i?h:f}px`},o=()=>{t&&t(!i)};return a.jsxs("nav",{ref:j,className:v,style:N,...x,children:[r&&a.jsx("div",{className:s.default.header,children:r}),a.jsx("div",{className:s.default.content,children:e.map((p,$)=>a.jsx(g,{section:p,activeItem:d,collapsed:i},p.title||$))}),c&&a.jsx("div",{className:s.default.footer,children:c}),t&&a.jsx("button",{type:"button",className:s.default.collapseToggle,onClick:o,"aria-label":i?"Expand sidebar":"Collapse sidebar",children:i?a.jsx(S.ChevronRight,{size:16}):a.jsx(S.ChevronLeft,{size:16})})]})});C.displayName="Sidebar";const R=Object.assign(C,{Item:b,Section:g,Divider:y});exports.Sidebar=R;
2
2
  //# sourceMappingURL=index65.cjs.map
package/dist/index65.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs as b, jsx as i, Fragment as C } from "react/jsx-runtime";
2
2
  import { forwardRef as h, useState as j } from "react";
3
3
  import { ChevronRight as k, ChevronLeft as B, ChevronDown as T } from "lucide-react";
4
- import a from "./index148.mjs";
4
+ import a from "./index108.mjs";
5
5
  const $ = h(
6
6
  ({ className: e, ...r }, s) => /* @__PURE__ */ i(
7
7
  "hr",
package/dist/index66.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),x=require("react"),e=require("./index145.cjs"),m=x.forwardRef(({variant:a="text",animation:f="pulse",width:t,height:l,lines:n=1,borderRadius:o,className:p,style:y,...u},i)=>{const d=[e.default.skeleton,e.default[a],e.default[f],p].filter(Boolean).join(" "),r={width:typeof t=="number"?`${t}px`:t,height:typeof l=="number"?`${l}px`:l,borderRadius:typeof o=="number"?`${o}px`:o,...y};return a==="text"&&n>1?s.jsx("div",{ref:i,className:e.default.lines,...u,children:Array.from({length:n}).map((S,c)=>s.jsx("div",{className:d,style:{...r,width:c===n-1?"80%":r.width},"aria-hidden":"true"},c))}):s.jsx("div",{ref:i,className:d,style:r,"aria-hidden":"true",...u})});m.displayName="Skeleton";exports.Skeleton=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),x=require("react"),e=require("./index100.cjs"),m=x.forwardRef(({variant:a="text",animation:f="pulse",width:t,height:l,lines:n=1,borderRadius:o,className:p,style:y,...u},i)=>{const d=[e.default.skeleton,e.default[a],e.default[f],p].filter(Boolean).join(" "),r={width:typeof t=="number"?`${t}px`:t,height:typeof l=="number"?`${l}px`:l,borderRadius:typeof o=="number"?`${o}px`:o,...y};return a==="text"&&n>1?s.jsx("div",{ref:i,className:e.default.lines,...u,children:Array.from({length:n}).map((S,c)=>s.jsx("div",{className:d,style:{...r,width:c===n-1?"80%":r.width},"aria-hidden":"true"},c))}):s.jsx("div",{ref:i,className:d,style:r,"aria-hidden":"true",...u})});m.displayName="Skeleton";exports.Skeleton=m;
2
2
  //# sourceMappingURL=index66.cjs.map
package/dist/index66.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
2
  import { forwardRef as u } from "react";
3
- import e from "./index145.mjs";
3
+ import e from "./index100.mjs";
4
4
  const x = u(
5
5
  ({
6
6
  variant: n = "text",
package/dist/index67.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),n=require("react"),e=require("./index117.cjs"),v=n.forwardRef(({value:l,onChange:o,min:s=0,max:t=100,step:M=1,size:S="md",disabled:f=!1,showValue:k=!1,formatValue:d,showLabels:x=!1,showTicks:w=!1,tickValues:h,label:D,id:R,onChangeStart:p,onChangeEnd:j,className:T,...q},C)=>{const I=n.useId(),$=R||I,i=n.useRef(!1),N=(l-s)/(t-s)*100,g=d?d(l):l.toString(),U=n.useCallback(r=>{const c=parseFloat(r.target.value);o(c)},[o]),b=n.useCallback(()=>{i.current=!0,p?.()},[p]),y=n.useCallback(()=>{i.current&&(i.current=!1,j?.(l))},[j,l]),B=()=>{if(h)return h;const r=[],c=(t-s)/4;for(let u=s;u<=t;u+=c)r.push(Math.round(u*100)/100);return r},F=[e.default.container,e.default[S],f&&e.default.disabled,T].filter(Boolean).join(" ");return a.jsxs("div",{ref:C,className:F,...q,children:[k&&a.jsx("div",{className:e.default.valueDisplay,style:{left:`${N}%`},"aria-hidden":"true",children:g}),a.jsxs("div",{className:e.default.track,children:[a.jsx("div",{className:e.default.fill,style:{width:`${N}%`},"aria-hidden":"true"}),a.jsx("input",{id:$,type:"range",className:e.default.input,value:l,onChange:U,onMouseDown:b,onMouseUp:y,onTouchStart:b,onTouchEnd:y,min:s,max:t,step:M,disabled:f,"aria-label":D,"aria-valuemin":s,"aria-valuemax":t,"aria-valuenow":l,"aria-valuetext":g})]}),w&&a.jsx("div",{className:e.default.ticks,"aria-hidden":"true",children:B().map(r=>a.jsx("div",{className:e.default.tick,style:{left:`${(r-s)/(t-s)*100}%`}},r))}),x&&a.jsxs("div",{className:e.default.labels,"aria-hidden":"true",children:[a.jsx("span",{className:e.default.labelMin,children:d?d(s):s}),a.jsx("span",{className:e.default.labelMax,children:d?d(t):t})]})]})});v.displayName="Slider";exports.Slider=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),n=require("react"),e=require("./index134.cjs"),v=n.forwardRef(({value:l,onChange:o,min:s=0,max:t=100,step:M=1,size:S="md",disabled:f=!1,showValue:k=!1,formatValue:d,showLabels:x=!1,showTicks:w=!1,tickValues:h,label:D,id:R,onChangeStart:p,onChangeEnd:j,className:T,...q},C)=>{const I=n.useId(),$=R||I,i=n.useRef(!1),N=(l-s)/(t-s)*100,g=d?d(l):l.toString(),U=n.useCallback(r=>{const c=parseFloat(r.target.value);o(c)},[o]),b=n.useCallback(()=>{i.current=!0,p?.()},[p]),y=n.useCallback(()=>{i.current&&(i.current=!1,j?.(l))},[j,l]),B=()=>{if(h)return h;const r=[],c=(t-s)/4;for(let u=s;u<=t;u+=c)r.push(Math.round(u*100)/100);return r},F=[e.default.container,e.default[S],f&&e.default.disabled,T].filter(Boolean).join(" ");return a.jsxs("div",{ref:C,className:F,...q,children:[k&&a.jsx("div",{className:e.default.valueDisplay,style:{left:`${N}%`},"aria-hidden":"true",children:g}),a.jsxs("div",{className:e.default.track,children:[a.jsx("div",{className:e.default.fill,style:{width:`${N}%`},"aria-hidden":"true"}),a.jsx("input",{id:$,type:"range",className:e.default.input,value:l,onChange:U,onMouseDown:b,onMouseUp:y,onTouchStart:b,onTouchEnd:y,min:s,max:t,step:M,disabled:f,"aria-label":D,"aria-valuemin":s,"aria-valuemax":t,"aria-valuenow":l,"aria-valuetext":g})]}),w&&a.jsx("div",{className:e.default.ticks,"aria-hidden":"true",children:B().map(r=>a.jsx("div",{className:e.default.tick,style:{left:`${(r-s)/(t-s)*100}%`}},r))}),x&&a.jsxs("div",{className:e.default.labels,"aria-hidden":"true",children:[a.jsx("span",{className:e.default.labelMin,children:d?d(s):s}),a.jsx("span",{className:e.default.labelMax,children:d?d(t):t})]})]})});v.displayName="Slider";exports.Slider=v;
2
2
  //# sourceMappingURL=index67.cjs.map
package/dist/index67.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsxs as o, jsx as l } from "react/jsx-runtime";
2
2
  import { forwardRef as z, useId as A, useRef as E, useCallback as u } from "react";
3
- import e from "./index117.mjs";
3
+ import e from "./index134.mjs";
4
4
  const G = z(
5
5
  ({
6
6
  value: t,
package/dist/index68.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),e=require("./index118.cjs"),s=({size:i="md",variant:l="primary",label:a="Loading...",showLabel:r=!1,className:t,...o})=>{const d=[e.default.container,t].filter(Boolean).join(" "),c=[e.default.spinner,e.default[i],e.default[l]].filter(Boolean).join(" ");return n.jsxs("div",{className:d,...o,children:[n.jsx("div",{className:c,role:"status","aria-label":a,"aria-live":"polite"}),r&&n.jsx("span",{className:e.default.label,children:a})]})};s.displayName="Spinner";exports.Spinner=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),e=require("./index149.cjs"),s=({size:i="md",variant:l="primary",label:a="Loading...",showLabel:r=!1,className:t,...o})=>{const d=[e.default.container,t].filter(Boolean).join(" "),c=[e.default.spinner,e.default[i],e.default[l]].filter(Boolean).join(" ");return n.jsxs("div",{className:d,...o,children:[n.jsx("div",{className:c,role:"status","aria-label":a,"aria-live":"polite"}),r&&n.jsx("span",{className:e.default.label,children:a})]})};s.displayName="Spinner";exports.Spinner=s;
2
2
  //# sourceMappingURL=index68.cjs.map
package/dist/index68.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs as c, jsx as a } from "react/jsx-runtime";
2
- import s from "./index118.mjs";
2
+ import s from "./index149.mjs";
3
3
  const m = ({
4
4
  size: n = "md",
5
5
  variant: i = "primary",
package/dist/index69.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),x=require("lucide-react"),r=require("./index106.cjs"),R=({step:e,index:o,status:n,size:u,showNumber:b,showCheckmark:m,clickable:s,onClick:i,labelPosition:j})=>{const N=c.useCallback(()=>{s&&!e.disabled&&i&&i()},[s,e.disabled,i]),f=c.useCallback(d=>{(d.key==="Enter"||d.key===" ")&&s&&!e.disabled&&(d.preventDefault(),i?.())},[s,e.disabled,i]),v=[r.default.step,r.default[n],r.default[u],r.default[`label-${j}`],s&&!e.disabled&&r.default.clickable,e.disabled&&r.default.disabled].filter(Boolean).join(" "),h=u==="sm"?14:u==="lg"?20:16,g=()=>n==="error"||e.error?a.jsx(x.AlertCircle,{size:h}):e.icon?e.icon:n==="complete"&&m?a.jsx(x.Check,{size:h}):b?a.jsx("span",{className:r.default.number,children:o+1}):null;return a.jsxs("div",{className:v,role:s?"button":void 0,tabIndex:s&&!e.disabled?0:void 0,"aria-current":n==="current"?"step":void 0,"aria-disabled":e.disabled,onClick:N,onKeyDown:f,children:[a.jsx("div",{className:r.default.indicator,children:g()}),a.jsxs("div",{className:r.default.content,children:[a.jsxs("span",{className:r.default.title,children:[e.title,e.optional&&a.jsx("span",{className:r.default.optional,children:"(Optional)"})]}),e.description&&a.jsx("span",{className:r.default.description,children:e.description}),(e.error||n==="error")&&e.errorMessage&&a.jsx("span",{className:r.default.errorMessage,children:e.errorMessage})]})]})},p=c.forwardRef(({steps:e,currentStep:o=0,onStepClick:n,clickable:u=!1,orientation:b="horizontal",size:m="md",showNumbers:s=!0,showConnectors:i=!0,showCheckmarks:j=!0,labelPosition:N="bottom",scrollable:f=!1,className:v,...h},g)=>{const d=c.useRef(null);c.useEffect(()=>{if(f&&d.current){const l=d.current.children[o];l&&l.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[o,f]);const y=t=>e[t]?.error?"error":t<o?"complete":t===o?"current":"upcoming",w=c.useCallback(t=>{const l=e[t];n&&l&&!l.disabled&&n(t,l)},[n,e]),C=[r.default.stepper,r.default[b],r.default[m],i&&r.default.withConnectors,f&&r.default.scrollable,v].filter(Boolean).join(" ");return a.jsx("div",{ref:g,className:C,role:"navigation","aria-label":"Progress",...h,children:a.jsx("ol",{ref:d,className:r.default.list,children:e.map((t,l)=>a.jsxs("li",{className:r.default.item,children:[a.jsx(R,{step:t,index:l,status:y(l),size:m,showNumber:s,showCheckmark:j,clickable:u,onClick:()=>w(l),labelPosition:N}),i&&l<e.length-1&&a.jsx("div",{className:`${r.default.connector} ${l<o?r.default.complete:""}`,"aria-hidden":"true"})]},t.id))})})});p.displayName="Stepper";exports.Stepper=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),x=require("lucide-react"),r=require("./index167.cjs"),R=({step:e,index:o,status:n,size:u,showNumber:b,showCheckmark:m,clickable:s,onClick:i,labelPosition:j})=>{const N=c.useCallback(()=>{s&&!e.disabled&&i&&i()},[s,e.disabled,i]),f=c.useCallback(d=>{(d.key==="Enter"||d.key===" ")&&s&&!e.disabled&&(d.preventDefault(),i?.())},[s,e.disabled,i]),v=[r.default.step,r.default[n],r.default[u],r.default[`label-${j}`],s&&!e.disabled&&r.default.clickable,e.disabled&&r.default.disabled].filter(Boolean).join(" "),h=u==="sm"?14:u==="lg"?20:16,g=()=>n==="error"||e.error?a.jsx(x.AlertCircle,{size:h}):e.icon?e.icon:n==="complete"&&m?a.jsx(x.Check,{size:h}):b?a.jsx("span",{className:r.default.number,children:o+1}):null;return a.jsxs("div",{className:v,role:s?"button":void 0,tabIndex:s&&!e.disabled?0:void 0,"aria-current":n==="current"?"step":void 0,"aria-disabled":e.disabled,onClick:N,onKeyDown:f,children:[a.jsx("div",{className:r.default.indicator,children:g()}),a.jsxs("div",{className:r.default.content,children:[a.jsxs("span",{className:r.default.title,children:[e.title,e.optional&&a.jsx("span",{className:r.default.optional,children:"(Optional)"})]}),e.description&&a.jsx("span",{className:r.default.description,children:e.description}),(e.error||n==="error")&&e.errorMessage&&a.jsx("span",{className:r.default.errorMessage,children:e.errorMessage})]})]})},p=c.forwardRef(({steps:e,currentStep:o=0,onStepClick:n,clickable:u=!1,orientation:b="horizontal",size:m="md",showNumbers:s=!0,showConnectors:i=!0,showCheckmarks:j=!0,labelPosition:N="bottom",scrollable:f=!1,className:v,...h},g)=>{const d=c.useRef(null);c.useEffect(()=>{if(f&&d.current){const l=d.current.children[o];l&&l.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}},[o,f]);const y=t=>e[t]?.error?"error":t<o?"complete":t===o?"current":"upcoming",w=c.useCallback(t=>{const l=e[t];n&&l&&!l.disabled&&n(t,l)},[n,e]),C=[r.default.stepper,r.default[b],r.default[m],i&&r.default.withConnectors,f&&r.default.scrollable,v].filter(Boolean).join(" ");return a.jsx("div",{ref:g,className:C,role:"navigation","aria-label":"Progress",...h,children:a.jsx("ol",{ref:d,className:r.default.list,children:e.map((t,l)=>a.jsxs("li",{className:r.default.item,children:[a.jsx(R,{step:t,index:l,status:y(l),size:m,showNumber:s,showCheckmark:j,clickable:u,onClick:()=>w(l),labelPosition:N}),i&&l<e.length-1&&a.jsx("div",{className:`${r.default.connector} ${l<o?r.default.complete:""}`,"aria-hidden":"true"})]},t.id))})})});p.displayName="Stepper";exports.Stepper=p;
2
2
  //# sourceMappingURL=index69.cjs.map
package/dist/index69.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx as i, jsxs as h } from "react/jsx-runtime";
2
2
  import { forwardRef as I, useRef as D, useEffect as M, useCallback as w } from "react";
3
3
  import { AlertCircle as R, Check as $ } from "lucide-react";
4
- import e from "./index106.mjs";
4
+ import e from "./index167.mjs";
5
5
  const B = ({
6
6
  step: r,
7
7
  index: t,
package/dist/index7.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),O=require("react"),s=require("lucide-react"),a=require("./index153.cjs"),n=require("./index16.cjs"),T=require("./index10.cjs"),k=require("./index35.cjs"),w=require("./index14.cjs"),x=({id:i,avatar:d,title:l,description:C,timestamp:u,isMultiAgent:D=!1,onClick:c,onEdit:g,onDelete:f,availableFolders:o,onMoveToFolder:m,draggable:r=!1,isDragging:v=!1,className:N,...A})=>{const S=typeof d=="string",[h,j]=O.useState(v),q=[a.default.agentCard,c&&a.default.clickable,r&&a.default.draggable,h&&a.default.dragging,N].filter(Boolean).join(" "),y=()=>{c?.()},b=t=>{r&&(j(!0),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",i),t.dataTransfer.setData("application/json",JSON.stringify({id:i,title:l})))},z=()=>{j(!1)},B=t=>{r&&(t.preventDefault(),t.dataTransfer.dropEffect="move")},p=[...g?[{id:"edit",label:"Edit",icon:e.jsx(s.Edit,{size:16}),onClick:g}]:[],...f?[{id:"delete",label:"Delete",icon:e.jsx(s.Trash2,{size:16}),danger:!0,onClick:f}]:[],...m&&o&&o.length>0?[{id:"_move-sep",label:"",separator:!0},...o.map(t=>({id:`move-to-${t.id}`,label:t.title,icon:e.jsx(s.Folder,{size:16}),onClick:()=>m(t.id)}))]:[]];return e.jsxs(n.Card,{variant:"base",interactive:!!c,className:q,onClick:y,draggable:r,onDragStart:b,onDragEnd:z,onDragOver:B,"data-agent-id":i,"data-dragging":h,...A,children:[e.jsx(n.Card.Header,{children:e.jsxs("div",{className:a.default.headerContent,children:[S?e.jsx(T.Avatar,{src:d,alt:l,size:"lg"}):e.jsx("div",{className:a.default.iconAvatar,children:d}),e.jsxs("div",{className:a.default.headerRight,children:[D&&e.jsx("span",{className:a.default.multiBadge,children:"Multi"}),p.length>0&&e.jsx(k.Dropdown,{trigger:e.jsx(w.Button,{variant:"ghost",iconOnly:!0,size:"sm",icon:e.jsx(s.MoreVertical,{size:20}),"aria-label":"Actions",onDragStart:t=>t.stopPropagation()}),items:p,placement:"bottom-end",minWidth:140})]})]})}),e.jsxs(n.Card.Body,{children:[e.jsx("h3",{className:a.default.title,children:l}),e.jsx("p",{className:a.default.description,children:C??""})]}),u&&e.jsx(n.Card.Footer,{children:e.jsx("time",{className:a.default.timestamp,children:u})})]})};x.displayName="AgentCard";exports.AgentCard=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),O=require("react"),s=require("lucide-react"),a=require("./index151.cjs"),n=require("./index16.cjs"),T=require("./index10.cjs"),k=require("./index35.cjs"),w=require("./index14.cjs"),x=({id:i,avatar:d,title:l,description:C,timestamp:u,isMultiAgent:D=!1,onClick:c,onEdit:g,onDelete:f,availableFolders:o,onMoveToFolder:m,draggable:r=!1,isDragging:v=!1,className:N,...A})=>{const S=typeof d=="string",[h,j]=O.useState(v),q=[a.default.agentCard,c&&a.default.clickable,r&&a.default.draggable,h&&a.default.dragging,N].filter(Boolean).join(" "),y=()=>{c?.()},b=t=>{r&&(j(!0),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",i),t.dataTransfer.setData("application/json",JSON.stringify({id:i,title:l})))},z=()=>{j(!1)},B=t=>{r&&(t.preventDefault(),t.dataTransfer.dropEffect="move")},p=[...g?[{id:"edit",label:"Edit",icon:e.jsx(s.Edit,{size:16}),onClick:g}]:[],...f?[{id:"delete",label:"Delete",icon:e.jsx(s.Trash2,{size:16}),danger:!0,onClick:f}]:[],...m&&o&&o.length>0?[{id:"_move-sep",label:"",separator:!0},...o.map(t=>({id:`move-to-${t.id}`,label:t.title,icon:e.jsx(s.Folder,{size:16}),onClick:()=>m(t.id)}))]:[]];return e.jsxs(n.Card,{variant:"base",interactive:!!c,className:q,onClick:y,draggable:r,onDragStart:b,onDragEnd:z,onDragOver:B,"data-agent-id":i,"data-dragging":h,...A,children:[e.jsx(n.Card.Header,{children:e.jsxs("div",{className:a.default.headerContent,children:[S?e.jsx(T.Avatar,{src:d,alt:l,size:"lg"}):e.jsx("div",{className:a.default.iconAvatar,children:d}),e.jsxs("div",{className:a.default.headerRight,children:[D&&e.jsx("span",{className:a.default.multiBadge,children:"Multi"}),p.length>0&&e.jsx(k.Dropdown,{trigger:e.jsx(w.Button,{variant:"ghost",iconOnly:!0,size:"sm",icon:e.jsx(s.MoreVertical,{size:20}),"aria-label":"Actions",onDragStart:t=>t.stopPropagation()}),items:p,placement:"bottom-end",minWidth:140})]})]})}),e.jsxs(n.Card.Body,{children:[e.jsx("h3",{className:a.default.title,children:l}),e.jsx("p",{className:a.default.description,children:C??""})]}),u&&e.jsx(n.Card.Footer,{children:e.jsx("time",{className:a.default.timestamp,children:u})})]})};x.displayName="AgentCard";exports.AgentCard=x;
2
2
  //# sourceMappingURL=index7.cjs.map
package/dist/index7.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
2
  import { useState as B } from "react";
3
3
  import { Edit as E, Trash2 as O, Folder as T, MoreVertical as w } from "lucide-react";
4
- import a from "./index153.mjs";
4
+ import a from "./index151.mjs";
5
5
  import { Card as n } from "./index16.mjs";
6
6
  import { Avatar as I } from "./index10.mjs";
7
7
  import { Dropdown as H } from "./index35.mjs";
package/dist/index70.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),f=require("react"),g=require("lucide-react"),e=require("./index102.cjs"),m=f.forwardRef(({label:t,size:b="sm",helperText:l,error:a,className:j,id:N,disabled:d,required:r,checked:n,"aria-label":o,"aria-describedby":u,...v},x)=>{const w=f.useId(),c=N||`switch-${w}`,h=`${c}-error`,p=`${c}-helper`,i=[];a&&i.push(h),l&&!a&&i.push(p),u&&i.push(u);const y=i.length>0?i.join(" "):void 0;!(t||o)&&process.env.NODE_ENV==="development"&&console.warn("Switch: Missing accessible name. Provide either a `label` prop or `aria-label` for screen reader users.");const S=[e.default.container,e.default[b],a&&e.default.error,d&&e.default.disabled,j].filter(Boolean).join(" ");return s.jsxs("div",{className:S,children:[s.jsx("input",{ref:x,type:"checkbox",role:"switch",id:c,className:e.default.input,disabled:d,required:r,checked:n,"aria-checked":n,"aria-required":r||void 0,"aria-invalid":a?"true":void 0,"aria-describedby":y,"aria-label":t?void 0:o,...v}),s.jsxs("label",{htmlFor:c,className:e.default.labelWrapper,children:[s.jsx("span",{className:e.default.track,"aria-hidden":"true",children:s.jsx("span",{className:e.default.thumb})}),t&&s.jsxs("span",{className:e.default.label,children:[t,r&&s.jsx("span",{className:e.default.required,"aria-hidden":"true",children:"*"})]})]}),l&&!a&&s.jsx("p",{id:p,className:e.default.helperText,children:l}),a&&s.jsxs("p",{id:h,className:e.default.errorMessage,role:"alert","aria-live":"assertive",children:[s.jsx(g.AlertCircle,{size:14,"aria-hidden":"true"}),s.jsx("span",{children:a})]})]})});m.displayName="Switch";exports.Switch=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),f=require("react"),g=require("lucide-react"),e=require("./index150.cjs"),m=f.forwardRef(({label:t,size:b="sm",helperText:l,error:a,className:j,id:N,disabled:d,required:r,checked:n,"aria-label":o,"aria-describedby":u,...v},x)=>{const w=f.useId(),c=N||`switch-${w}`,h=`${c}-error`,p=`${c}-helper`,i=[];a&&i.push(h),l&&!a&&i.push(p),u&&i.push(u);const y=i.length>0?i.join(" "):void 0;!(t||o)&&process.env.NODE_ENV==="development"&&console.warn("Switch: Missing accessible name. Provide either a `label` prop or `aria-label` for screen reader users.");const S=[e.default.container,e.default[b],a&&e.default.error,d&&e.default.disabled,j].filter(Boolean).join(" ");return s.jsxs("div",{className:S,children:[s.jsx("input",{ref:x,type:"checkbox",role:"switch",id:c,className:e.default.input,disabled:d,required:r,checked:n,"aria-checked":n,"aria-required":r||void 0,"aria-invalid":a?"true":void 0,"aria-describedby":y,"aria-label":t?void 0:o,...v}),s.jsxs("label",{htmlFor:c,className:e.default.labelWrapper,children:[s.jsx("span",{className:e.default.track,"aria-hidden":"true",children:s.jsx("span",{className:e.default.thumb})}),t&&s.jsxs("span",{className:e.default.label,children:[t,r&&s.jsx("span",{className:e.default.required,"aria-hidden":"true",children:"*"})]})]}),l&&!a&&s.jsx("p",{id:p,className:e.default.helperText,children:l}),a&&s.jsxs("p",{id:h,className:e.default.errorMessage,role:"alert","aria-live":"assertive",children:[s.jsx(g.AlertCircle,{size:14,"aria-hidden":"true"}),s.jsx("span",{children:a})]})]})});m.displayName="Switch";exports.Switch=m;
2
2
  //# sourceMappingURL=index70.cjs.map
package/dist/index70.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs as n, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as j, useId as x } from "react";
3
3
  import { AlertCircle as A } from "lucide-react";
4
- import e from "./index102.mjs";
4
+ import e from "./index150.mjs";
5
5
  const B = j(
6
6
  ({
7
7
  label: r,
package/dist/index71.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),j=require("react"),t=require("./index157.cjs"),y=({columns:n,data:f,size:p="md",striped:x=!1,hoverable:N=!0,bordered:g=!1,borderless:v=!1,caption:h,emptyMessage:k="No data available",onRowClick:d,onSortChange:u,sortState:c,getRowKey:C=(b,o)=>o,className:S})=>{const[b,o]=j.useState(null),i=c||b,B=j.useCallback(e=>{if(!e.sortable)return;const s=e.key;let l="asc";i?.columnKey===s&&(i.direction==="asc"?l="desc":i.direction==="desc"&&(l=null)),c||o(l?{columnKey:s,direction:l}:null),u?.(s,l)},[i,c,u]),K=e=>{if(!e.sortable)return null;const s=i?.columnKey===e.key,l=s?i?.direction:null,r=[t.default.sortIndicator,s&&t.default.active].filter(Boolean).join(" ");return l==="asc"?a.jsx("span",{className:r,children:"▲"}):l==="desc"?a.jsx("span",{className:r,children:"▼"}):a.jsx("span",{className:r,children:"⇅"})},T=()=>a.jsx("thead",{className:t.default.thead,children:a.jsx("tr",{children:n.map(e=>{const s=[t.default.th,e.align&&t.default[`align${e.align.charAt(0).toUpperCase()}${e.align.slice(1)}`],e.sortable&&t.default.sortable].filter(Boolean).join(" "),l=e.sortable?()=>B(e):void 0;return a.jsxs("th",{className:s,style:{width:e.width},onClick:l,tabIndex:e.sortable?0:void 0,role:e.sortable?"button":void 0,"aria-sort":i?.columnKey===e.key?i.direction==="asc"?"ascending":"descending":void 0,...e.headerProps,children:[e.header,K(e)]},e.key)})})}),$=()=>f.length===0?a.jsx("tbody",{children:a.jsx("tr",{children:a.jsx("td",{colSpan:n.length,className:t.default.empty,children:k})})}):a.jsx("tbody",{className:t.default.tbody,children:f.map((e,s)=>{const l=C(e,s);return a.jsx("tr",{className:t.default.tr,onClick:d?()=>d(e,s):void 0,children:n.map(r=>{const A=[t.default.td,r.align&&t.default[`align${r.align.charAt(0).toUpperCase()}${r.align.slice(1)}`]].filter(Boolean).join(" "),P=r.cell?r.cell(e,s):e[r.key];return a.jsx("td",{className:A,...r.cellProps,children:P},r.key)})},l)})}),q=[t.default.container,t.default[p],x&&t.default.striped,N&&t.default.hoverable,d&&t.default.clickable,g&&t.default.bordered,v&&t.default.borderless,S].filter(Boolean).join(" ");return a.jsx("div",{className:q,children:a.jsxs("table",{className:t.default.table,children:[h&&a.jsx("caption",{className:t.default.caption,children:h}),T(),$()]})})};y.displayName="Table";exports.Table=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),j=require("react"),t=require("./index135.cjs"),y=({columns:n,data:f,size:p="md",striped:x=!1,hoverable:N=!0,bordered:g=!1,borderless:v=!1,caption:h,emptyMessage:k="No data available",onRowClick:d,onSortChange:u,sortState:c,getRowKey:C=(b,o)=>o,className:S})=>{const[b,o]=j.useState(null),i=c||b,B=j.useCallback(e=>{if(!e.sortable)return;const s=e.key;let l="asc";i?.columnKey===s&&(i.direction==="asc"?l="desc":i.direction==="desc"&&(l=null)),c||o(l?{columnKey:s,direction:l}:null),u?.(s,l)},[i,c,u]),K=e=>{if(!e.sortable)return null;const s=i?.columnKey===e.key,l=s?i?.direction:null,r=[t.default.sortIndicator,s&&t.default.active].filter(Boolean).join(" ");return l==="asc"?a.jsx("span",{className:r,children:"▲"}):l==="desc"?a.jsx("span",{className:r,children:"▼"}):a.jsx("span",{className:r,children:"⇅"})},T=()=>a.jsx("thead",{className:t.default.thead,children:a.jsx("tr",{children:n.map(e=>{const s=[t.default.th,e.align&&t.default[`align${e.align.charAt(0).toUpperCase()}${e.align.slice(1)}`],e.sortable&&t.default.sortable].filter(Boolean).join(" "),l=e.sortable?()=>B(e):void 0;return a.jsxs("th",{className:s,style:{width:e.width},onClick:l,tabIndex:e.sortable?0:void 0,role:e.sortable?"button":void 0,"aria-sort":i?.columnKey===e.key?i.direction==="asc"?"ascending":"descending":void 0,...e.headerProps,children:[e.header,K(e)]},e.key)})})}),$=()=>f.length===0?a.jsx("tbody",{children:a.jsx("tr",{children:a.jsx("td",{colSpan:n.length,className:t.default.empty,children:k})})}):a.jsx("tbody",{className:t.default.tbody,children:f.map((e,s)=>{const l=C(e,s);return a.jsx("tr",{className:t.default.tr,onClick:d?()=>d(e,s):void 0,children:n.map(r=>{const A=[t.default.td,r.align&&t.default[`align${r.align.charAt(0).toUpperCase()}${r.align.slice(1)}`]].filter(Boolean).join(" "),P=r.cell?r.cell(e,s):e[r.key];return a.jsx("td",{className:A,...r.cellProps,children:P},r.key)})},l)})}),q=[t.default.container,t.default[p],x&&t.default.striped,N&&t.default.hoverable,d&&t.default.clickable,g&&t.default.bordered,v&&t.default.borderless,S].filter(Boolean).join(" ");return a.jsx("div",{className:q,children:a.jsxs("table",{className:t.default.table,children:[h&&a.jsx("caption",{className:t.default.caption,children:h}),T(),$()]})})};y.displayName="Table";exports.Table=y;
2
2
  //# sourceMappingURL=index71.cjs.map
package/dist/index71.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as r, jsxs as y } from "react/jsx-runtime";
2
2
  import { useState as T, useCallback as U } from "react";
3
- import t from "./index157.mjs";
3
+ import t from "./index135.mjs";
4
4
  const u = ({
5
5
  columns: n,
6
6
  data: h,
package/dist/index72.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),t=require("./index164.cjs"),g=({tabs:i,defaultTab:T,activeTab:b,onChange:m,fullWidth:x=!1,className:v})=>{const f=b!==void 0,[j,k]=r.useState(T||i[0]?.id||""),u=r.useRef(new Map),c=f?b:j,y=e=>{f||k(e),m?.(e)},o=r.useCallback(()=>i.filter(e=>!e.disabled),[i]),d=r.useCallback(e=>{const a=o();if(a.length===0)return;const l=(e%a.length+a.length)%a.length,n=a[l];if(!n)return;u.current.get(n.id)?.focus()},[o]),C=r.useCallback((e,a)=>{const l=o(),n=l.findIndex(p=>p.id===a);switch(e.key){case"ArrowLeft":e.preventDefault(),d(n-1);break;case"ArrowRight":e.preventDefault(),d(n+1);break;case"Home":e.preventDefault(),d(0);break;case"End":e.preventDefault(),d(l.length-1);break}},[o,d]),h=i.find(e=>e.id===c),w=[t.default.container,x&&t.default.fullWidth,v].filter(Boolean).join(" ");return s.jsxs("div",{className:w,children:[s.jsx("div",{className:t.default.tabList,role:"tablist",children:i.map(e=>{const a=e.id===c,l=[t.default.tab,a&&t.default.active].filter(Boolean).join(" ");return s.jsxs("button",{ref:n=>{n?u.current.set(e.id,n):u.current.delete(e.id)},type:"button",role:"tab","aria-selected":a,"aria-controls":`panel-${e.id}`,id:`tab-${e.id}`,className:l,onClick:()=>y(e.id),onKeyDown:n=>C(n,e.id),disabled:e.disabled,tabIndex:a?0:-1,children:[e.icon&&s.jsx("span",{className:t.default.icon,children:e.icon}),s.jsx("span",{children:e.label}),e.badge!==void 0&&s.jsx("span",{className:t.default.badge,children:e.badge})]},e.id)})}),h&&s.jsx("div",{className:t.default.panel,role:"tabpanel",id:`panel-${c}`,"aria-labelledby":`tab-${c}`,children:h.content},c)]})};g.displayName="Tabs";exports.Tabs=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),t=require("./index170.cjs"),g=({tabs:i,defaultTab:T,activeTab:b,onChange:m,fullWidth:x=!1,className:v})=>{const f=b!==void 0,[j,k]=r.useState(T||i[0]?.id||""),u=r.useRef(new Map),c=f?b:j,y=e=>{f||k(e),m?.(e)},o=r.useCallback(()=>i.filter(e=>!e.disabled),[i]),d=r.useCallback(e=>{const a=o();if(a.length===0)return;const l=(e%a.length+a.length)%a.length,n=a[l];if(!n)return;u.current.get(n.id)?.focus()},[o]),C=r.useCallback((e,a)=>{const l=o(),n=l.findIndex(p=>p.id===a);switch(e.key){case"ArrowLeft":e.preventDefault(),d(n-1);break;case"ArrowRight":e.preventDefault(),d(n+1);break;case"Home":e.preventDefault(),d(0);break;case"End":e.preventDefault(),d(l.length-1);break}},[o,d]),h=i.find(e=>e.id===c),w=[t.default.container,x&&t.default.fullWidth,v].filter(Boolean).join(" ");return s.jsxs("div",{className:w,children:[s.jsx("div",{className:t.default.tabList,role:"tablist",children:i.map(e=>{const a=e.id===c,l=[t.default.tab,a&&t.default.active].filter(Boolean).join(" ");return s.jsxs("button",{ref:n=>{n?u.current.set(e.id,n):u.current.delete(e.id)},type:"button",role:"tab","aria-selected":a,"aria-controls":`panel-${e.id}`,id:`tab-${e.id}`,className:l,onClick:()=>y(e.id),onKeyDown:n=>C(n,e.id),disabled:e.disabled,tabIndex:a?0:-1,children:[e.icon&&s.jsx("span",{className:t.default.icon,children:e.icon}),s.jsx("span",{children:e.label}),e.badge!==void 0&&s.jsx("span",{className:t.default.badge,children:e.badge})]},e.id)})}),h&&s.jsx("div",{className:t.default.panel,role:"tabpanel",id:`panel-${c}`,"aria-labelledby":`tab-${c}`,children:h.content},c)]})};g.displayName="Tabs";exports.Tabs=g;
2
2
  //# sourceMappingURL=index72.cjs.map
package/dist/index72.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsxs as m, jsx as c } from "react/jsx-runtime";
2
2
  import { useState as C, useRef as I, useCallback as b } from "react";
3
- import t from "./index164.mjs";
3
+ import t from "./index170.mjs";
4
4
  const j = ({
5
5
  tabs: i,
6
6
  defaultTab: g,
package/dist/index73.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),_=require("lucide-react"),e=require("./index134.cjs"),$=c.forwardRef(({label:o,helperText:d,error:t,size:T="md",resize:p="vertical",showCounter:u=!1,maxLength:r,className:q,id:A,value:s,defaultValue:f,onChange:m,disabled:j,required:h,optional:g=!1,"aria-label":x,"aria-describedby":N,...B},E)=>{const R=c.useId(),n=A||`textarea-${R}`,b=`${n}-error`,v=`${n}-helper`,C=`${n}-counter`,[S,I]=c.useState(()=>s!==void 0?String(s).length:f!==void 0?String(f).length:0);c.useEffect(()=>{s!==void 0&&I(String(s).length)},[s]);const w=c.useCallback(l=>{I(l.target.value.length),m?.(l)},[m]),i=[];t&&i.push(b),d&&!t&&i.push(v),u&&r&&i.push(C),N&&i.push(N);const M=i.length>0?i.join(" "):void 0;!(o||x)&&process.env.NODE_ENV==="development"&&console.warn("Textarea: Missing accessible name. Provide either a `label` prop or `aria-label` for screen reader users.");const y=(()=>{if(!r)return"normal";const l=S/r*100;return l>=100?"error":l>=90?"warning":"normal"})(),F=[e.default.counter,y==="warning"&&e.default.counterWarning,y==="error"&&e.default.counterError].filter(Boolean).join(" "),O=[e.default.container,e.default[T],e.default[`resize${p.charAt(0).toUpperCase()}${p.slice(1)}`],t&&e.default.error,j&&e.default.disabled,q].filter(Boolean).join(" "),P=u||d&&!t;return a.jsxs("div",{className:O,children:[o&&a.jsxs("label",{htmlFor:n,className:e.default.label,children:[a.jsx("span",{className:e.default.labelText,children:o}),g&&a.jsx("span",{className:e.default.optional,"aria-hidden":"true",children:"(optional)"}),h&&!g&&a.jsx("span",{className:e.default.required,"aria-hidden":"true",children:"*"})]}),a.jsx("textarea",{ref:E,id:n,className:e.default.textarea,value:s,defaultValue:f,maxLength:r,onChange:w,disabled:j,required:h,"aria-required":h||void 0,"aria-invalid":t?"true":"false","aria-describedby":M,"aria-label":o?void 0:x,...B}),P&&a.jsxs("div",{className:e.default.footer,children:[d&&!t&&a.jsx("p",{id:v,className:e.default.helperText,children:d}),u&&r&&a.jsxs("span",{id:C,className:F,"aria-live":"polite","aria-atomic":"true",children:[S,"/",r]})]}),t&&a.jsxs("p",{id:b,className:e.default.errorMessage,role:"alert","aria-live":"assertive",children:[a.jsx(_.AlertCircle,{size:14,"aria-hidden":"true"}),a.jsx("span",{children:t})]})]})});$.displayName="Textarea";exports.Textarea=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),_=require("lucide-react"),e=require("./index130.cjs"),$=c.forwardRef(({label:o,helperText:d,error:t,size:T="md",resize:p="vertical",showCounter:u=!1,maxLength:r,className:q,id:A,value:s,defaultValue:f,onChange:m,disabled:j,required:h,optional:g=!1,"aria-label":x,"aria-describedby":N,...B},E)=>{const R=c.useId(),n=A||`textarea-${R}`,b=`${n}-error`,v=`${n}-helper`,C=`${n}-counter`,[S,I]=c.useState(()=>s!==void 0?String(s).length:f!==void 0?String(f).length:0);c.useEffect(()=>{s!==void 0&&I(String(s).length)},[s]);const w=c.useCallback(l=>{I(l.target.value.length),m?.(l)},[m]),i=[];t&&i.push(b),d&&!t&&i.push(v),u&&r&&i.push(C),N&&i.push(N);const M=i.length>0?i.join(" "):void 0;!(o||x)&&process.env.NODE_ENV==="development"&&console.warn("Textarea: Missing accessible name. Provide either a `label` prop or `aria-label` for screen reader users.");const y=(()=>{if(!r)return"normal";const l=S/r*100;return l>=100?"error":l>=90?"warning":"normal"})(),F=[e.default.counter,y==="warning"&&e.default.counterWarning,y==="error"&&e.default.counterError].filter(Boolean).join(" "),O=[e.default.container,e.default[T],e.default[`resize${p.charAt(0).toUpperCase()}${p.slice(1)}`],t&&e.default.error,j&&e.default.disabled,q].filter(Boolean).join(" "),P=u||d&&!t;return a.jsxs("div",{className:O,children:[o&&a.jsxs("label",{htmlFor:n,className:e.default.label,children:[a.jsx("span",{className:e.default.labelText,children:o}),g&&a.jsx("span",{className:e.default.optional,"aria-hidden":"true",children:"(optional)"}),h&&!g&&a.jsx("span",{className:e.default.required,"aria-hidden":"true",children:"*"})]}),a.jsx("textarea",{ref:E,id:n,className:e.default.textarea,value:s,defaultValue:f,maxLength:r,onChange:w,disabled:j,required:h,"aria-required":h||void 0,"aria-invalid":t?"true":"false","aria-describedby":M,"aria-label":o?void 0:x,...B}),P&&a.jsxs("div",{className:e.default.footer,children:[d&&!t&&a.jsx("p",{id:v,className:e.default.helperText,children:d}),u&&r&&a.jsxs("span",{id:C,className:F,"aria-live":"polite","aria-atomic":"true",children:[S,"/",r]})]}),t&&a.jsxs("p",{id:b,className:e.default.errorMessage,role:"alert","aria-live":"assertive",children:[a.jsx(_.AlertCircle,{size:14,"aria-hidden":"true"}),a.jsx("span",{children:t})]})]})});$.displayName="Textarea";exports.Textarea=$;
2
2
  //# sourceMappingURL=index73.cjs.map
package/dist/index73.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs as c, jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as O, useId as P, useState as R, useEffect as U, useCallback as W } from "react";
3
3
  import { AlertCircle as _ } from "lucide-react";
4
- import e from "./index134.mjs";
4
+ import e from "./index130.mjs";
5
5
  const q = O(
6
6
  ({
7
7
  label: l,
package/dist/index75.cjs CHANGED
@@ -1,17 +1,14 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),o=require("react"),y=require("./index94.cjs"),i=require("./index4.cjs"),S=require("./index41.cjs"),h=o.createContext(void 0);function C(){return typeof window>"u"?!0:getComputedStyle(document.documentElement).getPropertyValue("--orion-react-styles-loaded").trim()==="1"}function P({children:t,defaultTheme:r,defaultBrand:d,options:p,disableFontWarnings:c=!1,disableAutoFontLoading:T=!1,disableCSSWarnings:u=!1}){const v={...p,...r!==void 0&&{defaultTheme:r},...d!==void 0&&{defaultBrand:d}},n=y.useTheme(v),m=o.useRef(new Set),a=o.useRef(!1);return o.useEffect(()=>{if(u||typeof window>"u"||!(process.env.NODE_ENV==="development"||window.location.hostname==="localhost"))return;const s=setTimeout(()=>{!a.current&&!C()&&(a.current=!0,console.warn(`[Orion] Component styles not detected!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),o=require("react"),g=require("./index94.cjs"),i=require("./index4.cjs"),S=require("./index41.cjs"),h=o.createContext(void 0);function P(){return typeof window>"u"?!0:getComputedStyle(document.documentElement).getPropertyValue("--orion-react-styles-loaded").trim()==="1"}function O({children:t,defaultTheme:r,defaultBrand:d,options:p,disableFontWarnings:c=!1,disableAutoFontLoading:T=!1,disableCSSWarnings:u=!1}){const v={...p,...r!==void 0&&{defaultTheme:r},...d!==void 0&&{defaultBrand:d}},n=g.useTheme(v),a=o.useRef(new Set),m=o.useRef(!1);return o.useEffect(()=>{if(u||typeof window>"u"||!(process.env.NODE_ENV==="development"||window.location.hostname==="localhost"))return;const s=setTimeout(()=>{!m.current&&!P()&&(m.current=!0,console.warn(`[Orion] Component styles not detected!
2
2
 
3
3
  You must import the component CSS file:
4
4
 
5
- import '@orion-ds/react/dist/react.css';
5
+ import '@orion-ds/react/styles.css'; // Single import includes all styles
6
6
 
7
- Add this import alongside the theme CSS in your app entry file:
7
+ Add this import in your app entry file. It includes both design tokens and component styles.
8
8
 
9
- import '@orion-ds/core/theme.css'; // Design tokens
10
- import '@orion-ds/react/dist/react.css'; // Component styles
9
+ To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`))},100);return()=>clearTimeout(s)},[u]),o.useEffect(()=>{if(c||typeof window>"u"||!(process.env.NODE_ENV==="development"||typeof window<"u"&&window.location.hostname==="localhost"))return;const s=setTimeout(()=>{const{brand:e}=n,l=i.getMissingFonts(e);if(l.length>0&&!a.current.has(e)){a.current.add(e);const w=i.BRAND_FONTS[e].join(", ");console.warn(`[Orion] Missing fonts for "${e}" brand: ${l.join(", ")}
11
10
 
12
- To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`))},100);return()=>clearTimeout(s)},[u]),o.useEffect(()=>{if(c||typeof window>"u"||!(process.env.NODE_ENV==="development"||typeof window<"u"&&window.location.hostname==="localhost"))return;const s=setTimeout(()=>{const{brand:e}=n,f=i.getMissingFonts(e);if(f.length>0&&!m.current.has(e)){m.current.add(e);const g=i.BRAND_FONTS[e].join(", ");console.warn(`[Orion] Missing fonts for "${e}" brand: ${f.join(", ")}
13
-
14
- The "${e}" brand requires these fonts: ${g}
11
+ The "${e}" brand requires these fonts: ${w}
15
12
 
16
13
  To fix this, add one of the following to your app:
17
14
 
@@ -27,7 +24,7 @@ Option 2: Add Google Fonts to your HTML <head>
27
24
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
28
25
  <link href="${i.GOOGLE_FONTS_URL}" rel="stylesheet">
29
26
 
30
- To disable this warning, set disableFontWarnings={true} on ThemeProvider.`)}},1e3);return()=>clearTimeout(s)},[n.brand,c,n]),l.jsxs(h.Provider,{value:n,children:[!T&&l.jsx(S.FontLoader,{}),t]})}function O(){const t=o.useContext(h);if(t===void 0)throw new Error(`❌ useTheme() must be used inside <ThemeProvider>
27
+ To disable this warning, set disableFontWarnings={true} on ThemeProvider.`)}},1e3);return()=>clearTimeout(s)},[n.brand,c,n]),f.jsxs(h.Provider,{value:n,children:[!T&&f.jsx(S.FontLoader,{}),t]})}function x(){const t=o.useContext(h);if(t===void 0)throw new Error(`❌ useTheme() must be used inside <ThemeProvider>
31
28
 
32
29
  Solution:
33
30
  Wrap your app with ThemeProvider:
@@ -38,5 +35,5 @@ export default function App() {
38
35
  <YourComponents />
39
36
  </ThemeProvider>
40
37
  );
41
- }`);return t}exports.ThemeProvider=P;exports.useThemeContext=O;
38
+ }`);return t}exports.ThemeProvider=O;exports.useThemeContext=x;
42
39
  //# sourceMappingURL=index75.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index75.cjs","sources":["../src/contexts/ThemeContext.tsx"],"sourcesContent":["/**\n * Theme Context\n *\n * Provides global theme and brand state to all components.\n * This ensures consistent theming across the entire application.\n *\n * Fonts are loaded automatically by default. No need to add <FontLoader /> manually.\n *\n * @example\n * ```tsx\n * // App.tsx\n * import { ThemeProvider } from '@orion/react';\n *\n * export default function App() {\n * return (\n * <ThemeProvider>\n * <YourComponents />\n * </ThemeProvider>\n * );\n * }\n *\n * // Inside any component\n * import { useTheme } from '@orion/react';\n *\n * function MyComponent() {\n * const { theme, brand } = useTheme();\n * return <div>Current: {theme} / {brand}</div>;\n * }\n *\n * // To disable automatic font loading:\n * <ThemeProvider disableAutoFontLoading>\n * <YourComponents />\n * </ThemeProvider>\n * ```\n */\n\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n type ReactNode,\n} from \"react\";\nimport {\n useTheme as useThemeHook,\n type UseThemeOptions,\n type UseThemeReturn,\n} from \"../hooks/useTheme\";\nimport { getMissingFonts, GOOGLE_FONTS_URL, BRAND_FONTS } from \"../utils/fonts\";\nimport { FontLoader } from \"../components/FontLoader\";\n\n/**\n * Theme Context - provides theme and brand state globally\n */\nconst ThemeContext = createContext<UseThemeReturn | undefined>(undefined);\n\n/**\n * Check if component styles (react.css) are loaded\n * Uses a CSS custom property marker set in styles/marker.css\n */\nfunction checkComponentStylesLoaded(): boolean {\n if (typeof window === \"undefined\") return true;\n\n const styles = getComputedStyle(document.documentElement);\n const marker = styles.getPropertyValue(\"--orion-react-styles-loaded\");\n return marker.trim() === \"1\";\n}\n\n/**\n * Theme Provider Props\n */\nexport interface ThemeProviderProps {\n /**\n * Child components\n */\n children: ReactNode;\n\n /**\n * Default theme\n * @default 'light'\n */\n defaultTheme?: \"light\" | \"dark\";\n\n /**\n * Default brand\n * @default 'orion'\n */\n defaultBrand?: \"orion\" | \"red\" | \"deepblue\" | \"orange\" | \"lemon\";\n\n /**\n * Theme options (see useTheme for full options)\n * @deprecated Use flat props (defaultTheme, defaultBrand) instead.\n */\n options?: UseThemeOptions;\n\n /**\n * Disable font loading warnings in development\n * @default false\n */\n disableFontWarnings?: boolean;\n\n /**\n * Disable automatic font loading via FontLoader\n * When false (default), fonts are loaded automatically.\n * Set to true if you want to manage font loading manually.\n * @default false\n */\n disableAutoFontLoading?: boolean;\n\n /**\n * Disable CSS import warnings in development\n * When false (default), a warning is shown if react.css is not imported.\n * @default false\n */\n disableCSSWarnings?: boolean;\n}\n\n/**\n * ThemeProvider Component\n *\n * Wraps your application to provide global theme and brand state.\n * Must be placed near the root of your application.\n */\nexport function ThemeProvider({\n children,\n defaultTheme,\n defaultBrand,\n options,\n disableFontWarnings = false,\n disableAutoFontLoading = false,\n disableCSSWarnings = false,\n}: ThemeProviderProps) {\n // Merge flat props with options (flat props take precedence)\n const mergedOptions: UseThemeOptions = {\n ...options,\n ...(defaultTheme !== undefined && { defaultTheme }),\n ...(defaultBrand !== undefined && { defaultBrand }),\n };\n\n const themeState = useThemeHook(mergedOptions);\n const hasWarnedRef = useRef<Set<string>>(new Set());\n const hasWarnedCSSRef = useRef(false);\n\n // Check for missing component styles (react.css) in development\n useEffect(() => {\n if (disableCSSWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n window.location.hostname === \"localhost\";\n\n if (!isDev) return;\n\n // Check after a short delay to allow CSS to load\n const timeoutId = setTimeout(() => {\n if (!hasWarnedCSSRef.current && !checkComponentStylesLoaded()) {\n hasWarnedCSSRef.current = true;\n\n console.warn(\n `[Orion] Component styles not detected!\\n\\n` +\n `You must import the component CSS file:\\n\\n` +\n ` import '@orion-ds/react/dist/react.css';\\n\\n` +\n `Add this import alongside the theme CSS in your app entry file:\\n\\n` +\n ` import '@orion-ds/core/theme.css'; // Design tokens\\n` +\n ` import '@orion-ds/react/dist/react.css'; // Component styles\\n\\n` +\n `To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`,\n );\n }\n }, 100);\n\n return () => clearTimeout(timeoutId);\n }, [disableCSSWarnings]);\n\n // Check for missing fonts in development\n useEffect(() => {\n if (disableFontWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n (typeof window !== \"undefined\" &&\n window.location.hostname === \"localhost\");\n\n if (!isDev) return;\n\n // Wait a bit for fonts to potentially load\n const timeoutId = setTimeout(() => {\n const { brand } = themeState;\n const missingFonts = getMissingFonts(brand);\n\n if (missingFonts.length > 0 && !hasWarnedRef.current.has(brand)) {\n hasWarnedRef.current.add(brand);\n\n const fontsNeeded = BRAND_FONTS[brand].join(\", \");\n\n console.warn(\n `[Orion] Missing fonts for \"${brand}\" brand: ${missingFonts.join(\", \")}\\n\\n` +\n `The \"${brand}\" brand requires these fonts: ${fontsNeeded}\\n\\n` +\n `To fix this, add one of the following to your app:\\n\\n` +\n `Option 1: Use <FontLoader /> component (recommended)\\n` +\n ` import { FontLoader } from '@orion-ds/react';\\n` +\n ` <ThemeProvider>\\n` +\n ` <FontLoader />\\n` +\n ` <App />\\n` +\n ` </ThemeProvider>\\n\\n` +\n `Option 2: Add Google Fonts to your HTML <head>\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\\n` +\n ` <link href=\"${GOOGLE_FONTS_URL}\" rel=\"stylesheet\">\\n\\n` +\n `To disable this warning, set disableFontWarnings={true} on ThemeProvider.`,\n );\n }\n }, 1000);\n\n return () => clearTimeout(timeoutId);\n }, [themeState.brand, disableFontWarnings, themeState]);\n\n return (\n <ThemeContext.Provider value={themeState}>\n {!disableAutoFontLoading && <FontLoader />}\n {children}\n </ThemeContext.Provider>\n );\n}\n\n/**\n * Hook to access global theme state\n *\n * ⚠️ IMPORTANT: Must be used inside a ThemeProvider\n *\n * @throws Error if used outside ThemeProvider\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { theme, brand, setTheme, setBrand } = useTheme();\n * // Components automatically inherit theme/brand from <html> attributes\n * // DO NOT pass brand prop to components - it's applied globally!\n * }\n * ```\n */\nexport function useThemeContext(): UseThemeReturn {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\n \"❌ useTheme() must be used inside <ThemeProvider>\\n\\n\" +\n \"Solution:\\n\" +\n \"Wrap your app with ThemeProvider:\\n\\n\" +\n \"export default function App() {\\n\" +\n \" return (\\n\" +\n \" <ThemeProvider>\\n\" +\n \" <YourComponents />\\n\" +\n \" </ThemeProvider>\\n\" +\n \" );\\n\" +\n \"}\",\n );\n }\n\n return context;\n}\n"],"names":["ThemeContext","createContext","checkComponentStylesLoaded","ThemeProvider","children","defaultTheme","defaultBrand","options","disableFontWarnings","disableAutoFontLoading","disableCSSWarnings","mergedOptions","themeState","useThemeHook","hasWarnedRef","useRef","hasWarnedCSSRef","useEffect","timeoutId","brand","missingFonts","getMissingFonts","fontsNeeded","BRAND_FONTS","GOOGLE_FONTS_URL","jsxs","FontLoader","useThemeContext","context","useContext"],"mappings":"wNAsDMA,EAAeC,EAAAA,cAA0C,MAAS,EAMxE,SAASC,GAAsC,CAC7C,OAAI,OAAO,OAAW,IAAoB,GAE3B,iBAAiB,SAAS,eAAe,EAClC,iBAAiB,6BAA6B,EACtD,SAAW,GAC3B,CAyDO,SAASC,EAAc,CAC5B,SAAAC,EACA,aAAAC,EACA,aAAAC,EACA,QAAAC,EACA,oBAAAC,EAAsB,GACtB,uBAAAC,EAAyB,GACzB,mBAAAC,EAAqB,EACvB,EAAuB,CAErB,MAAMC,EAAiC,CACrC,GAAGJ,EACH,GAAIF,IAAiB,QAAa,CAAE,aAAAA,CAAA,EACpC,GAAIC,IAAiB,QAAa,CAAE,aAAAA,CAAA,CAAa,EAG7CM,EAAaC,EAAAA,SAAaF,CAAa,EACvCG,EAAeC,EAAAA,OAAoB,IAAI,GAAK,EAC5CC,EAAkBD,EAAAA,OAAO,EAAK,EAGpCE,OAAAA,EAAAA,UAAU,IAAM,CAQd,GAPIP,GAAsB,OAAO,OAAW,KAOxC,EAHF,QAAQ,IAAI,WAAa,eACzB,OAAO,SAAS,WAAa,aAEnB,OAGZ,MAAMQ,EAAY,WAAW,IAAM,CAC7B,CAACF,EAAgB,SAAW,CAACd,MAC/Bc,EAAgB,QAAU,GAE1B,QAAQ,KACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yEAAA,EASN,EAAG,GAAG,EAEN,MAAO,IAAM,aAAaE,CAAS,CACrC,EAAG,CAACR,CAAkB,CAAC,EAGvBO,EAAAA,UAAU,IAAM,CASd,GARIT,GAAuB,OAAO,OAAW,KAQzC,EAJF,QAAQ,IAAI,WAAa,eACxB,OAAO,OAAW,KACjB,OAAO,SAAS,WAAa,aAErB,OAGZ,MAAMU,EAAY,WAAW,IAAM,CACjC,KAAM,CAAE,MAAAC,GAAUP,EACZQ,EAAeC,EAAAA,gBAAgBF,CAAK,EAE1C,GAAIC,EAAa,OAAS,GAAK,CAACN,EAAa,QAAQ,IAAIK,CAAK,EAAG,CAC/DL,EAAa,QAAQ,IAAIK,CAAK,EAE9B,MAAMG,EAAcC,EAAAA,YAAYJ,CAAK,EAAE,KAAK,IAAI,EAEhD,QAAQ,KACN,8BAA8BA,CAAK,YAAYC,EAAa,KAAK,IAAI,CAAC;AAAA;AAAA,OAC5DD,CAAK,iCAAiCG,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAWxCE,kBAAgB;AAAA;AAAA,0EAAA,CAGvC,CACF,EAAG,GAAI,EAEP,MAAO,IAAM,aAAaN,CAAS,CACrC,EAAG,CAACN,EAAW,MAAOJ,EAAqBI,CAAU,CAAC,EAGpDa,EAAAA,KAACzB,EAAa,SAAb,CAAsB,MAAOY,EAC3B,SAAA,CAAA,CAACH,SAA2BiB,EAAAA,WAAA,EAAW,EACvCtB,CAAA,EACH,CAEJ,CAkBO,SAASuB,GAAkC,CAChD,MAAMC,EAAUC,EAAAA,WAAW7B,CAAY,EAEvC,GAAI4B,IAAY,OACd,MAAM,IAAI,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,EAaJ,OAAOA,CACT"}
1
+ {"version":3,"file":"index75.cjs","sources":["../src/contexts/ThemeContext.tsx"],"sourcesContent":["/**\n * Theme Context\n *\n * Provides global theme and brand state to all components.\n * This ensures consistent theming across the entire application.\n *\n * Fonts are loaded automatically by default. No need to add <FontLoader /> manually.\n *\n * @example\n * ```tsx\n * // App.tsx\n * import { ThemeProvider } from '@orion/react';\n *\n * export default function App() {\n * return (\n * <ThemeProvider>\n * <YourComponents />\n * </ThemeProvider>\n * );\n * }\n *\n * // Inside any component\n * import { useTheme } from '@orion/react';\n *\n * function MyComponent() {\n * const { theme, brand } = useTheme();\n * return <div>Current: {theme} / {brand}</div>;\n * }\n *\n * // To disable automatic font loading:\n * <ThemeProvider disableAutoFontLoading>\n * <YourComponents />\n * </ThemeProvider>\n * ```\n */\n\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n type ReactNode,\n} from \"react\";\nimport {\n useTheme as useThemeHook,\n type UseThemeOptions,\n type UseThemeReturn,\n} from \"../hooks/useTheme\";\nimport { getMissingFonts, GOOGLE_FONTS_URL, BRAND_FONTS } from \"../utils/fonts\";\nimport { FontLoader } from \"../components/FontLoader\";\n\n/**\n * Theme Context - provides theme and brand state globally\n */\nconst ThemeContext = createContext<UseThemeReturn | undefined>(undefined);\n\n/**\n * Check if component styles (react.css) are loaded\n * Uses a CSS custom property marker set in styles/marker.css\n */\nfunction checkComponentStylesLoaded(): boolean {\n if (typeof window === \"undefined\") return true;\n\n const styles = getComputedStyle(document.documentElement);\n const marker = styles.getPropertyValue(\"--orion-react-styles-loaded\");\n return marker.trim() === \"1\";\n}\n\n/**\n * Theme Provider Props\n */\nexport interface ThemeProviderProps {\n /**\n * Child components\n */\n children: ReactNode;\n\n /**\n * Default theme\n * @default 'light'\n */\n defaultTheme?: \"light\" | \"dark\";\n\n /**\n * Default brand\n * @default 'orion'\n */\n defaultBrand?: \"orion\" | \"red\" | \"deepblue\" | \"orange\" | \"lemon\";\n\n /**\n * Theme options (see useTheme for full options)\n * @deprecated Use flat props (defaultTheme, defaultBrand) instead.\n */\n options?: UseThemeOptions;\n\n /**\n * Disable font loading warnings in development\n * @default false\n */\n disableFontWarnings?: boolean;\n\n /**\n * Disable automatic font loading via FontLoader\n * When false (default), fonts are loaded automatically.\n * Set to true if you want to manage font loading manually.\n * @default false\n */\n disableAutoFontLoading?: boolean;\n\n /**\n * Disable CSS import warnings in development\n * When false (default), a warning is shown if react.css is not imported.\n * @default false\n */\n disableCSSWarnings?: boolean;\n}\n\n/**\n * ThemeProvider Component\n *\n * Wraps your application to provide global theme and brand state.\n * Must be placed near the root of your application.\n */\nexport function ThemeProvider({\n children,\n defaultTheme,\n defaultBrand,\n options,\n disableFontWarnings = false,\n disableAutoFontLoading = false,\n disableCSSWarnings = false,\n}: ThemeProviderProps) {\n // Merge flat props with options (flat props take precedence)\n const mergedOptions: UseThemeOptions = {\n ...options,\n ...(defaultTheme !== undefined && { defaultTheme }),\n ...(defaultBrand !== undefined && { defaultBrand }),\n };\n\n const themeState = useThemeHook(mergedOptions);\n const hasWarnedRef = useRef<Set<string>>(new Set());\n const hasWarnedCSSRef = useRef(false);\n\n // Check for missing component styles (react.css) in development\n useEffect(() => {\n if (disableCSSWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n window.location.hostname === \"localhost\";\n\n if (!isDev) return;\n\n // Check after a short delay to allow CSS to load\n const timeoutId = setTimeout(() => {\n if (!hasWarnedCSSRef.current && !checkComponentStylesLoaded()) {\n hasWarnedCSSRef.current = true;\n\n console.warn(\n `[Orion] Component styles not detected!\\n\\n` +\n `You must import the component CSS file:\\n\\n` +\n ` import '@orion-ds/react/styles.css'; // Single import includes all styles\\n\\n` +\n `Add this import in your app entry file. It includes both design tokens and component styles.\\n\\n` +\n `To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`,\n );\n }\n }, 100);\n\n return () => clearTimeout(timeoutId);\n }, [disableCSSWarnings]);\n\n // Check for missing fonts in development\n useEffect(() => {\n if (disableFontWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n (typeof window !== \"undefined\" &&\n window.location.hostname === \"localhost\");\n\n if (!isDev) return;\n\n // Wait a bit for fonts to potentially load\n const timeoutId = setTimeout(() => {\n const { brand } = themeState;\n const missingFonts = getMissingFonts(brand);\n\n if (missingFonts.length > 0 && !hasWarnedRef.current.has(brand)) {\n hasWarnedRef.current.add(brand);\n\n const fontsNeeded = BRAND_FONTS[brand].join(\", \");\n\n console.warn(\n `[Orion] Missing fonts for \"${brand}\" brand: ${missingFonts.join(\", \")}\\n\\n` +\n `The \"${brand}\" brand requires these fonts: ${fontsNeeded}\\n\\n` +\n `To fix this, add one of the following to your app:\\n\\n` +\n `Option 1: Use <FontLoader /> component (recommended)\\n` +\n ` import { FontLoader } from '@orion-ds/react';\\n` +\n ` <ThemeProvider>\\n` +\n ` <FontLoader />\\n` +\n ` <App />\\n` +\n ` </ThemeProvider>\\n\\n` +\n `Option 2: Add Google Fonts to your HTML <head>\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\\n` +\n ` <link href=\"${GOOGLE_FONTS_URL}\" rel=\"stylesheet\">\\n\\n` +\n `To disable this warning, set disableFontWarnings={true} on ThemeProvider.`,\n );\n }\n }, 1000);\n\n return () => clearTimeout(timeoutId);\n }, [themeState.brand, disableFontWarnings, themeState]);\n\n return (\n <ThemeContext.Provider value={themeState}>\n {!disableAutoFontLoading && <FontLoader />}\n {children}\n </ThemeContext.Provider>\n );\n}\n\n/**\n * Hook to access global theme state\n *\n * ⚠️ IMPORTANT: Must be used inside a ThemeProvider\n *\n * @throws Error if used outside ThemeProvider\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { theme, brand, setTheme, setBrand } = useTheme();\n * // Components automatically inherit theme/brand from <html> attributes\n * // DO NOT pass brand prop to components - it's applied globally!\n * }\n * ```\n */\nexport function useThemeContext(): UseThemeReturn {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\n \"❌ useTheme() must be used inside <ThemeProvider>\\n\\n\" +\n \"Solution:\\n\" +\n \"Wrap your app with ThemeProvider:\\n\\n\" +\n \"export default function App() {\\n\" +\n \" return (\\n\" +\n \" <ThemeProvider>\\n\" +\n \" <YourComponents />\\n\" +\n \" </ThemeProvider>\\n\" +\n \" );\\n\" +\n \"}\",\n );\n }\n\n return context;\n}\n"],"names":["ThemeContext","createContext","checkComponentStylesLoaded","ThemeProvider","children","defaultTheme","defaultBrand","options","disableFontWarnings","disableAutoFontLoading","disableCSSWarnings","mergedOptions","themeState","useThemeHook","hasWarnedRef","useRef","hasWarnedCSSRef","useEffect","timeoutId","brand","missingFonts","getMissingFonts","fontsNeeded","BRAND_FONTS","GOOGLE_FONTS_URL","jsxs","FontLoader","useThemeContext","context","useContext"],"mappings":"wNAsDMA,EAAeC,EAAAA,cAA0C,MAAS,EAMxE,SAASC,GAAsC,CAC7C,OAAI,OAAO,OAAW,IAAoB,GAE3B,iBAAiB,SAAS,eAAe,EAClC,iBAAiB,6BAA6B,EACtD,SAAW,GAC3B,CAyDO,SAASC,EAAc,CAC5B,SAAAC,EACA,aAAAC,EACA,aAAAC,EACA,QAAAC,EACA,oBAAAC,EAAsB,GACtB,uBAAAC,EAAyB,GACzB,mBAAAC,EAAqB,EACvB,EAAuB,CAErB,MAAMC,EAAiC,CACrC,GAAGJ,EACH,GAAIF,IAAiB,QAAa,CAAE,aAAAA,CAAA,EACpC,GAAIC,IAAiB,QAAa,CAAE,aAAAA,CAAA,CAAa,EAG7CM,EAAaC,EAAAA,SAAaF,CAAa,EACvCG,EAAeC,EAAAA,OAAoB,IAAI,GAAK,EAC5CC,EAAkBD,EAAAA,OAAO,EAAK,EAGpCE,OAAAA,EAAAA,UAAU,IAAM,CAQd,GAPIP,GAAsB,OAAO,OAAW,KAOxC,EAHF,QAAQ,IAAI,WAAa,eACzB,OAAO,SAAS,WAAa,aAEnB,OAGZ,MAAMQ,EAAY,WAAW,IAAM,CAC7B,CAACF,EAAgB,SAAW,CAACd,MAC/Bc,EAAgB,QAAU,GAE1B,QAAQ,KACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yEAAA,EAON,EAAG,GAAG,EAEN,MAAO,IAAM,aAAaE,CAAS,CACrC,EAAG,CAACR,CAAkB,CAAC,EAGvBO,EAAAA,UAAU,IAAM,CASd,GARIT,GAAuB,OAAO,OAAW,KAQzC,EAJF,QAAQ,IAAI,WAAa,eACxB,OAAO,OAAW,KACjB,OAAO,SAAS,WAAa,aAErB,OAGZ,MAAMU,EAAY,WAAW,IAAM,CACjC,KAAM,CAAE,MAAAC,GAAUP,EACZQ,EAAeC,EAAAA,gBAAgBF,CAAK,EAE1C,GAAIC,EAAa,OAAS,GAAK,CAACN,EAAa,QAAQ,IAAIK,CAAK,EAAG,CAC/DL,EAAa,QAAQ,IAAIK,CAAK,EAE9B,MAAMG,EAAcC,EAAAA,YAAYJ,CAAK,EAAE,KAAK,IAAI,EAEhD,QAAQ,KACN,8BAA8BA,CAAK,YAAYC,EAAa,KAAK,IAAI,CAAC;AAAA;AAAA,OAC5DD,CAAK,iCAAiCG,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAWxCE,kBAAgB;AAAA;AAAA,0EAAA,CAGvC,CACF,EAAG,GAAI,EAEP,MAAO,IAAM,aAAaN,CAAS,CACrC,EAAG,CAACN,EAAW,MAAOJ,EAAqBI,CAAU,CAAC,EAGpDa,EAAAA,KAACzB,EAAa,SAAb,CAAsB,MAAOY,EAC3B,SAAA,CAAA,CAACH,SAA2BiB,EAAAA,WAAA,EAAW,EACvCtB,CAAA,EACH,CAEJ,CAkBO,SAASuB,GAAkC,CAChD,MAAMC,EAAUC,EAAAA,WAAW7B,CAAY,EAEvC,GAAI4B,IAAY,OACd,MAAM,IAAI,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,EAaJ,OAAOA,CACT"}
package/dist/index75.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { jsxs as g, jsx as y } from "react/jsx-runtime";
2
- import { useRef as a, useEffect as f, useContext as S, createContext as C } from "react";
3
- import { useTheme as O } from "./index94.mjs";
4
- import { getMissingFonts as P, BRAND_FONTS as x, GOOGLE_FONTS_URL as F } from "./index4.mjs";
5
- import { FontLoader as D } from "./index41.mjs";
6
- const p = C(void 0);
1
+ import { jsxs as y, jsx as g } from "react/jsx-runtime";
2
+ import { useRef as a, useEffect as l, useContext as S, createContext as O } from "react";
3
+ import { useTheme as P } from "./index94.mjs";
4
+ import { getMissingFonts as x, BRAND_FONTS as C, GOOGLE_FONTS_URL as F } from "./index4.mjs";
5
+ import { FontLoader as b } from "./index41.mjs";
6
+ const f = O(void 0);
7
7
  function E() {
8
8
  return typeof window > "u" ? !0 : getComputedStyle(document.documentElement).getPropertyValue("--orion-react-styles-loaded").trim() === "1";
9
9
  }
@@ -11,17 +11,17 @@ function R({
11
11
  children: o,
12
12
  defaultTheme: n,
13
13
  defaultBrand: s,
14
- options: l,
14
+ options: p,
15
15
  disableFontWarnings: i = !1,
16
16
  disableAutoFontLoading: h = !1,
17
17
  disableCSSWarnings: d = !1
18
18
  }) {
19
19
  const v = {
20
- ...l,
20
+ ...p,
21
21
  ...n !== void 0 && { defaultTheme: n },
22
22
  ...s !== void 0 && { defaultBrand: s }
23
- }, t = O(v), c = a(/* @__PURE__ */ new Set()), m = a(!1);
24
- return f(() => {
23
+ }, t = P(v), c = a(/* @__PURE__ */ new Set()), m = a(!1);
24
+ return l(() => {
25
25
  if (d || typeof window > "u" || !(process.env.NODE_ENV === "development" || window.location.hostname === "localhost")) return;
26
26
  const r = setTimeout(() => {
27
27
  !m.current && !E() && (m.current = !0, console.warn(
@@ -29,24 +29,21 @@ function R({
29
29
 
30
30
  You must import the component CSS file:
31
31
 
32
- import '@orion-ds/react/dist/react.css';
32
+ import '@orion-ds/react/styles.css'; // Single import includes all styles
33
33
 
34
- Add this import alongside the theme CSS in your app entry file:
35
-
36
- import '@orion-ds/core/theme.css'; // Design tokens
37
- import '@orion-ds/react/dist/react.css'; // Component styles
34
+ Add this import in your app entry file. It includes both design tokens and component styles.
38
35
 
39
36
  To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`
40
37
  ));
41
38
  }, 100);
42
39
  return () => clearTimeout(r);
43
- }, [d]), f(() => {
40
+ }, [d]), l(() => {
44
41
  if (i || typeof window > "u" || !(process.env.NODE_ENV === "development" || typeof window < "u" && window.location.hostname === "localhost")) return;
45
42
  const r = setTimeout(() => {
46
- const { brand: e } = t, u = P(e);
43
+ const { brand: e } = t, u = x(e);
47
44
  if (u.length > 0 && !c.current.has(e)) {
48
45
  c.current.add(e);
49
- const w = x[e].join(", ");
46
+ const w = C[e].join(", ");
50
47
  console.warn(
51
48
  `[Orion] Missing fonts for "${e}" brand: ${u.join(", ")}
52
49
 
@@ -71,13 +68,13 @@ To disable this warning, set disableFontWarnings={true} on ThemeProvider.`
71
68
  }
72
69
  }, 1e3);
73
70
  return () => clearTimeout(r);
74
- }, [t.brand, i, t]), /* @__PURE__ */ g(p.Provider, { value: t, children: [
75
- !h && /* @__PURE__ */ y(D, {}),
71
+ }, [t.brand, i, t]), /* @__PURE__ */ y(f.Provider, { value: t, children: [
72
+ !h && /* @__PURE__ */ g(b, {}),
76
73
  o
77
74
  ] });
78
75
  }
79
76
  function _() {
80
- const o = S(p);
77
+ const o = S(f);
81
78
  if (o === void 0)
82
79
  throw new Error(
83
80
  `❌ useTheme() must be used inside <ThemeProvider>
@@ -1 +1 @@
1
- {"version":3,"file":"index75.mjs","sources":["../src/contexts/ThemeContext.tsx"],"sourcesContent":["/**\n * Theme Context\n *\n * Provides global theme and brand state to all components.\n * This ensures consistent theming across the entire application.\n *\n * Fonts are loaded automatically by default. No need to add <FontLoader /> manually.\n *\n * @example\n * ```tsx\n * // App.tsx\n * import { ThemeProvider } from '@orion/react';\n *\n * export default function App() {\n * return (\n * <ThemeProvider>\n * <YourComponents />\n * </ThemeProvider>\n * );\n * }\n *\n * // Inside any component\n * import { useTheme } from '@orion/react';\n *\n * function MyComponent() {\n * const { theme, brand } = useTheme();\n * return <div>Current: {theme} / {brand}</div>;\n * }\n *\n * // To disable automatic font loading:\n * <ThemeProvider disableAutoFontLoading>\n * <YourComponents />\n * </ThemeProvider>\n * ```\n */\n\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n type ReactNode,\n} from \"react\";\nimport {\n useTheme as useThemeHook,\n type UseThemeOptions,\n type UseThemeReturn,\n} from \"../hooks/useTheme\";\nimport { getMissingFonts, GOOGLE_FONTS_URL, BRAND_FONTS } from \"../utils/fonts\";\nimport { FontLoader } from \"../components/FontLoader\";\n\n/**\n * Theme Context - provides theme and brand state globally\n */\nconst ThemeContext = createContext<UseThemeReturn | undefined>(undefined);\n\n/**\n * Check if component styles (react.css) are loaded\n * Uses a CSS custom property marker set in styles/marker.css\n */\nfunction checkComponentStylesLoaded(): boolean {\n if (typeof window === \"undefined\") return true;\n\n const styles = getComputedStyle(document.documentElement);\n const marker = styles.getPropertyValue(\"--orion-react-styles-loaded\");\n return marker.trim() === \"1\";\n}\n\n/**\n * Theme Provider Props\n */\nexport interface ThemeProviderProps {\n /**\n * Child components\n */\n children: ReactNode;\n\n /**\n * Default theme\n * @default 'light'\n */\n defaultTheme?: \"light\" | \"dark\";\n\n /**\n * Default brand\n * @default 'orion'\n */\n defaultBrand?: \"orion\" | \"red\" | \"deepblue\" | \"orange\" | \"lemon\";\n\n /**\n * Theme options (see useTheme for full options)\n * @deprecated Use flat props (defaultTheme, defaultBrand) instead.\n */\n options?: UseThemeOptions;\n\n /**\n * Disable font loading warnings in development\n * @default false\n */\n disableFontWarnings?: boolean;\n\n /**\n * Disable automatic font loading via FontLoader\n * When false (default), fonts are loaded automatically.\n * Set to true if you want to manage font loading manually.\n * @default false\n */\n disableAutoFontLoading?: boolean;\n\n /**\n * Disable CSS import warnings in development\n * When false (default), a warning is shown if react.css is not imported.\n * @default false\n */\n disableCSSWarnings?: boolean;\n}\n\n/**\n * ThemeProvider Component\n *\n * Wraps your application to provide global theme and brand state.\n * Must be placed near the root of your application.\n */\nexport function ThemeProvider({\n children,\n defaultTheme,\n defaultBrand,\n options,\n disableFontWarnings = false,\n disableAutoFontLoading = false,\n disableCSSWarnings = false,\n}: ThemeProviderProps) {\n // Merge flat props with options (flat props take precedence)\n const mergedOptions: UseThemeOptions = {\n ...options,\n ...(defaultTheme !== undefined && { defaultTheme }),\n ...(defaultBrand !== undefined && { defaultBrand }),\n };\n\n const themeState = useThemeHook(mergedOptions);\n const hasWarnedRef = useRef<Set<string>>(new Set());\n const hasWarnedCSSRef = useRef(false);\n\n // Check for missing component styles (react.css) in development\n useEffect(() => {\n if (disableCSSWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n window.location.hostname === \"localhost\";\n\n if (!isDev) return;\n\n // Check after a short delay to allow CSS to load\n const timeoutId = setTimeout(() => {\n if (!hasWarnedCSSRef.current && !checkComponentStylesLoaded()) {\n hasWarnedCSSRef.current = true;\n\n console.warn(\n `[Orion] Component styles not detected!\\n\\n` +\n `You must import the component CSS file:\\n\\n` +\n ` import '@orion-ds/react/dist/react.css';\\n\\n` +\n `Add this import alongside the theme CSS in your app entry file:\\n\\n` +\n ` import '@orion-ds/core/theme.css'; // Design tokens\\n` +\n ` import '@orion-ds/react/dist/react.css'; // Component styles\\n\\n` +\n `To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`,\n );\n }\n }, 100);\n\n return () => clearTimeout(timeoutId);\n }, [disableCSSWarnings]);\n\n // Check for missing fonts in development\n useEffect(() => {\n if (disableFontWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n (typeof window !== \"undefined\" &&\n window.location.hostname === \"localhost\");\n\n if (!isDev) return;\n\n // Wait a bit for fonts to potentially load\n const timeoutId = setTimeout(() => {\n const { brand } = themeState;\n const missingFonts = getMissingFonts(brand);\n\n if (missingFonts.length > 0 && !hasWarnedRef.current.has(brand)) {\n hasWarnedRef.current.add(brand);\n\n const fontsNeeded = BRAND_FONTS[brand].join(\", \");\n\n console.warn(\n `[Orion] Missing fonts for \"${brand}\" brand: ${missingFonts.join(\", \")}\\n\\n` +\n `The \"${brand}\" brand requires these fonts: ${fontsNeeded}\\n\\n` +\n `To fix this, add one of the following to your app:\\n\\n` +\n `Option 1: Use <FontLoader /> component (recommended)\\n` +\n ` import { FontLoader } from '@orion-ds/react';\\n` +\n ` <ThemeProvider>\\n` +\n ` <FontLoader />\\n` +\n ` <App />\\n` +\n ` </ThemeProvider>\\n\\n` +\n `Option 2: Add Google Fonts to your HTML <head>\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\\n` +\n ` <link href=\"${GOOGLE_FONTS_URL}\" rel=\"stylesheet\">\\n\\n` +\n `To disable this warning, set disableFontWarnings={true} on ThemeProvider.`,\n );\n }\n }, 1000);\n\n return () => clearTimeout(timeoutId);\n }, [themeState.brand, disableFontWarnings, themeState]);\n\n return (\n <ThemeContext.Provider value={themeState}>\n {!disableAutoFontLoading && <FontLoader />}\n {children}\n </ThemeContext.Provider>\n );\n}\n\n/**\n * Hook to access global theme state\n *\n * ⚠️ IMPORTANT: Must be used inside a ThemeProvider\n *\n * @throws Error if used outside ThemeProvider\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { theme, brand, setTheme, setBrand } = useTheme();\n * // Components automatically inherit theme/brand from <html> attributes\n * // DO NOT pass brand prop to components - it's applied globally!\n * }\n * ```\n */\nexport function useThemeContext(): UseThemeReturn {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\n \"❌ useTheme() must be used inside <ThemeProvider>\\n\\n\" +\n \"Solution:\\n\" +\n \"Wrap your app with ThemeProvider:\\n\\n\" +\n \"export default function App() {\\n\" +\n \" return (\\n\" +\n \" <ThemeProvider>\\n\" +\n \" <YourComponents />\\n\" +\n \" </ThemeProvider>\\n\" +\n \" );\\n\" +\n \"}\",\n );\n }\n\n return context;\n}\n"],"names":["ThemeContext","createContext","checkComponentStylesLoaded","ThemeProvider","children","defaultTheme","defaultBrand","options","disableFontWarnings","disableAutoFontLoading","disableCSSWarnings","mergedOptions","themeState","useThemeHook","hasWarnedRef","useRef","hasWarnedCSSRef","useEffect","timeoutId","brand","missingFonts","getMissingFonts","fontsNeeded","BRAND_FONTS","GOOGLE_FONTS_URL","jsxs","FontLoader","useThemeContext","context","useContext"],"mappings":";;;;;AAsDA,MAAMA,IAAeC,EAA0C,MAAS;AAMxE,SAASC,IAAsC;AAC7C,SAAI,OAAO,SAAW,MAAoB,KAE3B,iBAAiB,SAAS,eAAe,EAClC,iBAAiB,6BAA6B,EACtD,WAAW;AAC3B;AAyDO,SAASC,EAAc;AAAA,EAC5B,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,wBAAAC,IAAyB;AAAA,EACzB,oBAAAC,IAAqB;AACvB,GAAuB;AAErB,QAAMC,IAAiC;AAAA,IACrC,GAAGJ;AAAA,IACH,GAAIF,MAAiB,UAAa,EAAE,cAAAA,EAAA;AAAA,IACpC,GAAIC,MAAiB,UAAa,EAAE,cAAAA,EAAA;AAAA,EAAa,GAG7CM,IAAaC,EAAaF,CAAa,GACvCG,IAAeC,EAAoB,oBAAI,KAAK,GAC5CC,IAAkBD,EAAO,EAAK;AAGpC,SAAAE,EAAU,MAAM;AAQd,QAPIP,KAAsB,OAAO,SAAW,OAOxC,EAHF,QAAQ,IAAI,aAAa,iBACzB,OAAO,SAAS,aAAa,aAEnB;AAGZ,UAAMQ,IAAY,WAAW,MAAM;AACjC,MAAI,CAACF,EAAgB,WAAW,CAACd,QAC/Bc,EAAgB,UAAU,IAE1B,QAAQ;AAAA,QACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA;AAAA,IASN,GAAG,GAAG;AAEN,WAAO,MAAM,aAAaE,CAAS;AAAA,EACrC,GAAG,CAACR,CAAkB,CAAC,GAGvBO,EAAU,MAAM;AASd,QARIT,KAAuB,OAAO,SAAW,OAQzC,EAJF,QAAQ,IAAI,aAAa,iBACxB,OAAO,SAAW,OACjB,OAAO,SAAS,aAAa,aAErB;AAGZ,UAAMU,IAAY,WAAW,MAAM;AACjC,YAAM,EAAE,OAAAC,MAAUP,GACZQ,IAAeC,EAAgBF,CAAK;AAE1C,UAAIC,EAAa,SAAS,KAAK,CAACN,EAAa,QAAQ,IAAIK,CAAK,GAAG;AAC/D,QAAAL,EAAa,QAAQ,IAAIK,CAAK;AAE9B,cAAMG,IAAcC,EAAYJ,CAAK,EAAE,KAAK,IAAI;AAEhD,gBAAQ;AAAA,UACN,8BAA8BA,CAAK,YAAYC,EAAa,KAAK,IAAI,CAAC;AAAA;AAAA,OAC5DD,CAAK,iCAAiCG,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAWxCE,CAAgB;AAAA;AAAA;AAAA,QAAA;AAAA,MAGvC;AAAA,IACF,GAAG,GAAI;AAEP,WAAO,MAAM,aAAaN,CAAS;AAAA,EACrC,GAAG,CAACN,EAAW,OAAOJ,GAAqBI,CAAU,CAAC,GAGpD,gBAAAa,EAACzB,EAAa,UAAb,EAAsB,OAAOY,GAC3B,UAAA;AAAA,IAAA,CAACH,uBAA2BiB,GAAA,EAAW;AAAA,IACvCtB;AAAA,EAAA,GACH;AAEJ;AAkBO,SAASuB,IAAkC;AAChD,QAAMC,IAAUC,EAAW7B,CAAY;AAEvC,MAAI4B,MAAY;AACd,UAAM,IAAI;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAaJ,SAAOA;AACT;"}
1
+ {"version":3,"file":"index75.mjs","sources":["../src/contexts/ThemeContext.tsx"],"sourcesContent":["/**\n * Theme Context\n *\n * Provides global theme and brand state to all components.\n * This ensures consistent theming across the entire application.\n *\n * Fonts are loaded automatically by default. No need to add <FontLoader /> manually.\n *\n * @example\n * ```tsx\n * // App.tsx\n * import { ThemeProvider } from '@orion/react';\n *\n * export default function App() {\n * return (\n * <ThemeProvider>\n * <YourComponents />\n * </ThemeProvider>\n * );\n * }\n *\n * // Inside any component\n * import { useTheme } from '@orion/react';\n *\n * function MyComponent() {\n * const { theme, brand } = useTheme();\n * return <div>Current: {theme} / {brand}</div>;\n * }\n *\n * // To disable automatic font loading:\n * <ThemeProvider disableAutoFontLoading>\n * <YourComponents />\n * </ThemeProvider>\n * ```\n */\n\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n type ReactNode,\n} from \"react\";\nimport {\n useTheme as useThemeHook,\n type UseThemeOptions,\n type UseThemeReturn,\n} from \"../hooks/useTheme\";\nimport { getMissingFonts, GOOGLE_FONTS_URL, BRAND_FONTS } from \"../utils/fonts\";\nimport { FontLoader } from \"../components/FontLoader\";\n\n/**\n * Theme Context - provides theme and brand state globally\n */\nconst ThemeContext = createContext<UseThemeReturn | undefined>(undefined);\n\n/**\n * Check if component styles (react.css) are loaded\n * Uses a CSS custom property marker set in styles/marker.css\n */\nfunction checkComponentStylesLoaded(): boolean {\n if (typeof window === \"undefined\") return true;\n\n const styles = getComputedStyle(document.documentElement);\n const marker = styles.getPropertyValue(\"--orion-react-styles-loaded\");\n return marker.trim() === \"1\";\n}\n\n/**\n * Theme Provider Props\n */\nexport interface ThemeProviderProps {\n /**\n * Child components\n */\n children: ReactNode;\n\n /**\n * Default theme\n * @default 'light'\n */\n defaultTheme?: \"light\" | \"dark\";\n\n /**\n * Default brand\n * @default 'orion'\n */\n defaultBrand?: \"orion\" | \"red\" | \"deepblue\" | \"orange\" | \"lemon\";\n\n /**\n * Theme options (see useTheme for full options)\n * @deprecated Use flat props (defaultTheme, defaultBrand) instead.\n */\n options?: UseThemeOptions;\n\n /**\n * Disable font loading warnings in development\n * @default false\n */\n disableFontWarnings?: boolean;\n\n /**\n * Disable automatic font loading via FontLoader\n * When false (default), fonts are loaded automatically.\n * Set to true if you want to manage font loading manually.\n * @default false\n */\n disableAutoFontLoading?: boolean;\n\n /**\n * Disable CSS import warnings in development\n * When false (default), a warning is shown if react.css is not imported.\n * @default false\n */\n disableCSSWarnings?: boolean;\n}\n\n/**\n * ThemeProvider Component\n *\n * Wraps your application to provide global theme and brand state.\n * Must be placed near the root of your application.\n */\nexport function ThemeProvider({\n children,\n defaultTheme,\n defaultBrand,\n options,\n disableFontWarnings = false,\n disableAutoFontLoading = false,\n disableCSSWarnings = false,\n}: ThemeProviderProps) {\n // Merge flat props with options (flat props take precedence)\n const mergedOptions: UseThemeOptions = {\n ...options,\n ...(defaultTheme !== undefined && { defaultTheme }),\n ...(defaultBrand !== undefined && { defaultBrand }),\n };\n\n const themeState = useThemeHook(mergedOptions);\n const hasWarnedRef = useRef<Set<string>>(new Set());\n const hasWarnedCSSRef = useRef(false);\n\n // Check for missing component styles (react.css) in development\n useEffect(() => {\n if (disableCSSWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n window.location.hostname === \"localhost\";\n\n if (!isDev) return;\n\n // Check after a short delay to allow CSS to load\n const timeoutId = setTimeout(() => {\n if (!hasWarnedCSSRef.current && !checkComponentStylesLoaded()) {\n hasWarnedCSSRef.current = true;\n\n console.warn(\n `[Orion] Component styles not detected!\\n\\n` +\n `You must import the component CSS file:\\n\\n` +\n ` import '@orion-ds/react/styles.css'; // Single import includes all styles\\n\\n` +\n `Add this import in your app entry file. It includes both design tokens and component styles.\\n\\n` +\n `To disable this warning, set disableCSSWarnings={true} on ThemeProvider.`,\n );\n }\n }, 100);\n\n return () => clearTimeout(timeoutId);\n }, [disableCSSWarnings]);\n\n // Check for missing fonts in development\n useEffect(() => {\n if (disableFontWarnings || typeof window === \"undefined\") return;\n\n // Only warn in development\n const isDev =\n process.env.NODE_ENV === \"development\" ||\n (typeof window !== \"undefined\" &&\n window.location.hostname === \"localhost\");\n\n if (!isDev) return;\n\n // Wait a bit for fonts to potentially load\n const timeoutId = setTimeout(() => {\n const { brand } = themeState;\n const missingFonts = getMissingFonts(brand);\n\n if (missingFonts.length > 0 && !hasWarnedRef.current.has(brand)) {\n hasWarnedRef.current.add(brand);\n\n const fontsNeeded = BRAND_FONTS[brand].join(\", \");\n\n console.warn(\n `[Orion] Missing fonts for \"${brand}\" brand: ${missingFonts.join(\", \")}\\n\\n` +\n `The \"${brand}\" brand requires these fonts: ${fontsNeeded}\\n\\n` +\n `To fix this, add one of the following to your app:\\n\\n` +\n `Option 1: Use <FontLoader /> component (recommended)\\n` +\n ` import { FontLoader } from '@orion-ds/react';\\n` +\n ` <ThemeProvider>\\n` +\n ` <FontLoader />\\n` +\n ` <App />\\n` +\n ` </ThemeProvider>\\n\\n` +\n `Option 2: Add Google Fonts to your HTML <head>\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\\n` +\n ` <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\\n` +\n ` <link href=\"${GOOGLE_FONTS_URL}\" rel=\"stylesheet\">\\n\\n` +\n `To disable this warning, set disableFontWarnings={true} on ThemeProvider.`,\n );\n }\n }, 1000);\n\n return () => clearTimeout(timeoutId);\n }, [themeState.brand, disableFontWarnings, themeState]);\n\n return (\n <ThemeContext.Provider value={themeState}>\n {!disableAutoFontLoading && <FontLoader />}\n {children}\n </ThemeContext.Provider>\n );\n}\n\n/**\n * Hook to access global theme state\n *\n * ⚠️ IMPORTANT: Must be used inside a ThemeProvider\n *\n * @throws Error if used outside ThemeProvider\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { theme, brand, setTheme, setBrand } = useTheme();\n * // Components automatically inherit theme/brand from <html> attributes\n * // DO NOT pass brand prop to components - it's applied globally!\n * }\n * ```\n */\nexport function useThemeContext(): UseThemeReturn {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\n \"❌ useTheme() must be used inside <ThemeProvider>\\n\\n\" +\n \"Solution:\\n\" +\n \"Wrap your app with ThemeProvider:\\n\\n\" +\n \"export default function App() {\\n\" +\n \" return (\\n\" +\n \" <ThemeProvider>\\n\" +\n \" <YourComponents />\\n\" +\n \" </ThemeProvider>\\n\" +\n \" );\\n\" +\n \"}\",\n );\n }\n\n return context;\n}\n"],"names":["ThemeContext","createContext","checkComponentStylesLoaded","ThemeProvider","children","defaultTheme","defaultBrand","options","disableFontWarnings","disableAutoFontLoading","disableCSSWarnings","mergedOptions","themeState","useThemeHook","hasWarnedRef","useRef","hasWarnedCSSRef","useEffect","timeoutId","brand","missingFonts","getMissingFonts","fontsNeeded","BRAND_FONTS","GOOGLE_FONTS_URL","jsxs","FontLoader","useThemeContext","context","useContext"],"mappings":";;;;;AAsDA,MAAMA,IAAeC,EAA0C,MAAS;AAMxE,SAASC,IAAsC;AAC7C,SAAI,OAAO,SAAW,MAAoB,KAE3B,iBAAiB,SAAS,eAAe,EAClC,iBAAiB,6BAA6B,EACtD,WAAW;AAC3B;AAyDO,SAASC,EAAc;AAAA,EAC5B,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,wBAAAC,IAAyB;AAAA,EACzB,oBAAAC,IAAqB;AACvB,GAAuB;AAErB,QAAMC,IAAiC;AAAA,IACrC,GAAGJ;AAAA,IACH,GAAIF,MAAiB,UAAa,EAAE,cAAAA,EAAA;AAAA,IACpC,GAAIC,MAAiB,UAAa,EAAE,cAAAA,EAAA;AAAA,EAAa,GAG7CM,IAAaC,EAAaF,CAAa,GACvCG,IAAeC,EAAoB,oBAAI,KAAK,GAC5CC,IAAkBD,EAAO,EAAK;AAGpC,SAAAE,EAAU,MAAM;AAQd,QAPIP,KAAsB,OAAO,SAAW,OAOxC,EAHF,QAAQ,IAAI,aAAa,iBACzB,OAAO,SAAS,aAAa,aAEnB;AAGZ,UAAMQ,IAAY,WAAW,MAAM;AACjC,MAAI,CAACF,EAAgB,WAAW,CAACd,QAC/Bc,EAAgB,UAAU,IAE1B,QAAQ;AAAA,QACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA;AAAA,IAON,GAAG,GAAG;AAEN,WAAO,MAAM,aAAaE,CAAS;AAAA,EACrC,GAAG,CAACR,CAAkB,CAAC,GAGvBO,EAAU,MAAM;AASd,QARIT,KAAuB,OAAO,SAAW,OAQzC,EAJF,QAAQ,IAAI,aAAa,iBACxB,OAAO,SAAW,OACjB,OAAO,SAAS,aAAa,aAErB;AAGZ,UAAMU,IAAY,WAAW,MAAM;AACjC,YAAM,EAAE,OAAAC,MAAUP,GACZQ,IAAeC,EAAgBF,CAAK;AAE1C,UAAIC,EAAa,SAAS,KAAK,CAACN,EAAa,QAAQ,IAAIK,CAAK,GAAG;AAC/D,QAAAL,EAAa,QAAQ,IAAIK,CAAK;AAE9B,cAAMG,IAAcC,EAAYJ,CAAK,EAAE,KAAK,IAAI;AAEhD,gBAAQ;AAAA,UACN,8BAA8BA,CAAK,YAAYC,EAAa,KAAK,IAAI,CAAC;AAAA;AAAA,OAC5DD,CAAK,iCAAiCG,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAWxCE,CAAgB;AAAA;AAAA;AAAA,QAAA;AAAA,MAGvC;AAAA,IACF,GAAG,GAAI;AAEP,WAAO,MAAM,aAAaN,CAAS;AAAA,EACrC,GAAG,CAACN,EAAW,OAAOJ,GAAqBI,CAAU,CAAC,GAGpD,gBAAAa,EAACzB,EAAa,UAAb,EAAsB,OAAOY,GAC3B,UAAA;AAAA,IAAA,CAACH,uBAA2BiB,GAAA,EAAW;AAAA,IACvCtB;AAAA,EAAA,GACH;AAEJ;AAkBO,SAASuB,IAAkC;AAChD,QAAMC,IAAUC,EAAW7B,CAAY;AAEvC,MAAI4B,MAAY;AACd,UAAM,IAAI;AAAA,MACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAaJ,SAAOA;AACT;"}
package/dist/index76.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),L=require("react-dom"),o=require("./index159.cjs");let M=0;const N=()=>`toast-${++M}`,m=r.createContext(null),y=()=>{const e=r.useContext(m);if(!e)throw new Error("useToast must be used within a ToastProvider");return e},B=({toast:e,onDismiss:u})=>{const[l,d]=r.useState(!1),a=r.useRef(null),c=r.useCallback(()=>{d(!0),setTimeout(()=>{u(e.id),e.onDismiss?.()},200)},[e,u]);r.useEffect(()=>{if(e.duration&&e.duration>0)return a.current=setTimeout(c,e.duration),()=>{a.current&&clearTimeout(a.current)}},[e.duration,c]);const i=()=>{a.current&&clearTimeout(a.current)},h=()=>{e.duration&&e.duration>0&&(a.current=setTimeout(c,e.duration))},f=[o.default.toast,o.default[e.variant||"info"],l&&o.default.exiting].filter(Boolean).join(" "),k=()=>{switch(e.variant){case"success":return t.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:t.jsx("path",{d:"M16.667 5L7.5 14.167 3.333 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})});case"error":return t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[t.jsx("circle",{cx:"10",cy:"10",r:"7.5",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("path",{d:"M10 6v5M10 13.5v.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case"warning":return t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[t.jsx("path",{d:"M8.57 3.216L1.538 15.143a1.667 1.667 0 001.429 2.524h14.066a1.667 1.667 0 001.429-2.524L11.43 3.216a1.667 1.667 0 00-2.858 0z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.jsx("path",{d:"M10 7.5v3.333M10 14.167h.008",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]});default:return t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[t.jsx("circle",{cx:"10",cy:"10",r:"7.5",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("path",{d:"M10 9v4.5M10 6.5v.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}};return t.jsxs("div",{className:f,role:"alert","aria-live":"polite",onMouseEnter:i,onMouseLeave:h,children:[t.jsx("span",{className:o.default.icon,"aria-hidden":"true",children:k()}),t.jsxs("div",{className:o.default.content,children:[e.title&&t.jsx("div",{className:o.default.title,children:e.title}),t.jsx("div",{className:o.default.message,children:e.message})]}),e.action&&t.jsx("button",{type:"button",className:o.default.action,onClick:()=>{e.action?.onClick(),c()},children:e.action.label}),e.dismissible!==!1&&t.jsx("button",{type:"button",className:o.default.closeButton,onClick:c,"aria-label":"Dismiss",children:t.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:t.jsx("path",{d:"M12 4L4 12M4 4l8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})},j=({children:e,position:u="bottom-right",maxToasts:l=5,defaultDuration:d=5e3})=>{const[a,c]=r.useState([]),i=r.useCallback(s=>{const n=N(),v={id:n,duration:d,dismissible:!0,variant:"info",...s};return c(T=>{const x=[...T,v];return x.length>l?x.slice(-l):x}),n},[d,l]),h=r.useCallback(s=>{c(n=>n.filter(v=>v.id!==s))},[]),f=r.useCallback(()=>{c([])},[]),k=r.useCallback((s,n)=>i({message:s,variant:"info",...n}),[i]),g=r.useCallback((s,n)=>i({message:s,variant:"success",...n}),[i]),C=r.useCallback((s,n)=>i({message:s,variant:"warning",...n}),[i]),b=r.useCallback((s,n)=>i({message:s,variant:"error",...n}),[i]),p={toast:i,info:k,success:g,warning:C,error:b,dismiss:h,dismissAll:f},w=[o.default.container,o.default[u]].filter(Boolean).join(" ");return t.jsxs(m.Provider,{value:p,children:[e,a.length>0&&L.createPortal(t.jsx("div",{className:w,"aria-label":"Notifications",children:a.map(s=>t.jsx(B,{toast:s,onDismiss:h},s.id))}),document.body)]})};j.displayName="ToastProvider";exports.ToastProvider=j;exports.useToast=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),L=require("react-dom"),o=require("./index102.cjs");let M=0;const N=()=>`toast-${++M}`,m=r.createContext(null),y=()=>{const e=r.useContext(m);if(!e)throw new Error("useToast must be used within a ToastProvider");return e},B=({toast:e,onDismiss:u})=>{const[l,d]=r.useState(!1),a=r.useRef(null),c=r.useCallback(()=>{d(!0),setTimeout(()=>{u(e.id),e.onDismiss?.()},200)},[e,u]);r.useEffect(()=>{if(e.duration&&e.duration>0)return a.current=setTimeout(c,e.duration),()=>{a.current&&clearTimeout(a.current)}},[e.duration,c]);const i=()=>{a.current&&clearTimeout(a.current)},h=()=>{e.duration&&e.duration>0&&(a.current=setTimeout(c,e.duration))},f=[o.default.toast,o.default[e.variant||"info"],l&&o.default.exiting].filter(Boolean).join(" "),k=()=>{switch(e.variant){case"success":return t.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:t.jsx("path",{d:"M16.667 5L7.5 14.167 3.333 10",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})});case"error":return t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[t.jsx("circle",{cx:"10",cy:"10",r:"7.5",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("path",{d:"M10 6v5M10 13.5v.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]});case"warning":return t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[t.jsx("path",{d:"M8.57 3.216L1.538 15.143a1.667 1.667 0 001.429 2.524h14.066a1.667 1.667 0 001.429-2.524L11.43 3.216a1.667 1.667 0 00-2.858 0z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),t.jsx("path",{d:"M10 7.5v3.333M10 14.167h.008",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]});default:return t.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[t.jsx("circle",{cx:"10",cy:"10",r:"7.5",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("path",{d:"M10 9v4.5M10 6.5v.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}};return t.jsxs("div",{className:f,role:"alert","aria-live":"polite",onMouseEnter:i,onMouseLeave:h,children:[t.jsx("span",{className:o.default.icon,"aria-hidden":"true",children:k()}),t.jsxs("div",{className:o.default.content,children:[e.title&&t.jsx("div",{className:o.default.title,children:e.title}),t.jsx("div",{className:o.default.message,children:e.message})]}),e.action&&t.jsx("button",{type:"button",className:o.default.action,onClick:()=>{e.action?.onClick(),c()},children:e.action.label}),e.dismissible!==!1&&t.jsx("button",{type:"button",className:o.default.closeButton,onClick:c,"aria-label":"Dismiss",children:t.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:t.jsx("path",{d:"M12 4L4 12M4 4l8 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})},j=({children:e,position:u="bottom-right",maxToasts:l=5,defaultDuration:d=5e3})=>{const[a,c]=r.useState([]),i=r.useCallback(s=>{const n=N(),v={id:n,duration:d,dismissible:!0,variant:"info",...s};return c(T=>{const x=[...T,v];return x.length>l?x.slice(-l):x}),n},[d,l]),h=r.useCallback(s=>{c(n=>n.filter(v=>v.id!==s))},[]),f=r.useCallback(()=>{c([])},[]),k=r.useCallback((s,n)=>i({message:s,variant:"info",...n}),[i]),g=r.useCallback((s,n)=>i({message:s,variant:"success",...n}),[i]),C=r.useCallback((s,n)=>i({message:s,variant:"warning",...n}),[i]),b=r.useCallback((s,n)=>i({message:s,variant:"error",...n}),[i]),p={toast:i,info:k,success:g,warning:C,error:b,dismiss:h,dismissAll:f},w=[o.default.container,o.default[u]].filter(Boolean).join(" ");return t.jsxs(m.Provider,{value:p,children:[e,a.length>0&&L.createPortal(t.jsx("div",{className:w,"aria-label":"Notifications",children:a.map(s=>t.jsx(B,{toast:s,onDismiss:h},s.id))}),document.body)]})};j.displayName="ToastProvider";exports.ToastProvider=j;exports.useToast=y;
2
2
  //# sourceMappingURL=index76.cjs.map
package/dist/index76.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
2
  import { useState as g, useCallback as a, useContext as N, createContext as j, useRef as B, useEffect as W } from "react";
3
3
  import { createPortal as y } from "react-dom";
4
- import o from "./index159.mjs";
4
+ import o from "./index102.mjs";
5
5
  let E = 0;
6
6
  const P = () => `toast-${++E}`, w = j(null), $ = () => {
7
7
  const e = N(w);
package/dist/index77.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),l=require("react"),t=require("./index101.cjs"),u=l.forwardRef(({pressed:o,defaultPressed:c=!1,onPressedChange:a,variant:d="default",size:i="md",disabled:f,className:g,children:m,onClick:n,...b},T)=>{const[j,p]=l.useState(c),s=o!==void 0,e=s?o:j,y=l.useCallback(x=>{const r=!e;s||p(r),a?.(r),n?.(x)},[e,s,a,n]),q=[t.default.toggle,t.default[d],t.default[i],e&&t.default.pressed,g].filter(Boolean).join(" ");return N.jsx("button",{ref:T,type:"button",className:q,"aria-pressed":e,disabled:f,onClick:y,...b,children:m})});u.displayName="Toggle";exports.Toggle=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),l=require("react"),t=require("./index160.cjs"),u=l.forwardRef(({pressed:o,defaultPressed:c=!1,onPressedChange:a,variant:d="default",size:i="md",disabled:f,className:g,children:m,onClick:n,...b},T)=>{const[j,p]=l.useState(c),s=o!==void 0,e=s?o:j,y=l.useCallback(x=>{const r=!e;s||p(r),a?.(r),n?.(x)},[e,s,a,n]),q=[t.default.toggle,t.default[d],t.default[i],e&&t.default.pressed,g].filter(Boolean).join(" ");return N.jsx("button",{ref:T,type:"button",className:q,"aria-pressed":e,disabled:f,onClick:y,...b,children:m})});u.displayName="Toggle";exports.Toggle=u;
2
2
  //# sourceMappingURL=index77.cjs.map
package/dist/index77.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as j } from "react/jsx-runtime";
2
2
  import { forwardRef as k, useState as C, useCallback as P } from "react";
3
- import s from "./index101.mjs";
3
+ import s from "./index160.mjs";
4
4
  const T = k(
5
5
  ({
6
6
  pressed: o,
package/dist/index78.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("react/jsx-runtime"),n=require("react"),a=require("./index141.cjs"),j=n.createContext(null);function q(){const t=n.useContext(j);if(!t)throw new Error("ToggleGroup.Item must be used within a ToggleGroup");return t}const A=n.forwardRef(({value:t,disabled:c,className:y,children:g,...d},f)=>{const{type:I,value:b,onItemToggle:x,variant:h,size:s,disabled:p}=q(),m=b.includes(t),T=c||p,u=[a.default.item,m&&a.default.itemPressed,y].filter(Boolean).join(" ");return G.jsx("button",{ref:f,type:"button",className:u,"aria-pressed":m,disabled:T,onClick:()=>x(t),...d,children:g})});A.displayName="ToggleGroup.Item";const R=n.forwardRef(({type:t,value:c,defaultValue:y,onValueChange:g,variant:d="default",size:f="md",disabled:I=!1,className:b,children:x,...h},s)=>{const p=e=>e===void 0?[]:Array.isArray(e)?e:[e],[m,T]=n.useState(p(y)),u=c!==void 0,i=u?p(c):m,k=n.useRef(null),C=n.useCallback(e=>{let o;i.includes(e)?o=i.filter(r=>r!==e):t==="multiple"?o=[...i,e]:o=[e],u||T(o),g?.(t==="single"?o[0]??"":o)},[i,t,u,g]),v=n.useCallback(e=>{const o=k.current;if(!o)return;const r=Array.from(o.querySelectorAll("button:not(:disabled)")),w=r.indexOf(e.target);if(w===-1)return;let l;e.key==="ArrowRight"||e.key==="ArrowDown"?l=(w+1)%r.length:e.key==="ArrowLeft"||e.key==="ArrowUp"?l=(w-1+r.length)%r.length:e.key==="Home"?l=0:e.key==="End"&&(l=r.length-1),l!==void 0&&(e.preventDefault(),r[l]?.focus())},[]),D=[a.default.group,a.default[d],a.default[f],b].filter(Boolean).join(" "),N={type:t,value:i,onItemToggle:C,variant:d,size:f,disabled:I};return G.jsx(j.Provider,{value:N,children:G.jsx("div",{ref:e=>{k.current=e,typeof s=="function"?s(e):s&&(s.current=e)},role:"group",className:D,onKeyDown:v,...h,children:x})})});R.displayName="ToggleGroup";const P=Object.assign(R,{Item:A});exports.ToggleGroup=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("react/jsx-runtime"),n=require("react"),a=require("./index144.cjs"),j=n.createContext(null);function q(){const t=n.useContext(j);if(!t)throw new Error("ToggleGroup.Item must be used within a ToggleGroup");return t}const A=n.forwardRef(({value:t,disabled:c,className:y,children:g,...d},f)=>{const{type:I,value:b,onItemToggle:x,variant:h,size:s,disabled:p}=q(),m=b.includes(t),T=c||p,u=[a.default.item,m&&a.default.itemPressed,y].filter(Boolean).join(" ");return G.jsx("button",{ref:f,type:"button",className:u,"aria-pressed":m,disabled:T,onClick:()=>x(t),...d,children:g})});A.displayName="ToggleGroup.Item";const R=n.forwardRef(({type:t,value:c,defaultValue:y,onValueChange:g,variant:d="default",size:f="md",disabled:I=!1,className:b,children:x,...h},s)=>{const p=e=>e===void 0?[]:Array.isArray(e)?e:[e],[m,T]=n.useState(p(y)),u=c!==void 0,i=u?p(c):m,k=n.useRef(null),C=n.useCallback(e=>{let o;i.includes(e)?o=i.filter(r=>r!==e):t==="multiple"?o=[...i,e]:o=[e],u||T(o),g?.(t==="single"?o[0]??"":o)},[i,t,u,g]),v=n.useCallback(e=>{const o=k.current;if(!o)return;const r=Array.from(o.querySelectorAll("button:not(:disabled)")),w=r.indexOf(e.target);if(w===-1)return;let l;e.key==="ArrowRight"||e.key==="ArrowDown"?l=(w+1)%r.length:e.key==="ArrowLeft"||e.key==="ArrowUp"?l=(w-1+r.length)%r.length:e.key==="Home"?l=0:e.key==="End"&&(l=r.length-1),l!==void 0&&(e.preventDefault(),r[l]?.focus())},[]),D=[a.default.group,a.default[d],a.default[f],b].filter(Boolean).join(" "),N={type:t,value:i,onItemToggle:C,variant:d,size:f,disabled:I};return G.jsx(j.Provider,{value:N,children:G.jsx("div",{ref:e=>{k.current=e,typeof s=="function"?s(e):s&&(s.current=e)},role:"group",className:D,onKeyDown:v,...h,children:x})})});R.displayName="ToggleGroup";const P=Object.assign(R,{Item:A});exports.ToggleGroup=P;
2
2
  //# sourceMappingURL=index78.cjs.map