@psnext/design-system 1.0.0 → 1.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 (834) hide show
  1. package/README.md +103 -90
  2. package/dist/Header.cjs +890 -0
  3. package/dist/Header.cjs.map +1 -0
  4. package/dist/Header.js +798 -0
  5. package/dist/Header.js.map +1 -0
  6. package/dist/Icon.cjs +1969 -0
  7. package/dist/Icon.cjs.map +1 -0
  8. package/dist/Icon.js +1956 -0
  9. package/dist/Icon.js.map +1 -0
  10. package/dist/Logo.cjs +813 -0
  11. package/dist/Logo.cjs.map +1 -0
  12. package/dist/Logo.js +808 -0
  13. package/dist/Logo.js.map +1 -0
  14. package/dist/Sidebar.cjs +562 -0
  15. package/dist/Sidebar.cjs.map +1 -0
  16. package/dist/Sidebar.js +416 -0
  17. package/dist/Sidebar.js.map +1 -0
  18. package/dist/chunk.cjs +28 -0
  19. package/dist/cn.cjs +15 -0
  20. package/dist/cn.cjs.map +1 -0
  21. package/dist/cn.js +10 -0
  22. package/dist/cn.js.map +1 -0
  23. package/dist/contexts/index.cjs +0 -60
  24. package/dist/contexts/index.d.cts +1 -23
  25. package/dist/contexts/index.d.ts +1 -23
  26. package/dist/contexts/index.js +1 -58
  27. package/dist/index.cjs +414 -272
  28. package/dist/index.d.cts +17 -1424
  29. package/dist/index.d.cts.map +1 -1
  30. package/dist/index.d.ts +17 -1424
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +72 -7
  33. package/dist/index10.d.cts +38 -0
  34. package/dist/index10.d.cts.map +1 -0
  35. package/dist/index10.d.ts +38 -0
  36. package/dist/index10.d.ts.map +1 -0
  37. package/dist/index11.d.cts +30 -0
  38. package/dist/index11.d.cts.map +1 -0
  39. package/dist/index11.d.ts +30 -0
  40. package/dist/index11.d.ts.map +1 -0
  41. package/dist/index12.d.cts +75 -0
  42. package/dist/index12.d.cts.map +1 -0
  43. package/dist/index12.d.ts +75 -0
  44. package/dist/index12.d.ts.map +1 -0
  45. package/dist/index13.d.cts +57 -0
  46. package/dist/index13.d.cts.map +1 -0
  47. package/dist/index13.d.ts +57 -0
  48. package/dist/index13.d.ts.map +1 -0
  49. package/dist/index14.d.cts +98 -0
  50. package/dist/index14.d.cts.map +1 -0
  51. package/dist/index14.d.ts +98 -0
  52. package/dist/index14.d.ts.map +1 -0
  53. package/dist/index15.d.cts +29 -0
  54. package/dist/index15.d.cts.map +1 -0
  55. package/dist/index15.d.ts +29 -0
  56. package/dist/index15.d.ts.map +1 -0
  57. package/dist/index16.d.cts +38 -0
  58. package/dist/index16.d.cts.map +1 -0
  59. package/dist/index16.d.ts +38 -0
  60. package/dist/index16.d.ts.map +1 -0
  61. package/dist/index17.d.cts +19 -0
  62. package/dist/index17.d.cts.map +1 -0
  63. package/dist/index17.d.ts +19 -0
  64. package/dist/index17.d.ts.map +1 -0
  65. package/dist/index18.d.cts +73 -0
  66. package/dist/index18.d.cts.map +1 -0
  67. package/dist/index18.d.ts +73 -0
  68. package/dist/index18.d.ts.map +1 -0
  69. package/dist/index19.d.cts +66 -0
  70. package/dist/index19.d.cts.map +1 -0
  71. package/dist/index19.d.ts +66 -0
  72. package/dist/index19.d.ts.map +1 -0
  73. package/dist/index2.d.cts +41 -13
  74. package/dist/index2.d.cts.map +1 -1
  75. package/dist/index2.d.ts +41 -13
  76. package/dist/index2.d.ts.map +1 -1
  77. package/dist/index20.d.cts +96 -0
  78. package/dist/index20.d.cts.map +1 -0
  79. package/dist/index20.d.ts +96 -0
  80. package/dist/index20.d.ts.map +1 -0
  81. package/dist/index21.d.cts +34 -0
  82. package/dist/index21.d.cts.map +1 -0
  83. package/dist/index21.d.ts +34 -0
  84. package/dist/index21.d.ts.map +1 -0
  85. package/dist/index22.d.cts +62 -0
  86. package/dist/index22.d.cts.map +1 -0
  87. package/dist/index22.d.ts +62 -0
  88. package/dist/index22.d.ts.map +1 -0
  89. package/dist/index23.d.cts +99 -0
  90. package/dist/index23.d.cts.map +1 -0
  91. package/dist/index23.d.ts +99 -0
  92. package/dist/index23.d.ts.map +1 -0
  93. package/dist/index24.d.cts +49 -0
  94. package/dist/index24.d.cts.map +1 -0
  95. package/dist/index24.d.ts +49 -0
  96. package/dist/index24.d.ts.map +1 -0
  97. package/dist/index25.d.cts +17 -0
  98. package/dist/index25.d.cts.map +1 -0
  99. package/dist/index25.d.ts +17 -0
  100. package/dist/index25.d.ts.map +1 -0
  101. package/dist/index26.d.cts +80 -0
  102. package/dist/index26.d.cts.map +1 -0
  103. package/dist/index26.d.ts +80 -0
  104. package/dist/index26.d.ts.map +1 -0
  105. package/dist/index27.d.cts +71 -0
  106. package/dist/index27.d.cts.map +1 -0
  107. package/dist/index27.d.ts +71 -0
  108. package/dist/index27.d.ts.map +1 -0
  109. package/dist/index28.d.cts +37 -0
  110. package/dist/index28.d.cts.map +1 -0
  111. package/dist/index28.d.ts +37 -0
  112. package/dist/index28.d.ts.map +1 -0
  113. package/dist/index29.d.cts +25 -0
  114. package/dist/index29.d.cts.map +1 -0
  115. package/dist/index29.d.ts +25 -0
  116. package/dist/index29.d.ts.map +1 -0
  117. package/dist/index3.d.cts +62 -0
  118. package/dist/index3.d.cts.map +1 -0
  119. package/dist/index3.d.ts +62 -0
  120. package/dist/index3.d.ts.map +1 -0
  121. package/dist/index30.d.cts +59 -0
  122. package/dist/index30.d.cts.map +1 -0
  123. package/dist/index30.d.ts +59 -0
  124. package/dist/index30.d.ts.map +1 -0
  125. package/dist/index31.d.cts +40 -0
  126. package/dist/index31.d.cts.map +1 -0
  127. package/dist/index31.d.ts +40 -0
  128. package/dist/index31.d.ts.map +1 -0
  129. package/dist/index32.d.cts +23 -0
  130. package/dist/index32.d.cts.map +1 -0
  131. package/dist/index32.d.ts +23 -0
  132. package/dist/index32.d.ts.map +1 -0
  133. package/dist/index33.d.cts +55 -0
  134. package/dist/index33.d.cts.map +1 -0
  135. package/dist/index33.d.ts +55 -0
  136. package/dist/index33.d.ts.map +1 -0
  137. package/dist/index34.d.cts +43 -0
  138. package/dist/index34.d.cts.map +1 -0
  139. package/dist/index34.d.ts +43 -0
  140. package/dist/index34.d.ts.map +1 -0
  141. package/dist/index35.d.cts +77 -0
  142. package/dist/index35.d.cts.map +1 -0
  143. package/dist/index35.d.ts +77 -0
  144. package/dist/index35.d.ts.map +1 -0
  145. package/dist/index36.d.cts +19 -0
  146. package/dist/index36.d.cts.map +1 -0
  147. package/dist/index36.d.ts +19 -0
  148. package/dist/index36.d.ts.map +1 -0
  149. package/dist/index37.d.cts +29 -0
  150. package/dist/index37.d.cts.map +1 -0
  151. package/dist/index37.d.ts +29 -0
  152. package/dist/index37.d.ts.map +1 -0
  153. package/dist/index38.d.cts +20 -0
  154. package/dist/index38.d.cts.map +1 -0
  155. package/dist/index38.d.ts +20 -0
  156. package/dist/index38.d.ts.map +1 -0
  157. package/dist/index39.d.cts +105 -0
  158. package/dist/index39.d.cts.map +1 -0
  159. package/dist/index39.d.ts +105 -0
  160. package/dist/index39.d.ts.map +1 -0
  161. package/dist/index4.d.cts +11 -0
  162. package/dist/index4.d.cts.map +1 -0
  163. package/dist/index4.d.ts +11 -0
  164. package/dist/index4.d.ts.map +1 -0
  165. package/dist/index40.d.cts +22 -0
  166. package/dist/index40.d.cts.map +1 -0
  167. package/dist/index40.d.ts +22 -0
  168. package/dist/index40.d.ts.map +1 -0
  169. package/dist/index41.d.cts +56 -0
  170. package/dist/index41.d.cts.map +1 -0
  171. package/dist/index41.d.ts +56 -0
  172. package/dist/index41.d.ts.map +1 -0
  173. package/dist/index42.d.cts +45 -0
  174. package/dist/index42.d.cts.map +1 -0
  175. package/dist/index42.d.ts +45 -0
  176. package/dist/index42.d.ts.map +1 -0
  177. package/dist/index43.d.cts +96 -0
  178. package/dist/index43.d.cts.map +1 -0
  179. package/dist/index43.d.ts +96 -0
  180. package/dist/index43.d.ts.map +1 -0
  181. package/dist/index44.d.cts +48 -0
  182. package/dist/index44.d.cts.map +1 -0
  183. package/dist/index44.d.ts +48 -0
  184. package/dist/index44.d.ts.map +1 -0
  185. package/dist/index45.d.cts +28 -0
  186. package/dist/index45.d.cts.map +1 -0
  187. package/dist/index45.d.ts +28 -0
  188. package/dist/index45.d.ts.map +1 -0
  189. package/dist/index46.d.cts +41 -0
  190. package/dist/index46.d.cts.map +1 -0
  191. package/dist/index46.d.ts +41 -0
  192. package/dist/index46.d.ts.map +1 -0
  193. package/dist/index47.d.cts +25 -0
  194. package/dist/index47.d.cts.map +1 -0
  195. package/dist/index47.d.ts +25 -0
  196. package/dist/index47.d.ts.map +1 -0
  197. package/dist/index48.d.cts +21 -0
  198. package/dist/index48.d.cts.map +1 -0
  199. package/dist/index48.d.ts +21 -0
  200. package/dist/index48.d.ts.map +1 -0
  201. package/dist/index49.d.cts +69 -0
  202. package/dist/index49.d.cts.map +1 -0
  203. package/dist/index49.d.ts +69 -0
  204. package/dist/index49.d.ts.map +1 -0
  205. package/dist/index5.d.cts +45 -0
  206. package/dist/index5.d.cts.map +1 -0
  207. package/dist/index5.d.ts +45 -0
  208. package/dist/index5.d.ts.map +1 -0
  209. package/dist/index50.d.cts +63 -0
  210. package/dist/index50.d.cts.map +1 -0
  211. package/dist/index50.d.ts +63 -0
  212. package/dist/index50.d.ts.map +1 -0
  213. package/dist/index51.d.cts +31 -0
  214. package/dist/index51.d.cts.map +1 -0
  215. package/dist/index51.d.ts +31 -0
  216. package/dist/index51.d.ts.map +1 -0
  217. package/dist/index52.d.cts +209 -0
  218. package/dist/index52.d.cts.map +1 -0
  219. package/dist/index52.d.ts +209 -0
  220. package/dist/index52.d.ts.map +1 -0
  221. package/dist/index53.d.cts +26 -0
  222. package/dist/index53.d.cts.map +1 -0
  223. package/dist/index53.d.ts +26 -0
  224. package/dist/index53.d.ts.map +1 -0
  225. package/dist/index54.d.cts +28 -0
  226. package/dist/index54.d.cts.map +1 -0
  227. package/dist/index54.d.ts +28 -0
  228. package/dist/index54.d.ts.map +1 -0
  229. package/dist/index55.d.cts +25 -0
  230. package/dist/index55.d.cts.map +1 -0
  231. package/dist/index55.d.ts +25 -0
  232. package/dist/index55.d.ts.map +1 -0
  233. package/dist/index56.d.cts +12 -0
  234. package/dist/index56.d.cts.map +1 -0
  235. package/dist/index56.d.ts +12 -0
  236. package/dist/index56.d.ts.map +1 -0
  237. package/dist/index57.d.cts +50 -0
  238. package/dist/index57.d.cts.map +1 -0
  239. package/dist/index57.d.ts +50 -0
  240. package/dist/index57.d.ts.map +1 -0
  241. package/dist/index58.d.cts +51 -0
  242. package/dist/index58.d.cts.map +1 -0
  243. package/dist/index58.d.ts +51 -0
  244. package/dist/index58.d.ts.map +1 -0
  245. package/dist/index59.d.cts +58 -0
  246. package/dist/index59.d.cts.map +1 -0
  247. package/dist/index59.d.ts +58 -0
  248. package/dist/index59.d.ts.map +1 -0
  249. package/dist/index6.d.cts +26 -0
  250. package/dist/index6.d.cts.map +1 -0
  251. package/dist/index6.d.ts +26 -0
  252. package/dist/index6.d.ts.map +1 -0
  253. package/dist/index60.d.cts +45 -0
  254. package/dist/index60.d.cts.map +1 -0
  255. package/dist/index60.d.ts +45 -0
  256. package/dist/index60.d.ts.map +1 -0
  257. package/dist/index61.d.cts +21 -0
  258. package/dist/index61.d.cts.map +1 -0
  259. package/dist/index61.d.ts +21 -0
  260. package/dist/index61.d.ts.map +1 -0
  261. package/dist/index62.d.cts +45 -0
  262. package/dist/index62.d.cts.map +1 -0
  263. package/dist/index62.d.ts +45 -0
  264. package/dist/index62.d.ts.map +1 -0
  265. package/dist/index63.d.cts +23 -0
  266. package/dist/index63.d.cts.map +1 -0
  267. package/dist/index63.d.ts +23 -0
  268. package/dist/index63.d.ts.map +1 -0
  269. package/dist/index64.d.cts +48 -0
  270. package/dist/index64.d.cts.map +1 -0
  271. package/dist/index64.d.ts +48 -0
  272. package/dist/index64.d.ts.map +1 -0
  273. package/dist/index65.d.cts +25 -0
  274. package/dist/index65.d.cts.map +1 -0
  275. package/dist/index65.d.ts +25 -0
  276. package/dist/index65.d.ts.map +1 -0
  277. package/dist/index66.d.cts +19 -0
  278. package/dist/index66.d.cts.map +1 -0
  279. package/dist/index66.d.ts +19 -0
  280. package/dist/index66.d.ts.map +1 -0
  281. package/dist/index67.d.cts +37 -0
  282. package/dist/index67.d.cts.map +1 -0
  283. package/dist/index67.d.ts +37 -0
  284. package/dist/index67.d.ts.map +1 -0
  285. package/dist/index68.d.cts +36 -0
  286. package/dist/index68.d.cts.map +1 -0
  287. package/dist/index68.d.ts +36 -0
  288. package/dist/index68.d.ts.map +1 -0
  289. package/dist/index69.d.cts +69 -0
  290. package/dist/index69.d.ts +69 -0
  291. package/dist/index7.d.cts +46 -0
  292. package/dist/index7.d.cts.map +1 -0
  293. package/dist/index7.d.ts +46 -0
  294. package/dist/index7.d.ts.map +1 -0
  295. package/dist/index70.d.cts +242 -0
  296. package/dist/index70.d.cts.map +1 -0
  297. package/dist/index70.d.ts +242 -0
  298. package/dist/index70.d.ts.map +1 -0
  299. package/dist/index8.d.cts +26 -0
  300. package/dist/index8.d.cts.map +1 -0
  301. package/dist/index8.d.ts +26 -0
  302. package/dist/index8.d.ts.map +1 -0
  303. package/dist/index9.d.cts +20 -0
  304. package/dist/index9.d.cts.map +1 -0
  305. package/dist/index9.d.ts +20 -0
  306. package/dist/index9.d.ts.map +1 -0
  307. package/dist/layouts/Container/index.cjs +39 -0
  308. package/dist/layouts/Container/index.cjs.map +1 -0
  309. package/dist/layouts/Container/index.d.cts +2 -0
  310. package/dist/layouts/Container/index.d.ts +2 -0
  311. package/dist/layouts/Container/index.js +38 -0
  312. package/dist/layouts/Container/index.js.map +1 -0
  313. package/dist/layouts/PageBackground/index.cjs +22 -0
  314. package/dist/layouts/PageBackground/index.cjs.map +1 -0
  315. package/dist/layouts/PageBackground/index.d.cts +2 -0
  316. package/dist/layouts/PageBackground/index.d.ts +2 -0
  317. package/dist/layouts/PageBackground/index.js +21 -0
  318. package/dist/layouts/PageBackground/index.js.map +1 -0
  319. package/dist/layouts/Stack/index.cjs +56 -0
  320. package/dist/layouts/Stack/index.cjs.map +1 -0
  321. package/dist/layouts/Stack/index.d.cts +2 -0
  322. package/dist/layouts/Stack/index.d.ts +2 -0
  323. package/dist/layouts/Stack/index.js +55 -0
  324. package/dist/layouts/Stack/index.js.map +1 -0
  325. package/dist/layouts/TwoColumn/index.cjs +51 -0
  326. package/dist/layouts/TwoColumn/index.cjs.map +1 -0
  327. package/dist/layouts/TwoColumn/index.d.cts +2 -0
  328. package/dist/layouts/TwoColumn/index.d.ts +2 -0
  329. package/dist/layouts/TwoColumn/index.js +48 -0
  330. package/dist/layouts/TwoColumn/index.js.map +1 -0
  331. package/dist/layouts/index.cjs +13 -12
  332. package/dist/layouts/index.d.cts +5 -133
  333. package/dist/layouts/index.d.ts +5 -133
  334. package/dist/layouts/index.js +5 -2
  335. package/dist/patterns/DataTable/index.cjs +114 -0
  336. package/dist/patterns/DataTable/index.cjs.map +1 -0
  337. package/dist/patterns/DataTable/index.d.cts +43 -0
  338. package/dist/patterns/DataTable/index.d.cts.map +1 -0
  339. package/dist/patterns/DataTable/index.d.ts +43 -0
  340. package/dist/patterns/DataTable/index.d.ts.map +1 -0
  341. package/dist/patterns/DataTable/index.js +110 -0
  342. package/dist/patterns/DataTable/index.js.map +1 -0
  343. package/dist/patterns/Footer/index.cjs +76 -0
  344. package/dist/patterns/Footer/index.cjs.map +1 -0
  345. package/dist/patterns/Footer/index.d.cts +54 -0
  346. package/dist/patterns/Footer/index.d.cts.map +1 -0
  347. package/dist/patterns/Footer/index.d.ts +54 -0
  348. package/dist/patterns/Footer/index.d.ts.map +1 -0
  349. package/dist/patterns/Footer/index.js +70 -0
  350. package/dist/patterns/Footer/index.js.map +1 -0
  351. package/dist/patterns/Header/index.cjs +17 -0
  352. package/dist/patterns/Header/index.d.cts +2 -0
  353. package/dist/patterns/Header/index.d.ts +2 -0
  354. package/dist/patterns/Header/index.js +2 -0
  355. package/dist/patterns/MediaObject/index.cjs +108 -0
  356. package/dist/patterns/MediaObject/index.cjs.map +1 -0
  357. package/dist/patterns/MediaObject/index.d.cts +71 -0
  358. package/dist/patterns/MediaObject/index.d.cts.map +1 -0
  359. package/dist/patterns/MediaObject/index.d.ts +71 -0
  360. package/dist/patterns/MediaObject/index.d.ts.map +1 -0
  361. package/dist/patterns/MediaObject/index.js +99 -0
  362. package/dist/patterns/MediaObject/index.js.map +1 -0
  363. package/dist/patterns/SectionCard/index.cjs +35 -0
  364. package/dist/patterns/SectionCard/index.cjs.map +1 -0
  365. package/dist/patterns/SectionCard/index.d.cts +21 -0
  366. package/dist/patterns/SectionCard/index.d.cts.map +1 -0
  367. package/dist/patterns/SectionCard/index.d.ts +21 -0
  368. package/dist/patterns/SectionCard/index.d.ts.map +1 -0
  369. package/dist/patterns/SectionCard/index.js +34 -0
  370. package/dist/patterns/SectionCard/index.js.map +1 -0
  371. package/dist/patterns/SectionHeading/index.cjs +44 -0
  372. package/dist/patterns/SectionHeading/index.cjs.map +1 -0
  373. package/dist/patterns/SectionHeading/index.d.cts +37 -0
  374. package/dist/patterns/SectionHeading/index.d.cts.map +1 -0
  375. package/dist/patterns/SectionHeading/index.d.ts +37 -0
  376. package/dist/patterns/SectionHeading/index.d.ts.map +1 -0
  377. package/dist/patterns/SectionHeading/index.js +43 -0
  378. package/dist/patterns/SectionHeading/index.js.map +1 -0
  379. package/dist/patterns/index.cjs +40 -7374
  380. package/dist/patterns/index.d.cts +7 -418
  381. package/dist/patterns/index.d.ts +7 -418
  382. package/dist/patterns/index.js +7 -7344
  383. package/dist/primitives/Accordion/index.cjs +54 -0
  384. package/dist/primitives/Accordion/index.cjs.map +1 -0
  385. package/dist/primitives/Accordion/index.d.cts +2 -0
  386. package/dist/primitives/Accordion/index.d.ts +2 -0
  387. package/dist/primitives/Accordion/index.js +50 -0
  388. package/dist/primitives/Accordion/index.js.map +1 -0
  389. package/dist/primitives/Alert/index.cjs +61 -0
  390. package/dist/primitives/Alert/index.cjs.map +1 -0
  391. package/dist/primitives/Alert/index.d.cts +2 -0
  392. package/dist/primitives/Alert/index.d.ts +2 -0
  393. package/dist/primitives/Alert/index.js +57 -0
  394. package/dist/primitives/Alert/index.js.map +1 -0
  395. package/dist/primitives/AlertDialog/index.cjs +102 -0
  396. package/dist/primitives/AlertDialog/index.cjs.map +1 -0
  397. package/dist/primitives/AlertDialog/index.d.cts +2 -0
  398. package/dist/primitives/AlertDialog/index.d.ts +2 -0
  399. package/dist/primitives/AlertDialog/index.js +90 -0
  400. package/dist/primitives/AlertDialog/index.js.map +1 -0
  401. package/dist/primitives/AspectRatio/index.cjs +15 -0
  402. package/dist/primitives/AspectRatio/index.cjs.map +1 -0
  403. package/dist/primitives/AspectRatio/index.d.cts +2 -0
  404. package/dist/primitives/AspectRatio/index.d.ts +2 -0
  405. package/dist/primitives/AspectRatio/index.js +14 -0
  406. package/dist/primitives/AspectRatio/index.js.map +1 -0
  407. package/dist/primitives/Avatar/index.cjs +64 -0
  408. package/dist/primitives/Avatar/index.cjs.map +1 -0
  409. package/dist/primitives/Avatar/index.d.cts +2 -0
  410. package/dist/primitives/Avatar/index.d.ts +2 -0
  411. package/dist/primitives/Avatar/index.js +58 -0
  412. package/dist/primitives/Avatar/index.js.map +1 -0
  413. package/dist/primitives/Badge/index.cjs +44 -0
  414. package/dist/primitives/Badge/index.cjs.map +1 -0
  415. package/dist/primitives/Badge/index.d.cts +2 -0
  416. package/dist/primitives/Badge/index.d.ts +2 -0
  417. package/dist/primitives/Badge/index.js +43 -0
  418. package/dist/primitives/Badge/index.js.map +1 -0
  419. package/dist/primitives/Breadcrumb/index.cjs +82 -0
  420. package/dist/primitives/Breadcrumb/index.cjs.map +1 -0
  421. package/dist/primitives/Breadcrumb/index.d.cts +2 -0
  422. package/dist/primitives/Breadcrumb/index.d.ts +2 -0
  423. package/dist/primitives/Breadcrumb/index.js +75 -0
  424. package/dist/primitives/Breadcrumb/index.js.map +1 -0
  425. package/dist/primitives/Button/index.cjs +61 -0
  426. package/dist/primitives/Button/index.cjs.map +1 -0
  427. package/dist/primitives/Button/index.d.cts +2 -0
  428. package/dist/primitives/Button/index.d.ts +2 -0
  429. package/dist/primitives/Button/index.js +60 -0
  430. package/dist/primitives/Button/index.js.map +1 -0
  431. package/dist/primitives/ButtonGroup/index.cjs +46 -0
  432. package/dist/primitives/ButtonGroup/index.cjs.map +1 -0
  433. package/dist/primitives/ButtonGroup/index.d.cts +2 -0
  434. package/dist/primitives/ButtonGroup/index.d.ts +2 -0
  435. package/dist/primitives/ButtonGroup/index.js +43 -0
  436. package/dist/primitives/ButtonGroup/index.js.map +1 -0
  437. package/dist/primitives/Calendar/index.cjs +112 -0
  438. package/dist/primitives/Calendar/index.cjs.map +1 -0
  439. package/dist/primitives/Calendar/index.d.cts +2 -0
  440. package/dist/primitives/Calendar/index.d.ts +2 -0
  441. package/dist/primitives/Calendar/index.js +108 -0
  442. package/dist/primitives/Calendar/index.js.map +1 -0
  443. package/dist/primitives/Card/index.cjs +128 -0
  444. package/dist/primitives/Card/index.cjs.map +1 -0
  445. package/dist/primitives/Card/index.d.cts +2 -0
  446. package/dist/primitives/Card/index.d.ts +2 -0
  447. package/dist/primitives/Card/index.js +121 -0
  448. package/dist/primitives/Card/index.js.map +1 -0
  449. package/dist/primitives/Carousel/index.cjs +146 -0
  450. package/dist/primitives/Carousel/index.cjs.map +1 -0
  451. package/dist/primitives/Carousel/index.d.cts +2 -0
  452. package/dist/primitives/Carousel/index.d.ts +2 -0
  453. package/dist/primitives/Carousel/index.js +138 -0
  454. package/dist/primitives/Carousel/index.js.map +1 -0
  455. package/dist/primitives/Chart/index.cjs +162 -0
  456. package/dist/primitives/Chart/index.cjs.map +1 -0
  457. package/dist/primitives/Chart/index.d.cts +2 -0
  458. package/dist/primitives/Chart/index.d.ts +2 -0
  459. package/dist/primitives/Chart/index.js +153 -0
  460. package/dist/primitives/Chart/index.js.map +1 -0
  461. package/dist/primitives/Checkbox/index.cjs +53 -0
  462. package/dist/primitives/Checkbox/index.cjs.map +1 -0
  463. package/dist/primitives/Checkbox/index.d.cts +2 -0
  464. package/dist/primitives/Checkbox/index.d.ts +2 -0
  465. package/dist/primitives/Checkbox/index.js +51 -0
  466. package/dist/primitives/Checkbox/index.js.map +1 -0
  467. package/dist/primitives/CheckboxTree/index.cjs +106 -0
  468. package/dist/primitives/CheckboxTree/index.cjs.map +1 -0
  469. package/dist/primitives/CheckboxTree/index.d.cts +2 -0
  470. package/dist/primitives/CheckboxTree/index.d.ts +2 -0
  471. package/dist/primitives/CheckboxTree/index.js +103 -0
  472. package/dist/primitives/CheckboxTree/index.js.map +1 -0
  473. package/dist/primitives/Collapsible/index.cjs +31 -0
  474. package/dist/primitives/Collapsible/index.cjs.map +1 -0
  475. package/dist/primitives/Collapsible/index.d.cts +2 -0
  476. package/dist/primitives/Collapsible/index.d.ts +2 -0
  477. package/dist/primitives/Collapsible/index.js +28 -0
  478. package/dist/primitives/Collapsible/index.js.map +1 -0
  479. package/dist/primitives/Command/index.cjs +104 -0
  480. package/dist/primitives/Command/index.cjs.map +1 -0
  481. package/dist/primitives/Command/index.d.cts +2 -0
  482. package/dist/primitives/Command/index.d.ts +2 -0
  483. package/dist/primitives/Command/index.js +95 -0
  484. package/dist/primitives/Command/index.js.map +1 -0
  485. package/dist/primitives/ContextMenu/index.cjs +152 -0
  486. package/dist/primitives/ContextMenu/index.cjs.map +1 -0
  487. package/dist/primitives/ContextMenu/index.d.cts +2 -0
  488. package/dist/primitives/ContextMenu/index.d.ts +2 -0
  489. package/dist/primitives/ContextMenu/index.js +137 -0
  490. package/dist/primitives/ContextMenu/index.js.map +1 -0
  491. package/dist/primitives/Credits/index.cjs +39 -0
  492. package/dist/primitives/Credits/index.cjs.map +1 -0
  493. package/dist/primitives/Credits/index.d.cts +2 -0
  494. package/dist/primitives/Credits/index.d.ts +2 -0
  495. package/dist/primitives/Credits/index.js +38 -0
  496. package/dist/primitives/Credits/index.js.map +1 -0
  497. package/dist/primitives/Dialog/index.cjs +121 -0
  498. package/dist/primitives/Dialog/index.cjs.map +1 -0
  499. package/dist/primitives/Dialog/index.d.cts +2 -0
  500. package/dist/primitives/Dialog/index.d.ts +2 -0
  501. package/dist/primitives/Dialog/index.js +111 -0
  502. package/dist/primitives/Dialog/index.js.map +1 -0
  503. package/dist/primitives/Drawer/index.cjs +98 -0
  504. package/dist/primitives/Drawer/index.cjs.map +1 -0
  505. package/dist/primitives/Drawer/index.d.cts +2 -0
  506. package/dist/primitives/Drawer/index.d.ts +2 -0
  507. package/dist/primitives/Drawer/index.js +88 -0
  508. package/dist/primitives/Drawer/index.js.map +1 -0
  509. package/dist/primitives/DropdownMenu/index.cjs +153 -0
  510. package/dist/primitives/DropdownMenu/index.cjs.map +1 -0
  511. package/dist/primitives/DropdownMenu/index.d.cts +2 -0
  512. package/dist/primitives/DropdownMenu/index.d.ts +2 -0
  513. package/dist/primitives/DropdownMenu/index.js +138 -0
  514. package/dist/primitives/DropdownMenu/index.js.map +1 -0
  515. package/dist/primitives/Empty/index.cjs +84 -0
  516. package/dist/primitives/Empty/index.cjs.map +1 -0
  517. package/dist/primitives/Empty/index.d.cts +2 -0
  518. package/dist/primitives/Empty/index.d.ts +2 -0
  519. package/dist/primitives/Empty/index.js +77 -0
  520. package/dist/primitives/Empty/index.js.map +1 -0
  521. package/dist/primitives/Field/index.cjs +139 -0
  522. package/dist/primitives/Field/index.cjs.map +1 -0
  523. package/dist/primitives/Field/index.d.cts +2 -0
  524. package/dist/primitives/Field/index.d.ts +2 -0
  525. package/dist/primitives/Field/index.js +129 -0
  526. package/dist/primitives/Field/index.js.map +1 -0
  527. package/dist/primitives/Form/index.cjs +104 -0
  528. package/dist/primitives/Form/index.cjs.map +1 -0
  529. package/dist/primitives/Form/index.d.cts +2 -0
  530. package/dist/primitives/Form/index.d.ts +2 -0
  531. package/dist/primitives/Form/index.js +94 -0
  532. package/dist/primitives/Form/index.js.map +1 -0
  533. package/dist/primitives/Heading/index.cjs +53 -0
  534. package/dist/primitives/Heading/index.cjs.map +1 -0
  535. package/dist/primitives/Heading/index.d.cts +2 -0
  536. package/dist/primitives/Heading/index.d.ts +2 -0
  537. package/dist/primitives/Heading/index.js +52 -0
  538. package/dist/primitives/Heading/index.js.map +1 -0
  539. package/dist/primitives/HoverCard/index.cjs +38 -0
  540. package/dist/primitives/HoverCard/index.cjs.map +1 -0
  541. package/dist/primitives/HoverCard/index.d.cts +2 -0
  542. package/dist/primitives/HoverCard/index.d.ts +2 -0
  543. package/dist/primitives/HoverCard/index.js +35 -0
  544. package/dist/primitives/HoverCard/index.js.map +1 -0
  545. package/dist/primitives/Icon/index.cjs +4 -0
  546. package/dist/primitives/Icon/index.d.cts +2 -0
  547. package/dist/primitives/Icon/index.d.ts +2 -0
  548. package/dist/primitives/Icon/index.js +2 -0
  549. package/dist/primitives/InfoBanner/index.cjs +79 -0
  550. package/dist/primitives/InfoBanner/index.cjs.map +1 -0
  551. package/dist/primitives/InfoBanner/index.d.cts +2 -0
  552. package/dist/primitives/InfoBanner/index.d.ts +2 -0
  553. package/dist/primitives/InfoBanner/index.js +78 -0
  554. package/dist/primitives/InfoBanner/index.js.map +1 -0
  555. package/dist/primitives/Input/index.cjs +39 -0
  556. package/dist/primitives/Input/index.cjs.map +1 -0
  557. package/dist/primitives/Input/index.d.cts +2 -0
  558. package/dist/primitives/Input/index.d.ts +2 -0
  559. package/dist/primitives/Input/index.js +38 -0
  560. package/dist/primitives/Input/index.js.map +1 -0
  561. package/dist/primitives/InputGroup/index.cjs +91 -0
  562. package/dist/primitives/InputGroup/index.cjs.map +1 -0
  563. package/dist/primitives/InputGroup/index.d.cts +2 -0
  564. package/dist/primitives/InputGroup/index.d.ts +2 -0
  565. package/dist/primitives/InputGroup/index.js +85 -0
  566. package/dist/primitives/InputGroup/index.js.map +1 -0
  567. package/dist/primitives/InputOtp/index.cjs +80 -0
  568. package/dist/primitives/InputOtp/index.cjs.map +1 -0
  569. package/dist/primitives/InputOtp/index.d.cts +2 -0
  570. package/dist/primitives/InputOtp/index.d.ts +2 -0
  571. package/dist/primitives/InputOtp/index.js +74 -0
  572. package/dist/primitives/InputOtp/index.js.map +1 -0
  573. package/dist/primitives/Item/index.cjs +137 -0
  574. package/dist/primitives/Item/index.cjs.map +1 -0
  575. package/dist/primitives/Item/index.d.cts +2 -0
  576. package/dist/primitives/Item/index.d.ts +2 -0
  577. package/dist/primitives/Item/index.js +127 -0
  578. package/dist/primitives/Item/index.js.map +1 -0
  579. package/dist/primitives/Kbd/index.cjs +25 -0
  580. package/dist/primitives/Kbd/index.cjs.map +1 -0
  581. package/dist/primitives/Kbd/index.d.cts +2 -0
  582. package/dist/primitives/Kbd/index.d.ts +2 -0
  583. package/dist/primitives/Kbd/index.js +23 -0
  584. package/dist/primitives/Kbd/index.js.map +1 -0
  585. package/dist/primitives/Label/index.cjs +18 -0
  586. package/dist/primitives/Label/index.cjs.map +1 -0
  587. package/dist/primitives/Label/index.d.cts +2 -0
  588. package/dist/primitives/Label/index.d.ts +2 -0
  589. package/dist/primitives/Label/index.js +17 -0
  590. package/dist/primitives/Label/index.js.map +1 -0
  591. package/dist/primitives/Link/index.cjs +38 -0
  592. package/dist/primitives/Link/index.cjs.map +1 -0
  593. package/dist/primitives/Link/index.d.cts +2 -0
  594. package/dist/primitives/Link/index.d.ts +2 -0
  595. package/dist/primitives/Link/index.js +37 -0
  596. package/dist/primitives/Link/index.js.map +1 -0
  597. package/dist/primitives/Logo/index.cjs +3 -0
  598. package/dist/primitives/Logo/index.d.cts +2 -0
  599. package/dist/primitives/Logo/index.d.ts +2 -0
  600. package/dist/primitives/Logo/index.js +2 -0
  601. package/dist/primitives/Menubar/index.cjs +165 -0
  602. package/dist/primitives/Menubar/index.cjs.map +1 -0
  603. package/dist/primitives/Menubar/index.d.cts +2 -0
  604. package/dist/primitives/Menubar/index.d.ts +2 -0
  605. package/dist/primitives/Menubar/index.js +149 -0
  606. package/dist/primitives/Menubar/index.js.map +1 -0
  607. package/dist/primitives/NativeSelect/index.cjs +40 -0
  608. package/dist/primitives/NativeSelect/index.cjs.map +1 -0
  609. package/dist/primitives/NativeSelect/index.d.cts +2 -0
  610. package/dist/primitives/NativeSelect/index.d.ts +2 -0
  611. package/dist/primitives/NativeSelect/index.js +39 -0
  612. package/dist/primitives/NativeSelect/index.js.map +1 -0
  613. package/dist/primitives/NavRail/index.cjs +195 -0
  614. package/dist/primitives/NavRail/index.cjs.map +1 -0
  615. package/dist/primitives/NavRail/index.d.cts +2 -0
  616. package/dist/primitives/NavRail/index.d.ts +2 -0
  617. package/dist/primitives/NavRail/index.js +185 -0
  618. package/dist/primitives/NavRail/index.js.map +1 -0
  619. package/dist/primitives/NavigationMenu/index.cjs +98 -0
  620. package/dist/primitives/NavigationMenu/index.cjs.map +1 -0
  621. package/dist/primitives/NavigationMenu/index.d.cts +2 -0
  622. package/dist/primitives/NavigationMenu/index.d.ts +2 -0
  623. package/dist/primitives/NavigationMenu/index.js +89 -0
  624. package/dist/primitives/NavigationMenu/index.js.map +1 -0
  625. package/dist/primitives/Pagination/index.cjs +93 -0
  626. package/dist/primitives/Pagination/index.cjs.map +1 -0
  627. package/dist/primitives/Pagination/index.d.cts +2 -0
  628. package/dist/primitives/Pagination/index.d.ts +2 -0
  629. package/dist/primitives/Pagination/index.js +86 -0
  630. package/dist/primitives/Pagination/index.js.map +1 -0
  631. package/dist/primitives/Popover/index.cjs +70 -0
  632. package/dist/primitives/Popover/index.cjs.map +1 -0
  633. package/dist/primitives/Popover/index.d.cts +2 -0
  634. package/dist/primitives/Popover/index.d.ts +2 -0
  635. package/dist/primitives/Popover/index.js +63 -0
  636. package/dist/primitives/Popover/index.js.map +1 -0
  637. package/dist/primitives/Progress/index.cjs +44 -0
  638. package/dist/primitives/Progress/index.cjs.map +1 -0
  639. package/dist/primitives/Progress/index.d.cts +2 -0
  640. package/dist/primitives/Progress/index.d.ts +2 -0
  641. package/dist/primitives/Progress/index.js +43 -0
  642. package/dist/primitives/Progress/index.js.map +1 -0
  643. package/dist/primitives/RadioGroup/index.cjs +65 -0
  644. package/dist/primitives/RadioGroup/index.cjs.map +1 -0
  645. package/dist/primitives/RadioGroup/index.d.cts +2 -0
  646. package/dist/primitives/RadioGroup/index.d.ts +2 -0
  647. package/dist/primitives/RadioGroup/index.js +62 -0
  648. package/dist/primitives/RadioGroup/index.js.map +1 -0
  649. package/dist/primitives/Resizable/index.cjs +41 -0
  650. package/dist/primitives/Resizable/index.cjs.map +1 -0
  651. package/dist/primitives/Resizable/index.d.cts +2 -0
  652. package/dist/primitives/Resizable/index.d.ts +2 -0
  653. package/dist/primitives/Resizable/index.js +36 -0
  654. package/dist/primitives/Resizable/index.js.map +1 -0
  655. package/dist/primitives/ScrollArea/index.cjs +40 -0
  656. package/dist/primitives/ScrollArea/index.cjs.map +1 -0
  657. package/dist/primitives/ScrollArea/index.d.cts +2 -0
  658. package/dist/primitives/ScrollArea/index.d.ts +2 -0
  659. package/dist/primitives/ScrollArea/index.js +38 -0
  660. package/dist/primitives/ScrollArea/index.js.map +1 -0
  661. package/dist/primitives/Select/index.cjs +126 -0
  662. package/dist/primitives/Select/index.cjs.map +1 -0
  663. package/dist/primitives/Select/index.d.cts +2 -0
  664. package/dist/primitives/Select/index.d.ts +2 -0
  665. package/dist/primitives/Select/index.js +116 -0
  666. package/dist/primitives/Select/index.js.map +1 -0
  667. package/dist/primitives/Separator/index.cjs +25 -0
  668. package/dist/primitives/Separator/index.cjs.map +1 -0
  669. package/dist/primitives/Separator/index.d.cts +2 -0
  670. package/dist/primitives/Separator/index.d.ts +2 -0
  671. package/dist/primitives/Separator/index.js +24 -0
  672. package/dist/primitives/Separator/index.js.map +1 -0
  673. package/dist/primitives/Sheet/index.cjs +107 -0
  674. package/dist/primitives/Sheet/index.cjs.map +1 -0
  675. package/dist/primitives/Sheet/index.d.cts +2 -0
  676. package/dist/primitives/Sheet/index.d.ts +2 -0
  677. package/dist/primitives/Sheet/index.js +99 -0
  678. package/dist/primitives/Sheet/index.js.map +1 -0
  679. package/dist/primitives/Sidebar/index.cjs +26 -0
  680. package/dist/primitives/Sidebar/index.d.cts +2 -0
  681. package/dist/primitives/Sidebar/index.d.ts +2 -0
  682. package/dist/primitives/Sidebar/index.js +2 -0
  683. package/dist/primitives/Skeleton/index.cjs +43 -0
  684. package/dist/primitives/Skeleton/index.cjs.map +1 -0
  685. package/dist/primitives/Skeleton/index.d.cts +2 -0
  686. package/dist/primitives/Skeleton/index.d.ts +2 -0
  687. package/dist/primitives/Skeleton/index.js +39 -0
  688. package/dist/primitives/Skeleton/index.js.map +1 -0
  689. package/dist/primitives/Slider/index.cjs +46 -0
  690. package/dist/primitives/Slider/index.cjs.map +1 -0
  691. package/dist/primitives/Slider/index.d.cts +2 -0
  692. package/dist/primitives/Slider/index.d.ts +2 -0
  693. package/dist/primitives/Slider/index.js +43 -0
  694. package/dist/primitives/Slider/index.js.map +1 -0
  695. package/dist/primitives/Sonner/index.cjs +42 -0
  696. package/dist/primitives/Sonner/index.cjs.map +1 -0
  697. package/dist/primitives/Sonner/index.d.cts +2 -0
  698. package/dist/primitives/Sonner/index.d.ts +2 -0
  699. package/dist/primitives/Sonner/index.js +41 -0
  700. package/dist/primitives/Sonner/index.js.map +1 -0
  701. package/dist/primitives/Spinner/index.cjs +19 -0
  702. package/dist/primitives/Spinner/index.cjs.map +1 -0
  703. package/dist/primitives/Spinner/index.d.cts +2 -0
  704. package/dist/primitives/Spinner/index.d.ts +2 -0
  705. package/dist/primitives/Spinner/index.js +18 -0
  706. package/dist/primitives/Spinner/index.js.map +1 -0
  707. package/dist/primitives/Switch/index.cjs +71 -0
  708. package/dist/primitives/Switch/index.cjs.map +1 -0
  709. package/dist/primitives/Switch/index.d.cts +2 -0
  710. package/dist/primitives/Switch/index.d.ts +2 -0
  711. package/dist/primitives/Switch/index.js +68 -0
  712. package/dist/primitives/Switch/index.js.map +1 -0
  713. package/dist/primitives/Table/index.cjs +84 -0
  714. package/dist/primitives/Table/index.cjs.map +1 -0
  715. package/dist/primitives/Table/index.d.cts +2 -0
  716. package/dist/primitives/Table/index.d.ts +2 -0
  717. package/dist/primitives/Table/index.js +76 -0
  718. package/dist/primitives/Table/index.js.map +1 -0
  719. package/dist/primitives/Tabs/index.cjs +267 -0
  720. package/dist/primitives/Tabs/index.cjs.map +1 -0
  721. package/dist/primitives/Tabs/index.d.cts +2 -0
  722. package/dist/primitives/Tabs/index.d.ts +2 -0
  723. package/dist/primitives/Tabs/index.js +258 -0
  724. package/dist/primitives/Tabs/index.js.map +1 -0
  725. package/dist/primitives/Text/index.cjs +64 -0
  726. package/dist/primitives/Text/index.cjs.map +1 -0
  727. package/dist/primitives/Text/index.d.cts +2 -0
  728. package/dist/primitives/Text/index.d.ts +2 -0
  729. package/dist/primitives/Text/index.js +63 -0
  730. package/dist/primitives/Text/index.js.map +1 -0
  731. package/dist/primitives/Textarea/index.cjs +24 -0
  732. package/dist/primitives/Textarea/index.cjs.map +1 -0
  733. package/dist/primitives/Textarea/index.d.cts +2 -0
  734. package/dist/primitives/Textarea/index.d.ts +2 -0
  735. package/dist/primitives/Textarea/index.js +23 -0
  736. package/dist/primitives/Textarea/index.js.map +1 -0
  737. package/dist/primitives/ThemeProvider/index.cjs +93 -0
  738. package/dist/primitives/ThemeProvider/index.cjs.map +1 -0
  739. package/dist/primitives/ThemeProvider/index.d.cts +2 -0
  740. package/dist/primitives/ThemeProvider/index.d.ts +2 -0
  741. package/dist/primitives/ThemeProvider/index.js +88 -0
  742. package/dist/primitives/ThemeProvider/index.js.map +1 -0
  743. package/dist/primitives/Toggle/index.cjs +59 -0
  744. package/dist/primitives/Toggle/index.cjs.map +1 -0
  745. package/dist/primitives/Toggle/index.d.cts +2 -0
  746. package/dist/primitives/Toggle/index.d.ts +2 -0
  747. package/dist/primitives/Toggle/index.js +58 -0
  748. package/dist/primitives/Toggle/index.js.map +1 -0
  749. package/dist/primitives/ToggleGroup/index.cjs +65 -0
  750. package/dist/primitives/ToggleGroup/index.cjs.map +1 -0
  751. package/dist/primitives/ToggleGroup/index.d.cts +2 -0
  752. package/dist/primitives/ToggleGroup/index.d.ts +2 -0
  753. package/dist/primitives/ToggleGroup/index.js +61 -0
  754. package/dist/primitives/ToggleGroup/index.js.map +1 -0
  755. package/dist/primitives/Tooltip/index.cjs +47 -0
  756. package/dist/primitives/Tooltip/index.cjs.map +1 -0
  757. package/dist/primitives/Tooltip/index.d.cts +2 -0
  758. package/dist/primitives/Tooltip/index.d.ts +2 -0
  759. package/dist/primitives/Tooltip/index.js +43 -0
  760. package/dist/primitives/Tooltip/index.js.map +1 -0
  761. package/dist/primitives/index.cjs +398 -255
  762. package/dist/primitives/index.d.cts +65 -2
  763. package/dist/primitives/index.d.ts +65 -2
  764. package/dist/primitives/index.js +65 -5
  765. package/dist/styles/base.css +113 -0
  766. package/dist/styles/glass.css +75 -0
  767. package/dist/styles/index.css +43 -23
  768. package/dist/styles/semantic.css +167 -0
  769. package/dist/styles/theme.css +54 -24
  770. package/dist/styles/tokens/alpha.css +39 -0
  771. package/dist/styles/tokens/border-radius.css +17 -0
  772. package/dist/styles/tokens/chart-colors-dark.css +18 -0
  773. package/dist/styles/tokens/chart-colors-light.css +18 -0
  774. package/dist/styles/tokens/colors.css +251 -0
  775. package/dist/styles/tokens/mode-dark.css +101 -0
  776. package/dist/styles/tokens/mode-light.css +101 -0
  777. package/dist/styles/tokens/shadows.css +14 -0
  778. package/dist/styles/tokens/spacing.css +44 -0
  779. package/dist/styles/tokens/theme-bodhi.css +35 -0
  780. package/dist/styles/tokens/theme-slingshot.css +35 -0
  781. package/dist/styles/tokens/theme-sustain.css +35 -0
  782. package/dist/styles/tokens/typography.css +83 -0
  783. package/package.json +33 -40
  784. package/dist/AiChatPanel.cjs +0 -1603
  785. package/dist/AiChatPanel.cjs.map +0 -1
  786. package/dist/AiChatPanel.js +0 -1526
  787. package/dist/AiChatPanel.js.map +0 -1
  788. package/dist/BodhiLogo.cjs +0 -240
  789. package/dist/BodhiLogo.cjs.map +0 -1
  790. package/dist/BodhiLogo.js +0 -194
  791. package/dist/BodhiLogo.js.map +0 -1
  792. package/dist/Skeleton.cjs +0 -19
  793. package/dist/Skeleton.cjs.map +0 -1
  794. package/dist/Skeleton.js +0 -14
  795. package/dist/Skeleton.js.map +0 -1
  796. package/dist/SustainLogo.cjs +0 -415
  797. package/dist/SustainLogo.cjs.map +0 -1
  798. package/dist/SustainLogo.js +0 -378
  799. package/dist/SustainLogo.js.map +0 -1
  800. package/dist/contexts/index.cjs.map +0 -1
  801. package/dist/contexts/index.d.cts.map +0 -1
  802. package/dist/contexts/index.d.ts.map +0 -1
  803. package/dist/contexts/index.js.map +0 -1
  804. package/dist/layouts/index.d.cts.map +0 -1
  805. package/dist/layouts/index.d.ts.map +0 -1
  806. package/dist/layouts.cjs +0 -3245
  807. package/dist/layouts.cjs.map +0 -1
  808. package/dist/layouts.js +0 -3180
  809. package/dist/layouts.js.map +0 -1
  810. package/dist/patterns/index.cjs.map +0 -1
  811. package/dist/patterns/index.d.cts.map +0 -1
  812. package/dist/patterns/index.d.ts.map +0 -1
  813. package/dist/patterns/index.js.map +0 -1
  814. package/dist/primitives.cjs +0 -4292
  815. package/dist/primitives.cjs.map +0 -1
  816. package/dist/primitives.js +0 -2807
  817. package/dist/primitives.js.map +0 -1
  818. package/dist/styles/base/colors.css +0 -300
  819. package/dist/styles/base/component-tokens.css +0 -240
  820. package/dist/styles/base/elevation.css +0 -7
  821. package/dist/styles/base/fonts.css +0 -14
  822. package/dist/styles/base/global.css +0 -305
  823. package/dist/styles/base/radius.css +0 -22
  824. package/dist/styles/base/semantic-aliases.css +0 -53
  825. package/dist/styles/base/spacing.css +0 -33
  826. package/dist/styles/base/typography.css +0 -48
  827. package/dist/styles/generated/bodhi-vars.css +0 -34
  828. package/dist/styles/generated/dark.css +0 -87
  829. package/dist/styles/generated/light.css +0 -87
  830. package/dist/styles/generated/slingshot-vars.css +0 -34
  831. package/dist/styles/generated/sustain-vars.css +0 -34
  832. package/dist/styles/themes/bodhi.css +0 -166
  833. package/dist/styles/themes/slingshot.css +0 -144
  834. package/dist/styles/themes/sustain.css +0 -130
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["TabsPrimitive"],"sources":["../../../src/primitives/Tabs/Tabs.tsx"],"sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// Tabs — built on Radix Tabs (content panels + roving-focus keyboard nav + a11y).\n// One component, four visual `variant`s, each supporting horizontal/vertical\n// `orientation`:\n// - \"line\": underline under the active tab.\n// - \"pill\" (default): a muted track; the active tab is an elevated pill.\n// - \"segmented\": a muted track with a single sliding indicator that animates\n// between tabs.\n// - \"fancy\": translucent glass card tabs; the active tab merges into the glass\n// content panel below (login-style). `size` controls the fancy vertical padding.\n// `variant`/`size`/`orientation` are set on the root and shared via context.\n\ntype TabsVariant = \"line\" | \"pill\" | \"segmented\" | \"fancy\";\ntype TabsSize = \"sm\" | \"md\" | \"lg\";\ntype TabsOrientation = \"horizontal\" | \"vertical\";\n\nconst TabsContext = React.createContext<{\n variant: TabsVariant;\n size: TabsSize;\n orientation: TabsOrientation;\n}>({ variant: \"pill\", size: \"md\", orientation: \"horizontal\" });\n\n/**\n * Tabbed interface root: holds the active value and shares `variant`/`size`/\n * `orientation` with its `TabsList`/`TabsTrigger`/`TabsContent` via context.\n */\nfunction Tabs({\n className,\n variant = \"pill\",\n size = \"md\",\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root> & {\n /** Visual style of the tabs: underline, pill track, sliding segmented, or glass cards. */\n variant?: TabsVariant;\n /** Control density — drives padding and text size of the triggers. */\n size?: TabsSize;\n}) {\n const resolvedOrientation: TabsOrientation =\n orientation === \"vertical\" ? \"vertical\" : \"horizontal\";\n const ctx = React.useMemo(\n () => ({ variant, size, orientation: resolvedOrientation }),\n [variant, size, resolvedOrientation],\n );\n return (\n <TabsContext.Provider value={ctx}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-variant={variant}\n data-orientation={resolvedOrientation}\n orientation={resolvedOrientation}\n className={cn(\n \"group/tabs flex data-[orientation=horizontal]:flex-col\",\n variant === \"fancy\" ? \"gap-0\" : \"gap-2\",\n className,\n )}\n {...props}\n />\n </TabsContext.Provider>\n );\n}\n\nconst tabsListVariants = cva(\"relative inline-flex items-center text-muted-foreground\", {\n variants: {\n variant: {\n line: \"gap-1 bg-transparent\",\n pill: \"justify-center rounded-lg bg-muted p-[3px]\",\n segmented: \"justify-center rounded-xl bg-muted p-1\",\n fancy: \"w-full items-stretch gap-2 bg-transparent\",\n },\n orientation: {\n horizontal: \"\",\n vertical: \"h-fit flex-col\",\n },\n size: { sm: \"\", md: \"\", lg: \"\" },\n },\n compoundVariants: [\n // Track height for the horizontal pill/segmented variants.\n { variant: [\"pill\", \"segmented\"], orientation: \"horizontal\", size: \"sm\", class: \"h-8\" },\n { variant: [\"pill\", \"segmented\"], orientation: \"horizontal\", size: \"md\", class: \"h-9\" },\n { variant: [\"pill\", \"segmented\"], orientation: \"horizontal\", size: \"lg\", class: \"h-10\" },\n ],\n defaultVariants: { variant: \"pill\", orientation: \"horizontal\", size: \"md\" },\n});\n\n/** Row (or column) of tab triggers; renders the sliding indicator for the `segmented` variant. */\nfunction TabsList({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n const { variant, size, orientation } = React.useContext(TabsContext);\n const isSegmented = variant === \"segmented\";\n const listRef = React.useRef<HTMLDivElement>(null);\n const [indicator, setIndicator] = React.useState<{\n left: number;\n top: number;\n width: number;\n height: number;\n } | null>(null);\n\n React.useEffect(() => {\n if (!isSegmented) return;\n const list = listRef.current;\n if (!list) return;\n const update = () => {\n const active = list.querySelector<HTMLElement>(\n '[data-slot=\"tabs-trigger\"][data-state=\"active\"]',\n );\n if (!active) {\n setIndicator(null);\n return;\n }\n setIndicator({\n left: active.offsetLeft,\n top: active.offsetTop,\n width: active.offsetWidth,\n height: active.offsetHeight,\n });\n };\n update();\n const mutation = new MutationObserver(update);\n mutation.observe(list, { attributes: true, attributeFilter: [\"data-state\"], subtree: true });\n const resize = new ResizeObserver(update);\n resize.observe(list);\n return () => {\n mutation.disconnect();\n resize.disconnect();\n };\n }, [isSegmented]);\n\n return (\n <TabsPrimitive.List\n ref={listRef}\n data-slot=\"tabs-list\"\n className={cn(tabsListVariants({ variant, size, orientation }), className)}\n {...props}\n >\n {isSegmented && indicator && (\n <span\n data-slot=\"tabs-indicator\"\n aria-hidden\n className=\"absolute z-0 rounded-lg bg-background shadow-sm transition-all duration-200 ease-out motion-reduce:transition-none\"\n style={\n orientation === \"vertical\"\n ? { top: indicator.top, height: indicator.height, left: 4, right: 4 }\n : { left: indicator.left, width: indicator.width, top: 4, bottom: 4 }\n }\n />\n )}\n {children}\n </TabsPrimitive.List>\n );\n}\n\nconst tabsTriggerVariants = cva(\n \"relative inline-flex items-center justify-center gap-1.5 font-medium whitespace-nowrap text-foreground/70 outline-none transition-all hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n line: \"h-[calc(100%-1px)] flex-1 rounded-none\",\n pill: \"h-[calc(100%-1px)] flex-1 rounded-md border border-transparent data-[state=active]:bg-background data-[state=active]:shadow-sm dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30\",\n segmented: \"z-[1] h-[calc(100%-1px)] flex-1 rounded-lg\",\n fancy:\n \"mb-1.5 flex-1 justify-between rounded-xl bg-[var(--glass-subtle)] backdrop-blur-[var(--glass-blur)] hover:bg-[var(--glass-light)] data-[state=active]:mb-0 data-[state=active]:rounded-b-none data-[state=active]:bg-[var(--glass-light)]\",\n },\n orientation: { horizontal: \"\", vertical: \"w-full justify-start\" },\n size: { sm: \"\", md: \"\", lg: \"\" },\n },\n compoundVariants: [\n // Padding + text size for the track variants.\n { variant: [\"line\", \"pill\", \"segmented\"], size: \"sm\", class: \"px-1.5 py-1 text-xs\" },\n { variant: [\"line\", \"pill\", \"segmented\"], size: \"md\", class: \"px-2 py-1 text-sm\" },\n { variant: [\"line\", \"pill\", \"segmented\"], size: \"lg\", class: \"px-3 py-1 text-base\" },\n // Fancy footprint scales with size; the active tab adds bottom padding so it\n // merges into the panel while inactive tabs stay shorter (gap above content).\n { variant: \"fancy\", size: \"sm\", class: \"px-4 py-2 text-sm\" },\n { variant: \"fancy\", size: \"md\", class: \"px-4 py-3 text-sm\" },\n { variant: \"fancy\", size: \"lg\", class: \"px-4 py-4 text-base\" },\n // Underline position for the line variant (per orientation).\n {\n variant: \"line\",\n orientation: \"horizontal\",\n class:\n \"after:absolute after:inset-x-0 after:bottom-[-5px] after:h-0.5 after:bg-foreground after:opacity-0 after:transition-opacity data-[state=active]:after:opacity-100\",\n },\n {\n variant: \"line\",\n orientation: \"vertical\",\n class:\n \"after:absolute after:inset-y-0 after:right-[-5px] after:w-0.5 after:bg-foreground after:opacity-0 after:transition-opacity data-[state=active]:after:opacity-100\",\n },\n ],\n defaultVariants: { variant: \"pill\", orientation: \"horizontal\", size: \"md\" },\n },\n);\n\n/** Clickable tab button; its `value` selects the matching `TabsContent` panel. */\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n const { variant, size, orientation } = React.useContext(TabsContext);\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(tabsTriggerVariants({ variant, size, orientation }), className)}\n {...props}\n />\n );\n}\n\n/** Panel shown when its `value` matches the active tab; styled as a glass panel for the `fancy` variant. */\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n const { variant } = React.useContext(TabsContext);\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\n \"flex-1 outline-none\",\n // Fancy: a glass panel the active tab merges into (flat top, matching tint).\n variant === \"fancy\" &&\n \"flex-none rounded-xl rounded-t-none bg-[var(--glass-light)] p-5 backdrop-blur-[var(--glass-blur)]\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Trailing count badge for a tab trigger; goes dark on the `fancy` variant to match its cards. */\nfunction TabsCounter({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"tabs-counter\"\n className={cn(\n \"ml-1 inline-flex h-4 min-w-4 items-center justify-center rounded-full bg-muted px-1 text-xs font-medium text-muted-foreground\",\n \"group-data-[variant=fancy]/tabs:h-5 group-data-[variant=fancy]/tabs:min-w-5 group-data-[variant=fancy]/tabs:bg-foreground group-data-[variant=fancy]/tabs:text-background\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n TabsCounter,\n tabsListVariants,\n tabsTriggerVariants,\n};\n"],"mappings":";;;;;;AAuBA,MAAM,cAAc,MAAM,cAIvB;CAAE,SAAS;CAAQ,MAAM;CAAM,aAAa;AAAa,CAAC;;;;;AAM7D,SAAS,KAAK,EACZ,WACA,UAAU,QACV,OAAO,MACP,cAAc,cACd,GAAG,SAMF;CACD,MAAM,sBACJ,gBAAgB,aAAa,aAAa;CAC5C,MAAM,MAAM,MAAM,eACT;EAAE;EAAS;EAAM,aAAa;CAAoB,IACzD;EAAC;EAAS;EAAM;CAAmB,CACrC;CACA,OACE,oBAAC,YAAY,UAAb;EAAsB,OAAO;YAC3B,oBAACA,OAAc,MAAf;GACE,aAAU;GACV,gBAAc;GACd,oBAAkB;GAClB,aAAa;GACb,WAAW,GACT,0DACA,YAAY,UAAU,UAAU,SAChC,SACF;GACA,GAAI;EACL,CAAA;CACmB,CAAA;AAE1B;AAEA,MAAM,mBAAmB,IAAI,2DAA2D;CACtF,UAAU;EACR,SAAS;GACP,MAAM;GACN,MAAM;GACN,WAAW;GACX,OAAO;EACT;EACA,aAAa;GACX,YAAY;GACZ,UAAU;EACZ;EACA,MAAM;GAAE,IAAI;GAAI,IAAI;GAAI,IAAI;EAAG;CACjC;CACA,kBAAkB;EAEhB;GAAE,SAAS,CAAC,QAAQ,WAAW;GAAG,aAAa;GAAc,MAAM;GAAM,OAAO;EAAM;EACtF;GAAE,SAAS,CAAC,QAAQ,WAAW;GAAG,aAAa;GAAc,MAAM;GAAM,OAAO;EAAM;EACtF;GAAE,SAAS,CAAC,QAAQ,WAAW;GAAG,aAAa;GAAc,MAAM;GAAM,OAAO;EAAO;CACzF;CACA,iBAAiB;EAAE,SAAS;EAAQ,aAAa;EAAc,MAAM;CAAK;AAC5E,CAAC;;AAGD,SAAS,SAAS,EAChB,WACA,UACA,GAAG,SAC+C;CAClD,MAAM,EAAE,SAAS,MAAM,gBAAgB,MAAM,WAAW,WAAW;CACnE,MAAM,cAAc,YAAY;CAChC,MAAM,UAAU,MAAM,OAAuB,IAAI;CACjD,MAAM,CAAC,WAAW,gBAAgB,MAAM,SAK9B,IAAI;CAEd,MAAM,gBAAgB;EACpB,IAAI,CAAC,aAAa;EAClB,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,MAAM;EACX,MAAM,eAAe;GACnB,MAAM,SAAS,KAAK,cAClB,qDACF;GACA,IAAI,CAAC,QAAQ;IACX,aAAa,IAAI;IACjB;GACF;GACA,aAAa;IACX,MAAM,OAAO;IACb,KAAK,OAAO;IACZ,OAAO,OAAO;IACd,QAAQ,OAAO;GACjB,CAAC;EACH;EACA,OAAO;EACP,MAAM,WAAW,IAAI,iBAAiB,MAAM;EAC5C,SAAS,QAAQ,MAAM;GAAE,YAAY;GAAM,iBAAiB,CAAC,YAAY;GAAG,SAAS;EAAK,CAAC;EAC3F,MAAM,SAAS,IAAI,eAAe,MAAM;EACxC,OAAO,QAAQ,IAAI;EACnB,aAAa;GACX,SAAS,WAAW;GACpB,OAAO,WAAW;EACpB;CACF,GAAG,CAAC,WAAW,CAAC;CAEhB,OACE,qBAACA,OAAc,MAAf;EACE,KAAK;EACL,aAAU;EACV,WAAW,GAAG,iBAAiB;GAAE;GAAS;GAAM;EAAY,CAAC,GAAG,SAAS;EACzE,GAAI;YAJN,CAMG,eAAe,aACd,oBAAC,QAAD;GACE,aAAU;GACV,eAAA;GACA,WAAU;GACV,OACE,gBAAgB,aACZ;IAAE,KAAK,UAAU;IAAK,QAAQ,UAAU;IAAQ,MAAM;IAAG,OAAO;GAAE,IAClE;IAAE,MAAM,UAAU;IAAM,OAAO,UAAU;IAAO,KAAK;IAAG,QAAQ;GAAE;EAEzE,CAAA,GAEF,QACiB;;AAExB;AAEA,MAAM,sBAAsB,IAC1B,0XACA;CACE,UAAU;EACR,SAAS;GACP,MAAM;GACN,MAAM;GACN,WAAW;GACX,OACE;EACJ;EACA,aAAa;GAAE,YAAY;GAAI,UAAU;EAAuB;EAChE,MAAM;GAAE,IAAI;GAAI,IAAI;GAAI,IAAI;EAAG;CACjC;CACA,kBAAkB;EAEhB;GAAE,SAAS;IAAC;IAAQ;IAAQ;GAAW;GAAG,MAAM;GAAM,OAAO;EAAsB;EACnF;GAAE,SAAS;IAAC;IAAQ;IAAQ;GAAW;GAAG,MAAM;GAAM,OAAO;EAAoB;EACjF;GAAE,SAAS;IAAC;IAAQ;IAAQ;GAAW;GAAG,MAAM;GAAM,OAAO;EAAsB;EAGnF;GAAE,SAAS;GAAS,MAAM;GAAM,OAAO;EAAoB;EAC3D;GAAE,SAAS;GAAS,MAAM;GAAM,OAAO;EAAoB;EAC3D;GAAE,SAAS;GAAS,MAAM;GAAM,OAAO;EAAsB;EAE7D;GACE,SAAS;GACT,aAAa;GACb,OACE;EACJ;EACA;GACE,SAAS;GACT,aAAa;GACb,OACE;EACJ;CACF;CACA,iBAAiB;EAAE,SAAS;EAAQ,aAAa;EAAc,MAAM;CAAK;AAC5E,CACF;;AAGA,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;CAChG,MAAM,EAAE,SAAS,MAAM,gBAAgB,MAAM,WAAW,WAAW;CACnE,OACE,oBAACA,OAAc,SAAf;EACE,aAAU;EACV,WAAW,GAAG,oBAAoB;GAAE;GAAS;GAAM;EAAY,CAAC,GAAG,SAAS;EAC5E,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;CAChG,MAAM,EAAE,YAAY,MAAM,WAAW,WAAW;CAChD,OACE,oBAACA,OAAc,SAAf;EACE,aAAU;EACV,WAAW,GACT,uBAEA,YAAY,WACV,qGACF,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAuC;CAC1E,OACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GACT,iIACA,6KACA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,64 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_cn = require("../../cn.cjs");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ //#region src/primitives/Text/Text.tsx
5
+ const textVariants = (0, require("class-variance-authority").cva)("", {
6
+ variants: {
7
+ size: {
8
+ large: "text-[length:var(--paragraph-large-font-size)] leading-[var(--paragraph-large-line-height)]",
9
+ regular: "text-[length:var(--paragraph-regular-font-size)] leading-[var(--paragraph-regular-line-height)]",
10
+ small: "text-[length:var(--paragraph-small-font-size)] leading-[var(--paragraph-small-line-height)]",
11
+ mini: "text-[length:var(--paragraph-mini-font-size)] leading-[var(--paragraph-mini-line-height)]",
12
+ caption: "text-[length:var(--caption-font-size)] leading-[var(--caption-line-height)] tracking-[var(--caption-letter-spacing)] uppercase"
13
+ },
14
+ weight: {
15
+ normal: "font-normal",
16
+ medium: "font-medium",
17
+ semibold: "font-semibold"
18
+ },
19
+ variant: {
20
+ default: "text-foreground",
21
+ muted: "text-muted-foreground",
22
+ primary: "text-primary",
23
+ destructive: "text-destructive",
24
+ success: "text-[var(--content-success)]"
25
+ },
26
+ font: {
27
+ body: "font-sans",
28
+ heading: "font-heading",
29
+ mono: "font-mono"
30
+ },
31
+ align: {
32
+ left: "text-left",
33
+ center: "text-center",
34
+ right: "text-right"
35
+ },
36
+ truncate: { true: "truncate" }
37
+ },
38
+ defaultVariants: {
39
+ size: "regular",
40
+ weight: "normal",
41
+ variant: "default",
42
+ font: "body"
43
+ }
44
+ });
45
+ /** The typography primitive: renders any element via `as` and drives size/weight/colour from the body type scale. */
46
+ function Text({ as, className, size, weight, variant, font, align, truncate, ...props }) {
47
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(as ?? "p", {
48
+ "data-slot": "text",
49
+ className: require_cn.cn(textVariants({
50
+ size,
51
+ weight,
52
+ variant,
53
+ font,
54
+ align,
55
+ truncate
56
+ }), className),
57
+ ...props
58
+ });
59
+ }
60
+ //#endregion
61
+ exports.Text = Text;
62
+ exports.textVariants = textVariants;
63
+
64
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["cn"],"sources":["../../../src/primitives/Text/Text.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// Text — the typography primitive. Renders any element via `as` and drives\n// size/line-height from the design-system BODY type scale (Inter): the Figma\n// \"paragraph large/regular/small/mini\" + caption steps (tokens in\n// styles/tokens/typography.css). Inline links compose as children.\nconst textVariants = cva(\"\", {\n variants: {\n // Body scale — font-size + line-height come straight from the type tokens.\n size: {\n large:\n \"text-[length:var(--paragraph-large-font-size)] leading-[var(--paragraph-large-line-height)]\",\n regular:\n \"text-[length:var(--paragraph-regular-font-size)] leading-[var(--paragraph-regular-line-height)]\",\n small:\n \"text-[length:var(--paragraph-small-font-size)] leading-[var(--paragraph-small-line-height)]\",\n mini: \"text-[length:var(--paragraph-mini-font-size)] leading-[var(--paragraph-mini-line-height)]\",\n caption:\n \"text-[length:var(--caption-font-size)] leading-[var(--caption-line-height)] tracking-[var(--caption-letter-spacing)] uppercase\",\n },\n weight: {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n },\n variant: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n primary: \"text-primary\",\n destructive: \"text-destructive\",\n success: \"text-[var(--content-success)]\",\n },\n font: {\n body: \"font-sans\",\n heading: \"font-heading\",\n mono: \"font-mono\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n truncate: {\n true: \"truncate\",\n },\n },\n defaultVariants: {\n size: \"regular\",\n weight: \"normal\",\n variant: \"default\",\n font: \"body\",\n },\n});\n\ntype TextProps = Omit<React.ComponentProps<\"p\">, \"color\"> &\n VariantProps<typeof textVariants> & {\n /** Element/component to render. Defaults to `p`. */\n as?: React.ElementType;\n /** Body type-scale step (font-size + line-height). Defaults to `regular`. */\n size?: VariantProps<typeof textVariants>[\"size\"];\n /** Font weight. Defaults to `normal`. */\n weight?: VariantProps<typeof textVariants>[\"weight\"];\n /** Foreground colour token. Defaults to `default` (text-foreground). */\n variant?: VariantProps<typeof textVariants>[\"variant\"];\n /** Font family. Defaults to `body` (sans). */\n font?: VariantProps<typeof textVariants>[\"font\"];\n /** Horizontal text alignment. */\n align?: VariantProps<typeof textVariants>[\"align\"];\n /** Truncate to a single line with an ellipsis. */\n truncate?: VariantProps<typeof textVariants>[\"truncate\"];\n };\n\n/** The typography primitive: renders any element via `as` and drives size/weight/colour from the body type scale. */\nfunction Text({\n as,\n className,\n size,\n weight,\n variant,\n font,\n align,\n truncate,\n ...props\n}: TextProps) {\n const Comp = as ?? \"p\";\n return (\n <Comp\n data-slot=\"text\"\n className={cn(textVariants({ size, weight, variant, font, align, truncate }), className)}\n {...props}\n />\n );\n}\n\nexport { Text, textVariants, type TextProps };\n"],"mappings":";;;;AASA,MAAM,gBAAA,qCAAA,EAAA,KAAmB,IAAI;CAC3B,UAAU;EAER,MAAM;GACJ,OACE;GACF,SACE;GACF,OACE;GACF,MAAM;GACN,SACE;EACJ;EACA,QAAQ;GACN,QAAQ;GACR,QAAQ;GACR,UAAU;EACZ;EACA,SAAS;GACP,SAAS;GACT,OAAO;GACP,SAAS;GACT,aAAa;GACb,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,SAAS;GACT,MAAM;EACR;EACA,OAAO;GACL,MAAM;GACN,QAAQ;GACR,OAAO;EACT;EACA,UAAU,EACR,MAAM,WACR;CACF;CACA,iBAAiB;EACf,MAAM;EACN,QAAQ;EACR,SAAS;EACT,MAAM;CACR;AACF,CAAC;;AAqBD,SAAS,KAAK,EACZ,IACA,WACA,MACA,QACA,SACA,MACA,OACA,UACA,GAAG,SACS;CAEZ,OACE,iBAAA,GAAA,kBAAA,KAFW,MAAM,KAEjB;EACE,aAAU;EACV,WAAWA,WAAAA,GAAG,aAAa;GAAE;GAAM;GAAQ;GAAS;GAAM;GAAO;EAAS,CAAC,GAAG,SAAS;EACvF,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ import { n as TextProps, r as textVariants, t as Text } from "../../index60.cjs";
2
+ export { Text, TextProps, textVariants };
@@ -0,0 +1,2 @@
1
+ import { n as TextProps, r as textVariants, t as Text } from "../../index60.js";
2
+ export { Text, TextProps, textVariants };
@@ -0,0 +1,63 @@
1
+ import { t as cn } from "../../cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/primitives/Text/Text.tsx
5
+ const textVariants = cva("", {
6
+ variants: {
7
+ size: {
8
+ large: "text-[length:var(--paragraph-large-font-size)] leading-[var(--paragraph-large-line-height)]",
9
+ regular: "text-[length:var(--paragraph-regular-font-size)] leading-[var(--paragraph-regular-line-height)]",
10
+ small: "text-[length:var(--paragraph-small-font-size)] leading-[var(--paragraph-small-line-height)]",
11
+ mini: "text-[length:var(--paragraph-mini-font-size)] leading-[var(--paragraph-mini-line-height)]",
12
+ caption: "text-[length:var(--caption-font-size)] leading-[var(--caption-line-height)] tracking-[var(--caption-letter-spacing)] uppercase"
13
+ },
14
+ weight: {
15
+ normal: "font-normal",
16
+ medium: "font-medium",
17
+ semibold: "font-semibold"
18
+ },
19
+ variant: {
20
+ default: "text-foreground",
21
+ muted: "text-muted-foreground",
22
+ primary: "text-primary",
23
+ destructive: "text-destructive",
24
+ success: "text-[var(--content-success)]"
25
+ },
26
+ font: {
27
+ body: "font-sans",
28
+ heading: "font-heading",
29
+ mono: "font-mono"
30
+ },
31
+ align: {
32
+ left: "text-left",
33
+ center: "text-center",
34
+ right: "text-right"
35
+ },
36
+ truncate: { true: "truncate" }
37
+ },
38
+ defaultVariants: {
39
+ size: "regular",
40
+ weight: "normal",
41
+ variant: "default",
42
+ font: "body"
43
+ }
44
+ });
45
+ /** The typography primitive: renders any element via `as` and drives size/weight/colour from the body type scale. */
46
+ function Text({ as, className, size, weight, variant, font, align, truncate, ...props }) {
47
+ return /* @__PURE__ */ jsx(as ?? "p", {
48
+ "data-slot": "text",
49
+ className: cn(textVariants({
50
+ size,
51
+ weight,
52
+ variant,
53
+ font,
54
+ align,
55
+ truncate
56
+ }), className),
57
+ ...props
58
+ });
59
+ }
60
+ //#endregion
61
+ export { Text, textVariants };
62
+
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/Text/Text.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// Text — the typography primitive. Renders any element via `as` and drives\n// size/line-height from the design-system BODY type scale (Inter): the Figma\n// \"paragraph large/regular/small/mini\" + caption steps (tokens in\n// styles/tokens/typography.css). Inline links compose as children.\nconst textVariants = cva(\"\", {\n variants: {\n // Body scale — font-size + line-height come straight from the type tokens.\n size: {\n large:\n \"text-[length:var(--paragraph-large-font-size)] leading-[var(--paragraph-large-line-height)]\",\n regular:\n \"text-[length:var(--paragraph-regular-font-size)] leading-[var(--paragraph-regular-line-height)]\",\n small:\n \"text-[length:var(--paragraph-small-font-size)] leading-[var(--paragraph-small-line-height)]\",\n mini: \"text-[length:var(--paragraph-mini-font-size)] leading-[var(--paragraph-mini-line-height)]\",\n caption:\n \"text-[length:var(--caption-font-size)] leading-[var(--caption-line-height)] tracking-[var(--caption-letter-spacing)] uppercase\",\n },\n weight: {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n },\n variant: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n primary: \"text-primary\",\n destructive: \"text-destructive\",\n success: \"text-[var(--content-success)]\",\n },\n font: {\n body: \"font-sans\",\n heading: \"font-heading\",\n mono: \"font-mono\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n truncate: {\n true: \"truncate\",\n },\n },\n defaultVariants: {\n size: \"regular\",\n weight: \"normal\",\n variant: \"default\",\n font: \"body\",\n },\n});\n\ntype TextProps = Omit<React.ComponentProps<\"p\">, \"color\"> &\n VariantProps<typeof textVariants> & {\n /** Element/component to render. Defaults to `p`. */\n as?: React.ElementType;\n /** Body type-scale step (font-size + line-height). Defaults to `regular`. */\n size?: VariantProps<typeof textVariants>[\"size\"];\n /** Font weight. Defaults to `normal`. */\n weight?: VariantProps<typeof textVariants>[\"weight\"];\n /** Foreground colour token. Defaults to `default` (text-foreground). */\n variant?: VariantProps<typeof textVariants>[\"variant\"];\n /** Font family. Defaults to `body` (sans). */\n font?: VariantProps<typeof textVariants>[\"font\"];\n /** Horizontal text alignment. */\n align?: VariantProps<typeof textVariants>[\"align\"];\n /** Truncate to a single line with an ellipsis. */\n truncate?: VariantProps<typeof textVariants>[\"truncate\"];\n };\n\n/** The typography primitive: renders any element via `as` and drives size/weight/colour from the body type scale. */\nfunction Text({\n as,\n className,\n size,\n weight,\n variant,\n font,\n align,\n truncate,\n ...props\n}: TextProps) {\n const Comp = as ?? \"p\";\n return (\n <Comp\n data-slot=\"text\"\n className={cn(textVariants({ size, weight, variant, font, align, truncate }), className)}\n {...props}\n />\n );\n}\n\nexport { Text, textVariants, type TextProps };\n"],"mappings":";;;;AASA,MAAM,eAAe,IAAI,IAAI;CAC3B,UAAU;EAER,MAAM;GACJ,OACE;GACF,SACE;GACF,OACE;GACF,MAAM;GACN,SACE;EACJ;EACA,QAAQ;GACN,QAAQ;GACR,QAAQ;GACR,UAAU;EACZ;EACA,SAAS;GACP,SAAS;GACT,OAAO;GACP,SAAS;GACT,aAAa;GACb,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,SAAS;GACT,MAAM;EACR;EACA,OAAO;GACL,MAAM;GACN,QAAQ;GACR,OAAO;EACT;EACA,UAAU,EACR,MAAM,WACR;CACF;CACA,iBAAiB;EACf,MAAM;EACN,QAAQ;EACR,SAAS;EACT,MAAM;CACR;AACF,CAAC;;AAqBD,SAAS,KAAK,EACZ,IACA,WACA,MACA,QACA,SACA,MACA,OACA,UACA,GAAG,SACS;CAEZ,OACE,oBAFW,MAAM,KAEjB;EACE,aAAU;EACV,WAAW,GAAG,aAAa;GAAE;GAAM;GAAQ;GAAS;GAAM;GAAO;EAAS,CAAC,GAAG,SAAS;EACvF,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,24 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_cn = require("../../cn.cjs");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ //#region src/primitives/Textarea/Textarea.tsx
5
+ const textareaVariants = (0, require("class-variance-authority").cva)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full border bg-input-background px-3 py-2 text-base transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", {
6
+ variants: { shape: {
7
+ default: "rounded-md",
8
+ round: "rounded-2xl"
9
+ } },
10
+ defaultVariants: { shape: "default" }
11
+ });
12
+ /** Multi-line text input that auto-grows with its content and supports validation + disabled states. */
13
+ function Textarea({ className, shape, ...props }) {
14
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
15
+ "data-slot": "textarea",
16
+ className: require_cn.cn(textareaVariants({ shape }), className),
17
+ ...props
18
+ });
19
+ }
20
+ //#endregion
21
+ exports.Textarea = Textarea;
22
+ exports.textareaVariants = textareaVariants;
23
+
24
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["cn"],"sources":["../../../src/primitives/Textarea/Textarea.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\nconst textareaVariants = cva(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full border bg-input-background px-3 py-2 text-base transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n {\n variants: {\n shape: {\n default: \"rounded-md\",\n round: \"rounded-2xl\",\n },\n },\n defaultVariants: {\n shape: \"default\",\n },\n },\n);\n\n/** Multi-line text input that auto-grows with its content and supports validation + disabled states. */\nfunction Textarea({\n className,\n shape,\n ...props\n}: React.ComponentProps<\"textarea\"> &\n VariantProps<typeof textareaVariants> & {\n /** Corner radius: `default` (rounded-md) or `round` (rounded-2xl). */\n shape?: VariantProps<typeof textareaVariants>[\"shape\"];\n }) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(textareaVariants({ shape }), className)}\n {...props}\n />\n );\n}\n\nexport { Textarea, textareaVariants };\n"],"mappings":";;;;AAKA,MAAM,oBAAA,qCAAA,EAAA,KACJ,ubACA;CACE,UAAU,EACR,OAAO;EACL,SAAS;EACT,OAAO;CACT,EACF;CACA,iBAAiB,EACf,OAAO,UACT;AACF,CACF;;AAGA,SAAS,SAAS,EAChB,WACA,OACA,GAAG,SAKA;CACH,OACE,iBAAA,GAAA,kBAAA,KAAC,YAAD;EACE,aAAU;EACV,WAAWA,WAAAA,GAAG,iBAAiB,EAAE,MAAM,CAAC,GAAG,SAAS;EACpD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ import { n as textareaVariants, t as Textarea } from "../../index61.cjs";
2
+ export { Textarea, textareaVariants };
@@ -0,0 +1,2 @@
1
+ import { n as textareaVariants, t as Textarea } from "../../index61.js";
2
+ export { Textarea, textareaVariants };
@@ -0,0 +1,23 @@
1
+ import { t as cn } from "../../cn.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/primitives/Textarea/Textarea.tsx
5
+ const textareaVariants = cva("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full border bg-input-background px-3 py-2 text-base transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", {
6
+ variants: { shape: {
7
+ default: "rounded-md",
8
+ round: "rounded-2xl"
9
+ } },
10
+ defaultVariants: { shape: "default" }
11
+ });
12
+ /** Multi-line text input that auto-grows with its content and supports validation + disabled states. */
13
+ function Textarea({ className, shape, ...props }) {
14
+ return /* @__PURE__ */ jsx("textarea", {
15
+ "data-slot": "textarea",
16
+ className: cn(textareaVariants({ shape }), className),
17
+ ...props
18
+ });
19
+ }
20
+ //#endregion
21
+ export { Textarea, textareaVariants };
22
+
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/Textarea/Textarea.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\nconst textareaVariants = cva(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full border bg-input-background px-3 py-2 text-base transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n {\n variants: {\n shape: {\n default: \"rounded-md\",\n round: \"rounded-2xl\",\n },\n },\n defaultVariants: {\n shape: \"default\",\n },\n },\n);\n\n/** Multi-line text input that auto-grows with its content and supports validation + disabled states. */\nfunction Textarea({\n className,\n shape,\n ...props\n}: React.ComponentProps<\"textarea\"> &\n VariantProps<typeof textareaVariants> & {\n /** Corner radius: `default` (rounded-md) or `round` (rounded-2xl). */\n shape?: VariantProps<typeof textareaVariants>[\"shape\"];\n }) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(textareaVariants({ shape }), className)}\n {...props}\n />\n );\n}\n\nexport { Textarea, textareaVariants };\n"],"mappings":";;;;AAKA,MAAM,mBAAmB,IACvB,ubACA;CACE,UAAU,EACR,OAAO;EACL,SAAS;EACT,OAAO;CACT,EACF;CACA,iBAAiB,EACf,OAAO,UACT;AACF,CACF;;AAGA,SAAS,SAAS,EAChB,WACA,OACA,GAAG,SAKA;CACH,OACE,oBAAC,YAAD;EACE,aAAU;EACV,WAAW,GAAG,iBAAiB,EAAE,MAAM,CAAC,GAAG,SAAS;EACpD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,93 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_chunk = require("../../chunk.cjs");
3
+ let react = require("react");
4
+ react = require_chunk.__toESM(react);
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ //#region src/primitives/ThemeProvider/ThemeProvider.tsx
7
+ const PRODUCTS = [
8
+ "slingshot",
9
+ "sustain",
10
+ "bodhi",
11
+ "psai"
12
+ ];
13
+ const ThemeContext = react.createContext(null);
14
+ const DEFAULT_STORAGE_KEY = "ds-theme-preferences";
15
+ function readStored(storageKey) {
16
+ try {
17
+ const raw = localStorage.getItem(storageKey);
18
+ if (!raw) return {};
19
+ const parsed = JSON.parse(raw);
20
+ return {
21
+ theme: parsed.theme === "dark" || parsed.theme === "light" ? parsed.theme : void 0,
22
+ product: PRODUCTS.includes(parsed.product) ? parsed.product : void 0
23
+ };
24
+ } catch {
25
+ return {};
26
+ }
27
+ }
28
+ function prefersDark() {
29
+ try {
30
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
31
+ } catch {
32
+ return false;
33
+ }
34
+ }
35
+ function applyToDocument({ theme, product }) {
36
+ const root = document.documentElement;
37
+ root.classList.toggle("dark", theme === "dark");
38
+ for (const p of PRODUCTS) root.classList.toggle(`theme-${p}`, p === product);
39
+ }
40
+ /**
41
+ * Owns the app's global appearance (colour mode + active product), reflects it to
42
+ * `<html>`, and persists it. Wrap the app tree once; read state with `useTheme()`.
43
+ */
44
+ function ThemeProvider({ children, defaultTheme = "light", defaultProduct = "slingshot", storageKey = DEFAULT_STORAGE_KEY }) {
45
+ const [prefs, setPrefs] = react.useState(() => {
46
+ if (typeof window === "undefined") return {
47
+ theme: defaultTheme,
48
+ product: defaultProduct
49
+ };
50
+ const stored = readStored(storageKey);
51
+ return {
52
+ theme: stored.theme ?? (prefersDark() ? "dark" : defaultTheme),
53
+ product: stored.product ?? defaultProduct
54
+ };
55
+ });
56
+ react.useEffect(() => {
57
+ applyToDocument(prefs);
58
+ try {
59
+ localStorage.setItem(storageKey, JSON.stringify(prefs));
60
+ } catch {}
61
+ }, [prefs, storageKey]);
62
+ const value = react.useMemo(() => ({
63
+ ...prefs,
64
+ setTheme: (theme) => setPrefs((p) => ({
65
+ ...p,
66
+ theme
67
+ })),
68
+ toggleTheme: () => setPrefs((p) => ({
69
+ ...p,
70
+ theme: p.theme === "dark" ? "light" : "dark"
71
+ })),
72
+ setProduct: (product) => setPrefs((p) => ({
73
+ ...p,
74
+ product
75
+ }))
76
+ }), [prefs]);
77
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ThemeContext.Provider, {
78
+ value,
79
+ children
80
+ });
81
+ }
82
+ /** Read the current theme/product and the setters. Must be used inside a `<ThemeProvider>`. */
83
+ function useTheme() {
84
+ const ctx = react.useContext(ThemeContext);
85
+ if (!ctx) throw new Error("useTheme must be used within a <ThemeProvider>.");
86
+ return ctx;
87
+ }
88
+ //#endregion
89
+ exports.ThemeContext = ThemeContext;
90
+ exports.ThemeProvider = ThemeProvider;
91
+ exports.useTheme = useTheme;
92
+
93
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["React"],"sources":["../../../src/primitives/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\n// ThemeProvider — owns the two global appearance choices for an app and persists\n// them together (one localStorage entry, no extra variables):\n// - `theme` : light | dark → toggles the `.dark` class on <html>\n// - `product` : which brand → toggles `.theme-{product}` on <html> (drives\n// the Logo + PageBackground) and is the default\n// logo shown by the Header.\n// Apps wrap their tree in <ThemeProvider>; components read state via useTheme().\n\n/** Colour mode: light or dark (toggles the `.dark` class on `<html>`). */\nexport type ThemeMode = \"light\" | \"dark\";\n/** Active brand/product (drives the `.theme-{product}` class on `<html>`). */\nexport type ThemeProduct = \"slingshot\" | \"sustain\" | \"bodhi\" | \"psai\";\n\nconst PRODUCTS: ThemeProduct[] = [\"slingshot\", \"sustain\", \"bodhi\", \"psai\"];\n\ntype ThemePreferences = { theme: ThemeMode; product: ThemeProduct };\n\ntype ThemeContextValue = ThemePreferences & {\n /** Set the colour mode explicitly. */\n setTheme: (theme: ThemeMode) => void;\n /** Flip between light and dark. */\n toggleTheme: () => void;\n /** Switch the active product (logo + background + future customisations). */\n setProduct: (product: ThemeProduct) => void;\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | null>(null);\n\nconst DEFAULT_STORAGE_KEY = \"ds-theme-preferences\";\n\nfunction readStored(storageKey: string): Partial<ThemePreferences> {\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return {};\n const parsed = JSON.parse(raw) as Partial<ThemePreferences>;\n return {\n theme: parsed.theme === \"dark\" || parsed.theme === \"light\" ? parsed.theme : undefined,\n product: PRODUCTS.includes(parsed.product as ThemeProduct) ? parsed.product : undefined,\n };\n } catch {\n return {};\n }\n}\n\nfunction prefersDark(): boolean {\n try {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n } catch {\n return false;\n }\n}\n\nfunction applyToDocument({ theme, product }: ThemePreferences): void {\n const root = document.documentElement;\n root.classList.toggle(\"dark\", theme === \"dark\");\n for (const p of PRODUCTS) root.classList.toggle(`theme-${p}`, p === product);\n}\n\n/**\n * Owns the app's global appearance (colour mode + active product), reflects it to\n * `<html>`, and persists it. Wrap the app tree once; read state with `useTheme()`.\n */\nfunction ThemeProvider({\n children,\n defaultTheme = \"light\",\n defaultProduct = \"slingshot\",\n storageKey = DEFAULT_STORAGE_KEY,\n}: {\n /** App subtree that consumes the theme context. */\n children: React.ReactNode;\n /** Colour mode used when nothing is stored (system preference still wins on first load). */\n defaultTheme?: ThemeMode;\n /** Product used when nothing is stored. */\n defaultProduct?: ThemeProduct;\n /** localStorage key for the persisted `{ theme, product }`. */\n storageKey?: string;\n}) {\n // Lazy init from storage → system preference → defaults (runs once, client-side).\n const [prefs, setPrefs] = React.useState<ThemePreferences>(() => {\n if (typeof window === \"undefined\") return { theme: defaultTheme, product: defaultProduct };\n const stored = readStored(storageKey);\n return {\n theme: stored.theme ?? (prefersDark() ? \"dark\" : defaultTheme),\n product: stored.product ?? defaultProduct,\n };\n });\n\n // Reflect to <html> and persist on every change.\n React.useEffect(() => {\n applyToDocument(prefs);\n try {\n localStorage.setItem(storageKey, JSON.stringify(prefs));\n } catch {\n // storage unavailable (private mode) — degrade silently\n }\n }, [prefs, storageKey]);\n\n const value = React.useMemo<ThemeContextValue>(\n () => ({\n ...prefs,\n setTheme: (theme) => setPrefs((p) => ({ ...p, theme })),\n toggleTheme: () => setPrefs((p) => ({ ...p, theme: p.theme === \"dark\" ? \"light\" : \"dark\" })),\n setProduct: (product) => setPrefs((p) => ({ ...p, product })),\n }),\n [prefs],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/** Read the current theme/product and the setters. Must be used inside a `<ThemeProvider>`. */\nfunction useTheme(): ThemeContextValue {\n const ctx = React.useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme must be used within a <ThemeProvider>.\");\n }\n return ctx;\n}\n\nexport { ThemeProvider, useTheme, ThemeContext };\n"],"mappings":";;;;;;AAiBA,MAAM,WAA2B;CAAC;CAAa;CAAW;CAAS;AAAM;AAazE,MAAM,eAAeA,MAAM,cAAwC,IAAI;AAEvE,MAAM,sBAAsB;AAE5B,SAAS,WAAW,YAA+C;CACjE,IAAI;EACF,MAAM,MAAM,aAAa,QAAQ,UAAU;EAC3C,IAAI,CAAC,KAAK,OAAO,CAAC;EAClB,MAAM,SAAS,KAAK,MAAM,GAAG;EAC7B,OAAO;GACL,OAAO,OAAO,UAAU,UAAU,OAAO,UAAU,UAAU,OAAO,QAAQ,KAAA;GAC5E,SAAS,SAAS,SAAS,OAAO,OAAuB,IAAI,OAAO,UAAU,KAAA;EAChF;CACF,QAAQ;EACN,OAAO,CAAC;CACV;AACF;AAEA,SAAS,cAAuB;CAC9B,IAAI;EACF,OAAO,OAAO,WAAW,8BAA8B,EAAE;CAC3D,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,gBAAgB,EAAE,OAAO,WAAmC;CACnE,MAAM,OAAO,SAAS;CACtB,KAAK,UAAU,OAAO,QAAQ,UAAU,MAAM;CAC9C,KAAK,MAAM,KAAK,UAAU,KAAK,UAAU,OAAO,SAAS,KAAK,MAAM,OAAO;AAC7E;;;;;AAMA,SAAS,cAAc,EACrB,UACA,eAAe,SACf,iBAAiB,aACjB,aAAa,uBAUZ;CAED,MAAM,CAAC,OAAO,YAAYA,MAAM,eAAiC;EAC/D,IAAI,OAAO,WAAW,aAAa,OAAO;GAAE,OAAO;GAAc,SAAS;EAAe;EACzF,MAAM,SAAS,WAAW,UAAU;EACpC,OAAO;GACL,OAAO,OAAO,UAAU,YAAY,IAAI,SAAS;GACjD,SAAS,OAAO,WAAW;EAC7B;CACF,CAAC;CAGD,MAAM,gBAAgB;EACpB,gBAAgB,KAAK;EACrB,IAAI;GACF,aAAa,QAAQ,YAAY,KAAK,UAAU,KAAK,CAAC;EACxD,QAAQ,CAER;CACF,GAAG,CAAC,OAAO,UAAU,CAAC;CAEtB,MAAM,QAAQA,MAAM,eACX;EACL,GAAG;EACH,WAAW,UAAU,UAAU,OAAO;GAAE,GAAG;GAAG;EAAM,EAAE;EACtD,mBAAmB,UAAU,OAAO;GAAE,GAAG;GAAG,OAAO,EAAE,UAAU,SAAS,UAAU;EAAO,EAAE;EAC3F,aAAa,YAAY,UAAU,OAAO;GAAE,GAAG;GAAG;EAAQ,EAAE;CAC9D,IACA,CAAC,KAAK,CACR;CAEA,OAAO,iBAAA,GAAA,kBAAA,KAAC,aAAa,UAAd;EAA8B;EAAQ;CAAgC,CAAA;AAC/E;;AAGA,SAAS,WAA8B;CACrC,MAAM,MAAMA,MAAM,WAAW,YAAY;CACzC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,iDAAiD;CAEnE,OAAO;AACT"}
@@ -0,0 +1,2 @@
1
+ import { a as useTheme, i as ThemeProvider, n as ThemeMode, r as ThemeProduct, t as ThemeContext } from "../../index62.cjs";
2
+ export { ThemeContext, ThemeMode, ThemeProduct, ThemeProvider, useTheme };
@@ -0,0 +1,2 @@
1
+ import { a as useTheme, i as ThemeProvider, n as ThemeMode, r as ThemeProduct, t as ThemeContext } from "../../index62.js";
2
+ export { ThemeContext, ThemeMode, ThemeProduct, ThemeProvider, useTheme };
@@ -0,0 +1,88 @@
1
+ import * as React from "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/primitives/ThemeProvider/ThemeProvider.tsx
4
+ const PRODUCTS = [
5
+ "slingshot",
6
+ "sustain",
7
+ "bodhi",
8
+ "psai"
9
+ ];
10
+ const ThemeContext = React.createContext(null);
11
+ const DEFAULT_STORAGE_KEY = "ds-theme-preferences";
12
+ function readStored(storageKey) {
13
+ try {
14
+ const raw = localStorage.getItem(storageKey);
15
+ if (!raw) return {};
16
+ const parsed = JSON.parse(raw);
17
+ return {
18
+ theme: parsed.theme === "dark" || parsed.theme === "light" ? parsed.theme : void 0,
19
+ product: PRODUCTS.includes(parsed.product) ? parsed.product : void 0
20
+ };
21
+ } catch {
22
+ return {};
23
+ }
24
+ }
25
+ function prefersDark() {
26
+ try {
27
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
28
+ } catch {
29
+ return false;
30
+ }
31
+ }
32
+ function applyToDocument({ theme, product }) {
33
+ const root = document.documentElement;
34
+ root.classList.toggle("dark", theme === "dark");
35
+ for (const p of PRODUCTS) root.classList.toggle(`theme-${p}`, p === product);
36
+ }
37
+ /**
38
+ * Owns the app's global appearance (colour mode + active product), reflects it to
39
+ * `<html>`, and persists it. Wrap the app tree once; read state with `useTheme()`.
40
+ */
41
+ function ThemeProvider({ children, defaultTheme = "light", defaultProduct = "slingshot", storageKey = DEFAULT_STORAGE_KEY }) {
42
+ const [prefs, setPrefs] = React.useState(() => {
43
+ if (typeof window === "undefined") return {
44
+ theme: defaultTheme,
45
+ product: defaultProduct
46
+ };
47
+ const stored = readStored(storageKey);
48
+ return {
49
+ theme: stored.theme ?? (prefersDark() ? "dark" : defaultTheme),
50
+ product: stored.product ?? defaultProduct
51
+ };
52
+ });
53
+ React.useEffect(() => {
54
+ applyToDocument(prefs);
55
+ try {
56
+ localStorage.setItem(storageKey, JSON.stringify(prefs));
57
+ } catch {}
58
+ }, [prefs, storageKey]);
59
+ const value = React.useMemo(() => ({
60
+ ...prefs,
61
+ setTheme: (theme) => setPrefs((p) => ({
62
+ ...p,
63
+ theme
64
+ })),
65
+ toggleTheme: () => setPrefs((p) => ({
66
+ ...p,
67
+ theme: p.theme === "dark" ? "light" : "dark"
68
+ })),
69
+ setProduct: (product) => setPrefs((p) => ({
70
+ ...p,
71
+ product
72
+ }))
73
+ }), [prefs]);
74
+ return /* @__PURE__ */ jsx(ThemeContext.Provider, {
75
+ value,
76
+ children
77
+ });
78
+ }
79
+ /** Read the current theme/product and the setters. Must be used inside a `<ThemeProvider>`. */
80
+ function useTheme() {
81
+ const ctx = React.useContext(ThemeContext);
82
+ if (!ctx) throw new Error("useTheme must be used within a <ThemeProvider>.");
83
+ return ctx;
84
+ }
85
+ //#endregion
86
+ export { ThemeContext, ThemeProvider, useTheme };
87
+
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\n// ThemeProvider — owns the two global appearance choices for an app and persists\n// them together (one localStorage entry, no extra variables):\n// - `theme` : light | dark → toggles the `.dark` class on <html>\n// - `product` : which brand → toggles `.theme-{product}` on <html> (drives\n// the Logo + PageBackground) and is the default\n// logo shown by the Header.\n// Apps wrap their tree in <ThemeProvider>; components read state via useTheme().\n\n/** Colour mode: light or dark (toggles the `.dark` class on `<html>`). */\nexport type ThemeMode = \"light\" | \"dark\";\n/** Active brand/product (drives the `.theme-{product}` class on `<html>`). */\nexport type ThemeProduct = \"slingshot\" | \"sustain\" | \"bodhi\" | \"psai\";\n\nconst PRODUCTS: ThemeProduct[] = [\"slingshot\", \"sustain\", \"bodhi\", \"psai\"];\n\ntype ThemePreferences = { theme: ThemeMode; product: ThemeProduct };\n\ntype ThemeContextValue = ThemePreferences & {\n /** Set the colour mode explicitly. */\n setTheme: (theme: ThemeMode) => void;\n /** Flip between light and dark. */\n toggleTheme: () => void;\n /** Switch the active product (logo + background + future customisations). */\n setProduct: (product: ThemeProduct) => void;\n};\n\nconst ThemeContext = React.createContext<ThemeContextValue | null>(null);\n\nconst DEFAULT_STORAGE_KEY = \"ds-theme-preferences\";\n\nfunction readStored(storageKey: string): Partial<ThemePreferences> {\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return {};\n const parsed = JSON.parse(raw) as Partial<ThemePreferences>;\n return {\n theme: parsed.theme === \"dark\" || parsed.theme === \"light\" ? parsed.theme : undefined,\n product: PRODUCTS.includes(parsed.product as ThemeProduct) ? parsed.product : undefined,\n };\n } catch {\n return {};\n }\n}\n\nfunction prefersDark(): boolean {\n try {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n } catch {\n return false;\n }\n}\n\nfunction applyToDocument({ theme, product }: ThemePreferences): void {\n const root = document.documentElement;\n root.classList.toggle(\"dark\", theme === \"dark\");\n for (const p of PRODUCTS) root.classList.toggle(`theme-${p}`, p === product);\n}\n\n/**\n * Owns the app's global appearance (colour mode + active product), reflects it to\n * `<html>`, and persists it. Wrap the app tree once; read state with `useTheme()`.\n */\nfunction ThemeProvider({\n children,\n defaultTheme = \"light\",\n defaultProduct = \"slingshot\",\n storageKey = DEFAULT_STORAGE_KEY,\n}: {\n /** App subtree that consumes the theme context. */\n children: React.ReactNode;\n /** Colour mode used when nothing is stored (system preference still wins on first load). */\n defaultTheme?: ThemeMode;\n /** Product used when nothing is stored. */\n defaultProduct?: ThemeProduct;\n /** localStorage key for the persisted `{ theme, product }`. */\n storageKey?: string;\n}) {\n // Lazy init from storage → system preference → defaults (runs once, client-side).\n const [prefs, setPrefs] = React.useState<ThemePreferences>(() => {\n if (typeof window === \"undefined\") return { theme: defaultTheme, product: defaultProduct };\n const stored = readStored(storageKey);\n return {\n theme: stored.theme ?? (prefersDark() ? \"dark\" : defaultTheme),\n product: stored.product ?? defaultProduct,\n };\n });\n\n // Reflect to <html> and persist on every change.\n React.useEffect(() => {\n applyToDocument(prefs);\n try {\n localStorage.setItem(storageKey, JSON.stringify(prefs));\n } catch {\n // storage unavailable (private mode) — degrade silently\n }\n }, [prefs, storageKey]);\n\n const value = React.useMemo<ThemeContextValue>(\n () => ({\n ...prefs,\n setTheme: (theme) => setPrefs((p) => ({ ...p, theme })),\n toggleTheme: () => setPrefs((p) => ({ ...p, theme: p.theme === \"dark\" ? \"light\" : \"dark\" })),\n setProduct: (product) => setPrefs((p) => ({ ...p, product })),\n }),\n [prefs],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/** Read the current theme/product and the setters. Must be used inside a `<ThemeProvider>`. */\nfunction useTheme(): ThemeContextValue {\n const ctx = React.useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme must be used within a <ThemeProvider>.\");\n }\n return ctx;\n}\n\nexport { ThemeProvider, useTheme, ThemeContext };\n"],"mappings":";;;AAiBA,MAAM,WAA2B;CAAC;CAAa;CAAW;CAAS;AAAM;AAazE,MAAM,eAAe,MAAM,cAAwC,IAAI;AAEvE,MAAM,sBAAsB;AAE5B,SAAS,WAAW,YAA+C;CACjE,IAAI;EACF,MAAM,MAAM,aAAa,QAAQ,UAAU;EAC3C,IAAI,CAAC,KAAK,OAAO,CAAC;EAClB,MAAM,SAAS,KAAK,MAAM,GAAG;EAC7B,OAAO;GACL,OAAO,OAAO,UAAU,UAAU,OAAO,UAAU,UAAU,OAAO,QAAQ,KAAA;GAC5E,SAAS,SAAS,SAAS,OAAO,OAAuB,IAAI,OAAO,UAAU,KAAA;EAChF;CACF,QAAQ;EACN,OAAO,CAAC;CACV;AACF;AAEA,SAAS,cAAuB;CAC9B,IAAI;EACF,OAAO,OAAO,WAAW,8BAA8B,EAAE;CAC3D,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,gBAAgB,EAAE,OAAO,WAAmC;CACnE,MAAM,OAAO,SAAS;CACtB,KAAK,UAAU,OAAO,QAAQ,UAAU,MAAM;CAC9C,KAAK,MAAM,KAAK,UAAU,KAAK,UAAU,OAAO,SAAS,KAAK,MAAM,OAAO;AAC7E;;;;;AAMA,SAAS,cAAc,EACrB,UACA,eAAe,SACf,iBAAiB,aACjB,aAAa,uBAUZ;CAED,MAAM,CAAC,OAAO,YAAY,MAAM,eAAiC;EAC/D,IAAI,OAAO,WAAW,aAAa,OAAO;GAAE,OAAO;GAAc,SAAS;EAAe;EACzF,MAAM,SAAS,WAAW,UAAU;EACpC,OAAO;GACL,OAAO,OAAO,UAAU,YAAY,IAAI,SAAS;GACjD,SAAS,OAAO,WAAW;EAC7B;CACF,CAAC;CAGD,MAAM,gBAAgB;EACpB,gBAAgB,KAAK;EACrB,IAAI;GACF,aAAa,QAAQ,YAAY,KAAK,UAAU,KAAK,CAAC;EACxD,QAAQ,CAER;CACF,GAAG,CAAC,OAAO,UAAU,CAAC;CAEtB,MAAM,QAAQ,MAAM,eACX;EACL,GAAG;EACH,WAAW,UAAU,UAAU,OAAO;GAAE,GAAG;GAAG;EAAM,EAAE;EACtD,mBAAmB,UAAU,OAAO;GAAE,GAAG;GAAG,OAAO,EAAE,UAAU,SAAS,UAAU;EAAO,EAAE;EAC3F,aAAa,YAAY,UAAU,OAAO;GAAE,GAAG;GAAG;EAAQ,EAAE;CAC9D,IACA,CAAC,KAAK,CACR;CAEA,OAAO,oBAAC,aAAa,UAAd;EAA8B;EAAQ;CAAgC,CAAA;AAC/E;;AAGA,SAAS,WAA8B;CACrC,MAAM,MAAM,MAAM,WAAW,YAAY;CACzC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,iDAAiD;CAEnE,OAAO;AACT"}
@@ -0,0 +1,59 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_cn = require("../../cn.cjs");
3
+ let radix_ui = require("radix-ui");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ //#region src/primitives/Toggle/Toggle.tsx
6
+ const toggleVariants = (0, require("class-variance-authority").cva)("inline-flex items-center justify-center gap-2 text-sm font-medium cursor-pointer hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap", {
7
+ variants: {
8
+ /** Visual style: `default` (transparent) or `outline` (bordered). */
9
+ variant: {
10
+ default: "bg-transparent",
11
+ outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
12
+ },
13
+ /** Control size: `sm`, `default`, or `lg`. */
14
+ size: {
15
+ default: "h-9 px-2 min-w-9",
16
+ sm: "h-8 px-1.5 min-w-8",
17
+ lg: "h-10 px-2.5 min-w-10"
18
+ },
19
+ shape: {
20
+ default: "rounded-md",
21
+ round: "rounded-full",
22
+ left: "rounded-l-md rounded-r-none",
23
+ middle: "rounded-none",
24
+ right: "rounded-r-md rounded-l-none"
25
+ }
26
+ },
27
+ compoundVariants: [{
28
+ variant: "outline",
29
+ shape: "middle",
30
+ class: "border-l-0"
31
+ }, {
32
+ variant: "outline",
33
+ shape: "right",
34
+ class: "border-l-0"
35
+ }],
36
+ defaultVariants: {
37
+ variant: "default",
38
+ size: "default",
39
+ shape: "default"
40
+ }
41
+ });
42
+ /** A two-state button that can be toggled on or off, built on Radix Toggle. */
43
+ function Toggle({ className, variant, size, shape, ...props }) {
44
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Toggle.Root, {
45
+ "data-slot": "toggle",
46
+ className: require_cn.cn(toggleVariants({
47
+ variant,
48
+ size,
49
+ shape,
50
+ className
51
+ })),
52
+ ...props
53
+ });
54
+ }
55
+ //#endregion
56
+ exports.Toggle = Toggle;
57
+ exports.toggleVariants = toggleVariants;
58
+
59
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["TogglePrimitive","cn"],"sources":["../../../src/primitives/Toggle/Toggle.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 text-sm font-medium cursor-pointer hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n /** Visual style: `default` (transparent) or `outline` (bordered). */\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n /** Control size: `sm`, `default`, or `lg`. */\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n // Shape (Figma): `default` (rounded-md) and `round` (pill) are standalone\n // shapes; `left`/`middle`/`right` join into a segmented group, rounding\n // only the outer edge.\n shape: {\n default: \"rounded-md\",\n round: \"rounded-full\",\n left: \"rounded-l-md rounded-r-none\",\n middle: \"rounded-none\",\n right: \"rounded-r-md rounded-l-none\",\n },\n },\n compoundVariants: [\n // Outlined segments collapse the shared border between adjacent items.\n { variant: \"outline\", shape: \"middle\", class: \"border-l-0\" },\n { variant: \"outline\", shape: \"right\", class: \"border-l-0\" },\n ],\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n shape: \"default\",\n },\n },\n);\n\n/** A two-state button that can be toggled on or off, built on Radix Toggle. */\nfunction Toggle({\n className,\n variant,\n size,\n shape,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, shape, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;AAMA,MAAM,kBAAA,qCAAA,EAAA,KACJ,ilBACA;CACE,UAAU;;EAER,SAAS;GACP,SAAS;GACT,SAAS;EACX;;EAEA,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;EACN;EAIA,OAAO;GACL,SAAS;GACT,OAAO;GACP,MAAM;GACN,QAAQ;GACR,OAAO;EACT;CACF;CACA,kBAAkB,CAEhB;EAAE,SAAS;EAAW,OAAO;EAAU,OAAO;CAAa,GAC3D;EAAE,SAAS;EAAW,OAAO;EAAS,OAAO;CAAa,CAC5D;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;EACN,OAAO;CACT;AACF,CACF;;AAGA,SAAS,OAAO,EACd,WACA,SACA,MACA,OACA,GAAG,SACuF;CAC1F,OACE,iBAAA,GAAA,kBAAA,KAACA,SAAAA,OAAgB,MAAjB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,eAAe;GAAE;GAAS;GAAM;GAAO;EAAU,CAAC,CAAC;EACjE,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ import { n as toggleVariants, t as Toggle } from "../../index63.cjs";
2
+ export { Toggle, toggleVariants };
@@ -0,0 +1,2 @@
1
+ import { n as toggleVariants, t as Toggle } from "../../index63.js";
2
+ export { Toggle, toggleVariants };
@@ -0,0 +1,58 @@
1
+ import { t as cn } from "../../cn.js";
2
+ import { Toggle as Toggle$1 } from "radix-ui";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+ //#region src/primitives/Toggle/Toggle.tsx
6
+ const toggleVariants = cva("inline-flex items-center justify-center gap-2 text-sm font-medium cursor-pointer hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap", {
7
+ variants: {
8
+ /** Visual style: `default` (transparent) or `outline` (bordered). */
9
+ variant: {
10
+ default: "bg-transparent",
11
+ outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
12
+ },
13
+ /** Control size: `sm`, `default`, or `lg`. */
14
+ size: {
15
+ default: "h-9 px-2 min-w-9",
16
+ sm: "h-8 px-1.5 min-w-8",
17
+ lg: "h-10 px-2.5 min-w-10"
18
+ },
19
+ shape: {
20
+ default: "rounded-md",
21
+ round: "rounded-full",
22
+ left: "rounded-l-md rounded-r-none",
23
+ middle: "rounded-none",
24
+ right: "rounded-r-md rounded-l-none"
25
+ }
26
+ },
27
+ compoundVariants: [{
28
+ variant: "outline",
29
+ shape: "middle",
30
+ class: "border-l-0"
31
+ }, {
32
+ variant: "outline",
33
+ shape: "right",
34
+ class: "border-l-0"
35
+ }],
36
+ defaultVariants: {
37
+ variant: "default",
38
+ size: "default",
39
+ shape: "default"
40
+ }
41
+ });
42
+ /** A two-state button that can be toggled on or off, built on Radix Toggle. */
43
+ function Toggle({ className, variant, size, shape, ...props }) {
44
+ return /* @__PURE__ */ jsx(Toggle$1.Root, {
45
+ "data-slot": "toggle",
46
+ className: cn(toggleVariants({
47
+ variant,
48
+ size,
49
+ shape,
50
+ className
51
+ })),
52
+ ...props
53
+ });
54
+ }
55
+ //#endregion
56
+ export { Toggle, toggleVariants };
57
+
58
+ //# sourceMappingURL=index.js.map