@psnext/design-system 1.5.1 → 2.0.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 (647) hide show
  1. package/DESIGN.md +639 -0
  2. package/README.md +39 -2
  3. package/SKILL.md +101 -0
  4. package/bin/install-agent-skill.mjs +54 -0
  5. package/dist/Header.cjs +25 -25
  6. package/dist/Header.cjs.map +1 -1
  7. package/dist/Header.js +25 -25
  8. package/dist/Header.js.map +1 -1
  9. package/dist/Icon.cjs +19 -19
  10. package/dist/Icon.cjs.map +1 -1
  11. package/dist/Icon.js +19 -19
  12. package/dist/Icon.js.map +1 -1
  13. package/dist/Logo.cjs +4 -14
  14. package/dist/Logo.cjs.map +1 -1
  15. package/dist/Logo.js +4 -14
  16. package/dist/Logo.js.map +1 -1
  17. package/dist/Sidebar.cjs +26 -20
  18. package/dist/Sidebar.cjs.map +1 -1
  19. package/dist/Sidebar.js +21 -21
  20. package/dist/Sidebar.js.map +1 -1
  21. package/dist/cn.cjs +14 -1
  22. package/dist/cn.cjs.map +1 -1
  23. package/dist/cn.js +14 -1
  24. package/dist/cn.js.map +1 -1
  25. package/dist/index.cjs +13 -10
  26. package/dist/index.d.cts +5 -5
  27. package/dist/index.d.cts.map +1 -1
  28. package/dist/index.d.ts +5 -5
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +5 -4
  31. package/dist/index10.d.cts +7 -7
  32. package/dist/index10.d.cts.map +1 -1
  33. package/dist/index10.d.ts +7 -7
  34. package/dist/index11.d.cts +3 -3
  35. package/dist/index11.d.cts.map +1 -1
  36. package/dist/index11.d.ts +3 -3
  37. package/dist/index11.d.ts.map +1 -1
  38. package/dist/index12.d.cts +18 -17
  39. package/dist/index12.d.cts.map +1 -1
  40. package/dist/index12.d.ts +18 -17
  41. package/dist/index12.d.ts.map +1 -1
  42. package/dist/index13.d.cts +6 -6
  43. package/dist/index13.d.cts.map +1 -1
  44. package/dist/index13.d.ts +6 -6
  45. package/dist/index14.d.cts +5 -5
  46. package/dist/index14.d.cts.map +1 -1
  47. package/dist/index14.d.ts +5 -5
  48. package/dist/index14.d.ts.map +1 -1
  49. package/dist/index15.d.cts +3 -3
  50. package/dist/index15.d.cts.map +1 -1
  51. package/dist/index15.d.ts +3 -3
  52. package/dist/index15.d.ts.map +1 -1
  53. package/dist/index16.d.cts +2 -2
  54. package/dist/index16.d.cts.map +1 -1
  55. package/dist/index16.d.ts +2 -2
  56. package/dist/index17.d.cts +4 -4
  57. package/dist/index17.d.cts.map +1 -1
  58. package/dist/index17.d.ts +4 -4
  59. package/dist/index17.d.ts.map +1 -1
  60. package/dist/index18.d.cts +11 -11
  61. package/dist/index18.d.cts.map +1 -1
  62. package/dist/index18.d.ts +11 -11
  63. package/dist/index19.d.cts +10 -10
  64. package/dist/index19.d.cts.map +1 -1
  65. package/dist/index19.d.ts +10 -10
  66. package/dist/index19.d.ts.map +1 -1
  67. package/dist/index2.d.cts +8 -8
  68. package/dist/index2.d.cts.map +1 -1
  69. package/dist/index2.d.ts +8 -8
  70. package/dist/index2.d.ts.map +1 -1
  71. package/dist/index20.d.cts +16 -16
  72. package/dist/index20.d.cts.map +1 -1
  73. package/dist/index20.d.ts +16 -16
  74. package/dist/index20.d.ts.map +1 -1
  75. package/dist/index21.d.cts +4 -4
  76. package/dist/index21.d.cts.map +1 -1
  77. package/dist/index21.d.ts +4 -4
  78. package/dist/index22.d.cts +11 -11
  79. package/dist/index22.d.cts.map +1 -1
  80. package/dist/index22.d.ts +11 -11
  81. package/dist/index22.d.ts.map +1 -1
  82. package/dist/index23.d.cts +16 -16
  83. package/dist/index23.d.cts.map +1 -1
  84. package/dist/index23.d.ts +16 -16
  85. package/dist/index23.d.ts.map +1 -1
  86. package/dist/index24.d.cts +10 -10
  87. package/dist/index24.d.cts.map +1 -1
  88. package/dist/index24.d.ts +10 -10
  89. package/dist/index25.d.cts +2 -2
  90. package/dist/index25.d.ts +2 -2
  91. package/dist/index25.d.ts.map +1 -1
  92. package/dist/index26.d.cts +14 -14
  93. package/dist/index26.d.cts.map +1 -1
  94. package/dist/index26.d.ts +14 -14
  95. package/dist/index26.d.ts.map +1 -1
  96. package/dist/index27.d.cts +7 -7
  97. package/dist/index27.d.ts +7 -7
  98. package/dist/index27.d.ts.map +1 -1
  99. package/dist/index28.d.cts +6 -6
  100. package/dist/index28.d.ts +5 -5
  101. package/dist/index28.d.ts.map +1 -1
  102. package/dist/index29.d.cts +4 -4
  103. package/dist/index29.d.ts +4 -4
  104. package/dist/index29.d.ts.map +1 -1
  105. package/dist/index3.d.cts +13 -13
  106. package/dist/index3.d.cts.map +1 -1
  107. package/dist/index3.d.ts +13 -13
  108. package/dist/index3.d.ts.map +1 -1
  109. package/dist/index30.d.cts +6 -6
  110. package/dist/index30.d.ts +4 -4
  111. package/dist/index31.d.cts +4 -4
  112. package/dist/index31.d.cts.map +1 -1
  113. package/dist/index31.d.ts +4 -4
  114. package/dist/index31.d.ts.map +1 -1
  115. package/dist/index32.d.cts +8 -5
  116. package/dist/index32.d.cts.map +1 -1
  117. package/dist/index32.d.ts +9 -6
  118. package/dist/index32.d.ts.map +1 -1
  119. package/dist/index33.d.cts +14 -10
  120. package/dist/index33.d.cts.map +1 -1
  121. package/dist/index33.d.ts +15 -11
  122. package/dist/index33.d.ts.map +1 -1
  123. package/dist/index34.d.cts +5 -5
  124. package/dist/index34.d.ts +5 -5
  125. package/dist/index34.d.ts.map +1 -1
  126. package/dist/index35.d.cts +14 -14
  127. package/dist/index35.d.ts +14 -14
  128. package/dist/index35.d.ts.map +1 -1
  129. package/dist/index36.d.cts +3 -3
  130. package/dist/index36.d.cts.map +1 -1
  131. package/dist/index36.d.ts +3 -3
  132. package/dist/index36.d.ts.map +1 -1
  133. package/dist/index37.d.cts +5 -5
  134. package/dist/index37.d.ts +4 -4
  135. package/dist/index37.d.ts.map +1 -1
  136. package/dist/index38.d.cts +2 -2
  137. package/dist/index38.d.ts +2 -2
  138. package/dist/index39.d.cts +17 -17
  139. package/dist/index39.d.cts.map +1 -1
  140. package/dist/index39.d.ts +17 -17
  141. package/dist/index39.d.ts.map +1 -1
  142. package/dist/index4.d.cts +2 -2
  143. package/dist/index4.d.cts.map +1 -1
  144. package/dist/index4.d.ts +2 -2
  145. package/dist/index4.d.ts.map +1 -1
  146. package/dist/index40.d.cts +4 -4
  147. package/dist/index40.d.cts.map +1 -1
  148. package/dist/index40.d.ts +5 -5
  149. package/dist/index40.d.ts.map +1 -1
  150. package/dist/index41.d.cts +11 -11
  151. package/dist/index41.d.cts.map +1 -1
  152. package/dist/index41.d.ts +11 -11
  153. package/dist/index41.d.ts.map +1 -1
  154. package/dist/index42.d.cts +8 -8
  155. package/dist/index42.d.cts.map +1 -1
  156. package/dist/index42.d.ts +8 -8
  157. package/dist/index42.d.ts.map +1 -1
  158. package/dist/index43.d.cts +10 -10
  159. package/dist/index43.d.cts.map +1 -1
  160. package/dist/index43.d.ts +10 -10
  161. package/dist/index43.d.ts.map +1 -1
  162. package/dist/index44.d.cts +1 -48
  163. package/dist/index44.d.ts +1 -48
  164. package/dist/index45.d.cts +42 -22
  165. package/dist/index45.d.cts.map +1 -1
  166. package/dist/index45.d.ts +42 -22
  167. package/dist/index45.d.ts.map +1 -1
  168. package/dist/index46.d.cts +21 -34
  169. package/dist/index46.d.cts.map +1 -1
  170. package/dist/index46.d.ts +21 -34
  171. package/dist/index46.d.ts.map +1 -1
  172. package/dist/index47.d.cts +33 -17
  173. package/dist/index47.d.cts.map +1 -1
  174. package/dist/index47.d.ts +33 -17
  175. package/dist/index47.d.ts.map +1 -1
  176. package/dist/index48.d.cts +18 -14
  177. package/dist/index48.d.cts.map +1 -1
  178. package/dist/index48.d.ts +18 -14
  179. package/dist/index48.d.ts.map +1 -1
  180. package/dist/index49.d.cts +12 -60
  181. package/dist/index49.d.cts.map +1 -1
  182. package/dist/index49.d.ts +12 -60
  183. package/dist/index49.d.ts.map +1 -1
  184. package/dist/index5.d.cts +7 -7
  185. package/dist/index5.d.cts.map +1 -1
  186. package/dist/index5.d.ts +7 -7
  187. package/dist/index5.d.ts.map +1 -1
  188. package/dist/index50.d.cts +55 -49
  189. package/dist/index50.d.cts.map +1 -1
  190. package/dist/index50.d.ts +55 -49
  191. package/dist/index50.d.ts.map +1 -1
  192. package/dist/index51.d.cts +56 -24
  193. package/dist/index51.d.cts.map +1 -1
  194. package/dist/index51.d.ts +56 -24
  195. package/dist/index51.d.ts.map +1 -1
  196. package/dist/index52.d.cts +25 -203
  197. package/dist/index52.d.cts.map +1 -1
  198. package/dist/index52.d.ts +25 -203
  199. package/dist/index52.d.ts.map +1 -1
  200. package/dist/index53.d.cts +198 -15
  201. package/dist/index53.d.cts.map +1 -1
  202. package/dist/index53.d.ts +198 -15
  203. package/dist/index53.d.ts.map +1 -1
  204. package/dist/index54.d.cts +21 -23
  205. package/dist/index54.d.cts.map +1 -1
  206. package/dist/index54.d.ts +21 -23
  207. package/dist/index54.d.ts.map +1 -1
  208. package/dist/index55.d.cts +21 -18
  209. package/dist/index55.d.cts.map +1 -1
  210. package/dist/index55.d.ts +21 -18
  211. package/dist/index55.d.ts.map +1 -1
  212. package/dist/index56.d.cts +21 -8
  213. package/dist/index56.d.cts.map +1 -1
  214. package/dist/index56.d.ts +21 -8
  215. package/dist/index56.d.ts.map +1 -1
  216. package/dist/index57.d.cts +6 -44
  217. package/dist/index57.d.cts.map +1 -1
  218. package/dist/index57.d.ts +6 -44
  219. package/dist/index57.d.ts.map +1 -1
  220. package/dist/index58.d.cts +46 -47
  221. package/dist/index58.d.cts.map +1 -1
  222. package/dist/index58.d.ts +46 -47
  223. package/dist/index58.d.ts.map +1 -1
  224. package/dist/index59.d.cts +47 -59
  225. package/dist/index59.d.cts.map +1 -1
  226. package/dist/index59.d.ts +47 -59
  227. package/dist/index59.d.ts.map +1 -1
  228. package/dist/index6.d.cts +7 -7
  229. package/dist/index6.d.cts.map +1 -1
  230. package/dist/index6.d.ts +7 -7
  231. package/dist/index6.d.ts.map +1 -1
  232. package/dist/index60.d.cts +56 -38
  233. package/dist/index60.d.cts.map +1 -1
  234. package/dist/index60.d.ts +56 -38
  235. package/dist/index60.d.ts.map +1 -1
  236. package/dist/index61.d.cts +38 -14
  237. package/dist/index61.d.cts.map +1 -1
  238. package/dist/index61.d.ts +38 -14
  239. package/dist/index61.d.ts.map +1 -1
  240. package/dist/index62.d.cts +20 -41
  241. package/dist/index62.d.cts.map +1 -1
  242. package/dist/index62.d.ts +20 -41
  243. package/dist/index62.d.ts.map +1 -1
  244. package/dist/index63.d.cts +41 -19
  245. package/dist/index63.d.cts.map +1 -1
  246. package/dist/index63.d.ts +41 -19
  247. package/dist/index63.d.ts.map +1 -1
  248. package/dist/index64.d.cts +14 -39
  249. package/dist/index64.d.cts.map +1 -1
  250. package/dist/index64.d.ts +14 -39
  251. package/dist/index64.d.ts.map +1 -1
  252. package/dist/index65.d.cts +39 -16
  253. package/dist/index65.d.cts.map +1 -1
  254. package/dist/index65.d.ts +39 -16
  255. package/dist/index65.d.ts.map +1 -1
  256. package/dist/index66.d.cts +18 -12
  257. package/dist/index66.d.cts.map +1 -1
  258. package/dist/index66.d.ts +18 -12
  259. package/dist/index66.d.ts.map +1 -1
  260. package/dist/index67.d.cts +12 -30
  261. package/dist/index67.d.cts.map +1 -1
  262. package/dist/index67.d.ts +12 -30
  263. package/dist/index67.d.ts.map +1 -1
  264. package/dist/index68.d.cts +28 -27
  265. package/dist/index68.d.cts.map +1 -1
  266. package/dist/index68.d.ts +28 -27
  267. package/dist/index68.d.ts.map +1 -1
  268. package/dist/index69.d.cts +36 -69
  269. package/dist/index69.d.cts.map +1 -0
  270. package/dist/index69.d.ts +36 -69
  271. package/dist/index69.d.ts.map +1 -0
  272. package/dist/index7.d.cts +8 -8
  273. package/dist/index7.d.cts.map +1 -1
  274. package/dist/index7.d.ts +8 -8
  275. package/dist/index70.d.cts +76 -237
  276. package/dist/index70.d.cts.map +1 -1
  277. package/dist/index70.d.ts +76 -237
  278. package/dist/index70.d.ts.map +1 -1
  279. package/dist/index71.d.cts +242 -0
  280. package/dist/index71.d.cts.map +1 -0
  281. package/dist/index71.d.ts +242 -0
  282. package/dist/index71.d.ts.map +1 -0
  283. package/dist/index8.d.cts +4 -4
  284. package/dist/index8.d.cts.map +1 -1
  285. package/dist/index8.d.ts +4 -4
  286. package/dist/index8.d.ts.map +1 -1
  287. package/dist/index9.d.cts +2 -2
  288. package/dist/index9.d.ts +2 -2
  289. package/dist/layouts/Container/index.cjs +4 -4
  290. package/dist/layouts/Container/index.cjs.map +1 -1
  291. package/dist/layouts/Container/index.d.cts +1 -1
  292. package/dist/layouts/Container/index.d.ts +1 -1
  293. package/dist/layouts/Container/index.js +4 -4
  294. package/dist/layouts/Container/index.js.map +1 -1
  295. package/dist/layouts/PageBackground/index.cjs +2 -2
  296. package/dist/layouts/PageBackground/index.cjs.map +1 -1
  297. package/dist/layouts/PageBackground/index.d.cts +1 -1
  298. package/dist/layouts/PageBackground/index.d.ts +1 -1
  299. package/dist/layouts/PageBackground/index.js +2 -2
  300. package/dist/layouts/PageBackground/index.js.map +1 -1
  301. package/dist/layouts/Stack/index.d.cts +1 -1
  302. package/dist/layouts/Stack/index.d.ts +1 -1
  303. package/dist/layouts/TwoColumn/index.d.cts +1 -1
  304. package/dist/layouts/TwoColumn/index.d.ts +1 -1
  305. package/dist/layouts/index.d.cts +4 -4
  306. package/dist/layouts/index.d.ts +4 -4
  307. package/dist/patterns/DataTable/index.cjs +12 -7
  308. package/dist/patterns/DataTable/index.cjs.map +1 -1
  309. package/dist/patterns/DataTable/index.d.cts +3 -3
  310. package/dist/patterns/DataTable/index.d.cts.map +1 -1
  311. package/dist/patterns/DataTable/index.d.ts +3 -3
  312. package/dist/patterns/DataTable/index.d.ts.map +1 -1
  313. package/dist/patterns/DataTable/index.js +12 -7
  314. package/dist/patterns/DataTable/index.js.map +1 -1
  315. package/dist/patterns/Footer/index.cjs +5 -5
  316. package/dist/patterns/Footer/index.cjs.map +1 -1
  317. package/dist/patterns/Footer/index.d.cts +9 -9
  318. package/dist/patterns/Footer/index.d.cts.map +1 -1
  319. package/dist/patterns/Footer/index.d.ts +9 -9
  320. package/dist/patterns/Footer/index.d.ts.map +1 -1
  321. package/dist/patterns/Footer/index.js +5 -5
  322. package/dist/patterns/Footer/index.js.map +1 -1
  323. package/dist/patterns/Header/index.d.cts +1 -1
  324. package/dist/patterns/Header/index.d.ts +1 -1
  325. package/dist/patterns/MediaObject/index.cjs +1 -1
  326. package/dist/patterns/MediaObject/index.cjs.map +1 -1
  327. package/dist/patterns/MediaObject/index.d.cts +12 -12
  328. package/dist/patterns/MediaObject/index.d.cts.map +1 -1
  329. package/dist/patterns/MediaObject/index.d.ts +13 -13
  330. package/dist/patterns/MediaObject/index.d.ts.map +1 -1
  331. package/dist/patterns/MediaObject/index.js +1 -1
  332. package/dist/patterns/MediaObject/index.js.map +1 -1
  333. package/dist/patterns/NavRail/index.cjs +195 -0
  334. package/dist/patterns/NavRail/index.cjs.map +1 -0
  335. package/dist/patterns/NavRail/index.d.cts +2 -0
  336. package/dist/patterns/NavRail/index.d.ts +2 -0
  337. package/dist/patterns/NavRail/index.js +185 -0
  338. package/dist/patterns/NavRail/index.js.map +1 -0
  339. package/dist/patterns/SectionCard/index.cjs +1 -1
  340. package/dist/patterns/SectionCard/index.cjs.map +1 -1
  341. package/dist/patterns/SectionCard/index.d.cts +2 -2
  342. package/dist/patterns/SectionCard/index.d.ts +2 -2
  343. package/dist/patterns/SectionCard/index.d.ts.map +1 -1
  344. package/dist/patterns/SectionCard/index.js +1 -1
  345. package/dist/patterns/SectionCard/index.js.map +1 -1
  346. package/dist/patterns/SectionHeading/index.d.cts +2 -2
  347. package/dist/patterns/SectionHeading/index.d.cts.map +1 -1
  348. package/dist/patterns/SectionHeading/index.d.ts +2 -2
  349. package/dist/patterns/SectionHeading/index.d.ts.map +1 -1
  350. package/dist/patterns/index.cjs +9 -0
  351. package/dist/patterns/index.d.cts +3 -2
  352. package/dist/patterns/index.d.ts +3 -2
  353. package/dist/patterns/index.js +2 -1
  354. package/dist/primitives/Accordion/index.cjs +6 -6
  355. package/dist/primitives/Accordion/index.cjs.map +1 -1
  356. package/dist/primitives/Accordion/index.js +6 -6
  357. package/dist/primitives/Accordion/index.js.map +1 -1
  358. package/dist/primitives/Alert/index.cjs +4 -4
  359. package/dist/primitives/Alert/index.cjs.map +1 -1
  360. package/dist/primitives/Alert/index.js +4 -4
  361. package/dist/primitives/Alert/index.js.map +1 -1
  362. package/dist/primitives/AlertDialog/index.cjs +4 -4
  363. package/dist/primitives/AlertDialog/index.cjs.map +1 -1
  364. package/dist/primitives/AlertDialog/index.js +4 -4
  365. package/dist/primitives/AlertDialog/index.js.map +1 -1
  366. package/dist/primitives/Avatar/index.cjs +5 -5
  367. package/dist/primitives/Avatar/index.cjs.map +1 -1
  368. package/dist/primitives/Avatar/index.js +5 -5
  369. package/dist/primitives/Avatar/index.js.map +1 -1
  370. package/dist/primitives/Badge/index.cjs +11 -10
  371. package/dist/primitives/Badge/index.cjs.map +1 -1
  372. package/dist/primitives/Badge/index.js +11 -10
  373. package/dist/primitives/Badge/index.js.map +1 -1
  374. package/dist/primitives/Breadcrumb/index.cjs +4 -4
  375. package/dist/primitives/Breadcrumb/index.cjs.map +1 -1
  376. package/dist/primitives/Breadcrumb/index.js +4 -4
  377. package/dist/primitives/Breadcrumb/index.js.map +1 -1
  378. package/dist/primitives/Button/index.cjs +20 -13
  379. package/dist/primitives/Button/index.cjs.map +1 -1
  380. package/dist/primitives/Button/index.js +20 -13
  381. package/dist/primitives/Button/index.js.map +1 -1
  382. package/dist/primitives/ButtonGroup/index.cjs +3 -3
  383. package/dist/primitives/ButtonGroup/index.cjs.map +1 -1
  384. package/dist/primitives/ButtonGroup/index.js +3 -3
  385. package/dist/primitives/ButtonGroup/index.js.map +1 -1
  386. package/dist/primitives/Calendar/index.cjs +22 -21
  387. package/dist/primitives/Calendar/index.cjs.map +1 -1
  388. package/dist/primitives/Calendar/index.js +22 -21
  389. package/dist/primitives/Calendar/index.js.map +1 -1
  390. package/dist/primitives/Card/index.cjs +18 -16
  391. package/dist/primitives/Card/index.cjs.map +1 -1
  392. package/dist/primitives/Card/index.js +18 -16
  393. package/dist/primitives/Card/index.js.map +1 -1
  394. package/dist/primitives/Carousel/index.cjs +2 -2
  395. package/dist/primitives/Carousel/index.cjs.map +1 -1
  396. package/dist/primitives/Carousel/index.js +2 -2
  397. package/dist/primitives/Carousel/index.js.map +1 -1
  398. package/dist/primitives/Chart/index.cjs +12 -12
  399. package/dist/primitives/Chart/index.cjs.map +1 -1
  400. package/dist/primitives/Chart/index.js +12 -12
  401. package/dist/primitives/Chart/index.js.map +1 -1
  402. package/dist/primitives/Checkbox/index.cjs +6 -6
  403. package/dist/primitives/Checkbox/index.cjs.map +1 -1
  404. package/dist/primitives/Checkbox/index.js +6 -6
  405. package/dist/primitives/Checkbox/index.js.map +1 -1
  406. package/dist/primitives/CheckboxTree/index.cjs +2 -2
  407. package/dist/primitives/CheckboxTree/index.cjs.map +1 -1
  408. package/dist/primitives/CheckboxTree/index.js +2 -2
  409. package/dist/primitives/CheckboxTree/index.js.map +1 -1
  410. package/dist/primitives/Command/index.cjs +9 -9
  411. package/dist/primitives/Command/index.cjs.map +1 -1
  412. package/dist/primitives/Command/index.js +9 -9
  413. package/dist/primitives/Command/index.js.map +1 -1
  414. package/dist/primitives/ContextMenu/index.cjs +10 -10
  415. package/dist/primitives/ContextMenu/index.cjs.map +1 -1
  416. package/dist/primitives/ContextMenu/index.js +10 -10
  417. package/dist/primitives/ContextMenu/index.js.map +1 -1
  418. package/dist/primitives/Credits/index.cjs +4 -4
  419. package/dist/primitives/Credits/index.cjs.map +1 -1
  420. package/dist/primitives/Credits/index.js +4 -4
  421. package/dist/primitives/Credits/index.js.map +1 -1
  422. package/dist/primitives/Dialog/index.cjs +5 -5
  423. package/dist/primitives/Dialog/index.cjs.map +1 -1
  424. package/dist/primitives/Dialog/index.js +5 -5
  425. package/dist/primitives/Dialog/index.js.map +1 -1
  426. package/dist/primitives/Drawer/index.cjs +5 -5
  427. package/dist/primitives/Drawer/index.cjs.map +1 -1
  428. package/dist/primitives/Drawer/index.js +5 -5
  429. package/dist/primitives/Drawer/index.js.map +1 -1
  430. package/dist/primitives/DropdownMenu/index.cjs +9 -9
  431. package/dist/primitives/DropdownMenu/index.cjs.map +1 -1
  432. package/dist/primitives/DropdownMenu/index.js +9 -9
  433. package/dist/primitives/DropdownMenu/index.js.map +1 -1
  434. package/dist/primitives/Empty/index.cjs +4 -4
  435. package/dist/primitives/Empty/index.cjs.map +1 -1
  436. package/dist/primitives/Empty/index.js +4 -4
  437. package/dist/primitives/Empty/index.js.map +1 -1
  438. package/dist/primitives/Field/index.cjs +5 -5
  439. package/dist/primitives/Field/index.cjs.map +1 -1
  440. package/dist/primitives/Field/index.js +5 -5
  441. package/dist/primitives/Field/index.js.map +1 -1
  442. package/dist/primitives/Form/index.cjs +1 -1
  443. package/dist/primitives/Form/index.cjs.map +1 -1
  444. package/dist/primitives/Form/index.js +1 -1
  445. package/dist/primitives/Form/index.js.map +1 -1
  446. package/dist/primitives/Heading/index.cjs +2 -2
  447. package/dist/primitives/Heading/index.cjs.map +1 -1
  448. package/dist/primitives/Heading/index.js +2 -2
  449. package/dist/primitives/Heading/index.js.map +1 -1
  450. package/dist/primitives/HoverCard/index.cjs +1 -1
  451. package/dist/primitives/HoverCard/index.cjs.map +1 -1
  452. package/dist/primitives/HoverCard/index.js +1 -1
  453. package/dist/primitives/HoverCard/index.js.map +1 -1
  454. package/dist/primitives/InfoBanner/index.cjs +12 -12
  455. package/dist/primitives/InfoBanner/index.cjs.map +1 -1
  456. package/dist/primitives/InfoBanner/index.js +12 -12
  457. package/dist/primitives/InfoBanner/index.js.map +1 -1
  458. package/dist/primitives/Input/index.cjs +13 -7
  459. package/dist/primitives/Input/index.cjs.map +1 -1
  460. package/dist/primitives/Input/index.js +13 -7
  461. package/dist/primitives/Input/index.js.map +1 -1
  462. package/dist/primitives/InputGroup/index.cjs +7 -7
  463. package/dist/primitives/InputGroup/index.cjs.map +1 -1
  464. package/dist/primitives/InputGroup/index.js +7 -7
  465. package/dist/primitives/InputGroup/index.js.map +1 -1
  466. package/dist/primitives/InputOtp/index.cjs +3 -3
  467. package/dist/primitives/InputOtp/index.cjs.map +1 -1
  468. package/dist/primitives/InputOtp/index.js +3 -3
  469. package/dist/primitives/InputOtp/index.js.map +1 -1
  470. package/dist/primitives/Item/index.cjs +6 -6
  471. package/dist/primitives/Item/index.cjs.map +1 -1
  472. package/dist/primitives/Item/index.js +6 -6
  473. package/dist/primitives/Item/index.js.map +1 -1
  474. package/dist/primitives/Kbd/index.cjs +1 -1
  475. package/dist/primitives/Kbd/index.cjs.map +1 -1
  476. package/dist/primitives/Kbd/index.js +1 -1
  477. package/dist/primitives/Kbd/index.js.map +1 -1
  478. package/dist/primitives/Link/index.cjs +4 -4
  479. package/dist/primitives/Link/index.cjs.map +1 -1
  480. package/dist/primitives/Link/index.js +4 -4
  481. package/dist/primitives/Link/index.js.map +1 -1
  482. package/dist/primitives/Menubar/index.cjs +12 -12
  483. package/dist/primitives/Menubar/index.cjs.map +1 -1
  484. package/dist/primitives/Menubar/index.js +12 -12
  485. package/dist/primitives/Menubar/index.js.map +1 -1
  486. package/dist/primitives/NativeSelect/index.cjs +5 -5
  487. package/dist/primitives/NativeSelect/index.cjs.map +1 -1
  488. package/dist/primitives/NativeSelect/index.js +5 -5
  489. package/dist/primitives/NativeSelect/index.js.map +1 -1
  490. package/dist/primitives/NavRail/index.cjs +9 -194
  491. package/dist/primitives/NavRail/index.d.cts +1 -0
  492. package/dist/primitives/NavRail/index.d.ts +1 -0
  493. package/dist/primitives/NavRail/index.js +1 -184
  494. package/dist/primitives/NavigationMenu/index.cjs +7 -7
  495. package/dist/primitives/NavigationMenu/index.cjs.map +1 -1
  496. package/dist/primitives/NavigationMenu/index.js +7 -7
  497. package/dist/primitives/NavigationMenu/index.js.map +1 -1
  498. package/dist/primitives/Pagination/index.cjs +7 -13
  499. package/dist/primitives/Pagination/index.cjs.map +1 -1
  500. package/dist/primitives/Pagination/index.d.cts +1 -1
  501. package/dist/primitives/Pagination/index.d.ts +1 -1
  502. package/dist/primitives/Pagination/index.js +8 -14
  503. package/dist/primitives/Pagination/index.js.map +1 -1
  504. package/dist/primitives/Popover/index.cjs +4 -4
  505. package/dist/primitives/Popover/index.cjs.map +1 -1
  506. package/dist/primitives/Popover/index.js +4 -4
  507. package/dist/primitives/Popover/index.js.map +1 -1
  508. package/dist/primitives/Progress/index.cjs +16 -16
  509. package/dist/primitives/Progress/index.cjs.map +1 -1
  510. package/dist/primitives/Progress/index.d.cts +1 -1
  511. package/dist/primitives/Progress/index.d.ts +1 -1
  512. package/dist/primitives/Progress/index.js +16 -16
  513. package/dist/primitives/Progress/index.js.map +1 -1
  514. package/dist/primitives/RadioGroup/index.cjs +7 -7
  515. package/dist/primitives/RadioGroup/index.cjs.map +1 -1
  516. package/dist/primitives/RadioGroup/index.d.cts +1 -1
  517. package/dist/primitives/RadioGroup/index.d.ts +1 -1
  518. package/dist/primitives/RadioGroup/index.js +7 -7
  519. package/dist/primitives/RadioGroup/index.js.map +1 -1
  520. package/dist/primitives/Resizable/index.cjs +2 -2
  521. package/dist/primitives/Resizable/index.cjs.map +1 -1
  522. package/dist/primitives/Resizable/index.d.cts +1 -1
  523. package/dist/primitives/Resizable/index.d.ts +1 -1
  524. package/dist/primitives/Resizable/index.js +2 -2
  525. package/dist/primitives/Resizable/index.js.map +1 -1
  526. package/dist/primitives/ScrollArea/index.cjs +2 -2
  527. package/dist/primitives/ScrollArea/index.cjs.map +1 -1
  528. package/dist/primitives/ScrollArea/index.d.cts +1 -1
  529. package/dist/primitives/ScrollArea/index.d.ts +1 -1
  530. package/dist/primitives/ScrollArea/index.js +2 -2
  531. package/dist/primitives/ScrollArea/index.js.map +1 -1
  532. package/dist/primitives/Select/index.cjs +8 -8
  533. package/dist/primitives/Select/index.cjs.map +1 -1
  534. package/dist/primitives/Select/index.d.cts +1 -1
  535. package/dist/primitives/Select/index.d.ts +1 -1
  536. package/dist/primitives/Select/index.js +8 -8
  537. package/dist/primitives/Select/index.js.map +1 -1
  538. package/dist/primitives/Separator/index.cjs +1 -1
  539. package/dist/primitives/Separator/index.cjs.map +1 -1
  540. package/dist/primitives/Separator/index.js +1 -1
  541. package/dist/primitives/Separator/index.js.map +1 -1
  542. package/dist/primitives/Sheet/index.cjs +8 -8
  543. package/dist/primitives/Sheet/index.cjs.map +1 -1
  544. package/dist/primitives/Sheet/index.d.cts +1 -1
  545. package/dist/primitives/Sheet/index.d.ts +1 -1
  546. package/dist/primitives/Sheet/index.js +8 -8
  547. package/dist/primitives/Sheet/index.js.map +1 -1
  548. package/dist/primitives/Sidebar/index.d.cts +1 -1
  549. package/dist/primitives/Sidebar/index.d.ts +1 -1
  550. package/dist/primitives/Skeleton/index.cjs +2 -2
  551. package/dist/primitives/Skeleton/index.cjs.map +1 -1
  552. package/dist/primitives/Skeleton/index.d.cts +1 -1
  553. package/dist/primitives/Skeleton/index.d.ts +1 -1
  554. package/dist/primitives/Skeleton/index.js +2 -2
  555. package/dist/primitives/Skeleton/index.js.map +1 -1
  556. package/dist/primitives/Slider/index.cjs +3 -3
  557. package/dist/primitives/Slider/index.cjs.map +1 -1
  558. package/dist/primitives/Slider/index.d.cts +1 -1
  559. package/dist/primitives/Slider/index.d.ts +1 -1
  560. package/dist/primitives/Slider/index.js +3 -3
  561. package/dist/primitives/Slider/index.js.map +1 -1
  562. package/dist/primitives/Sonner/index.cjs +13 -6
  563. package/dist/primitives/Sonner/index.cjs.map +1 -1
  564. package/dist/primitives/Sonner/index.d.cts +1 -1
  565. package/dist/primitives/Sonner/index.d.ts +1 -1
  566. package/dist/primitives/Sonner/index.js +13 -6
  567. package/dist/primitives/Sonner/index.js.map +1 -1
  568. package/dist/primitives/Spinner/index.d.cts +1 -1
  569. package/dist/primitives/Spinner/index.d.ts +1 -1
  570. package/dist/primitives/Switch/index.cjs +7 -7
  571. package/dist/primitives/Switch/index.cjs.map +1 -1
  572. package/dist/primitives/Switch/index.d.cts +1 -1
  573. package/dist/primitives/Switch/index.d.ts +1 -1
  574. package/dist/primitives/Switch/index.js +7 -7
  575. package/dist/primitives/Switch/index.js.map +1 -1
  576. package/dist/primitives/Table/index.cjs +7 -7
  577. package/dist/primitives/Table/index.cjs.map +1 -1
  578. package/dist/primitives/Table/index.d.cts +1 -1
  579. package/dist/primitives/Table/index.d.ts +1 -1
  580. package/dist/primitives/Table/index.js +7 -7
  581. package/dist/primitives/Table/index.js.map +1 -1
  582. package/dist/primitives/Tabs/index.cjs +21 -21
  583. package/dist/primitives/Tabs/index.cjs.map +1 -1
  584. package/dist/primitives/Tabs/index.d.cts +1 -1
  585. package/dist/primitives/Tabs/index.d.ts +1 -1
  586. package/dist/primitives/Tabs/index.js +21 -21
  587. package/dist/primitives/Tabs/index.js.map +1 -1
  588. package/dist/primitives/Text/index.cjs +5 -5
  589. package/dist/primitives/Text/index.cjs.map +1 -1
  590. package/dist/primitives/Text/index.d.cts +1 -1
  591. package/dist/primitives/Text/index.d.ts +1 -1
  592. package/dist/primitives/Text/index.js +5 -5
  593. package/dist/primitives/Text/index.js.map +1 -1
  594. package/dist/primitives/Textarea/index.cjs +20 -8
  595. package/dist/primitives/Textarea/index.cjs.map +1 -1
  596. package/dist/primitives/Textarea/index.d.cts +1 -1
  597. package/dist/primitives/Textarea/index.d.ts +1 -1
  598. package/dist/primitives/Textarea/index.js +20 -8
  599. package/dist/primitives/Textarea/index.js.map +1 -1
  600. package/dist/primitives/ThemeProvider/index.d.cts +1 -1
  601. package/dist/primitives/ThemeProvider/index.d.ts +1 -1
  602. package/dist/primitives/Toggle/index.cjs +11 -10
  603. package/dist/primitives/Toggle/index.cjs.map +1 -1
  604. package/dist/primitives/Toggle/index.d.cts +1 -1
  605. package/dist/primitives/Toggle/index.d.ts +1 -1
  606. package/dist/primitives/Toggle/index.js +11 -10
  607. package/dist/primitives/Toggle/index.js.map +1 -1
  608. package/dist/primitives/ToggleGroup/index.cjs +2 -2
  609. package/dist/primitives/ToggleGroup/index.cjs.map +1 -1
  610. package/dist/primitives/ToggleGroup/index.d.cts +1 -1
  611. package/dist/primitives/ToggleGroup/index.d.ts +1 -1
  612. package/dist/primitives/ToggleGroup/index.js +2 -2
  613. package/dist/primitives/ToggleGroup/index.js.map +1 -1
  614. package/dist/primitives/Tooltip/index.cjs +2 -2
  615. package/dist/primitives/Tooltip/index.cjs.map +1 -1
  616. package/dist/primitives/Tooltip/index.d.cts +1 -1
  617. package/dist/primitives/Tooltip/index.d.ts +1 -1
  618. package/dist/primitives/Tooltip/index.js +2 -2
  619. package/dist/primitives/Tooltip/index.js.map +1 -1
  620. package/dist/primitives/index.cjs +10 -10
  621. package/dist/primitives/index.d.cts +21 -21
  622. package/dist/primitives/index.d.ts +21 -21
  623. package/dist/primitives/index.js +2 -2
  624. package/dist/styles/base.css +23 -4
  625. package/dist/styles/brand-scopes.css +49 -0
  626. package/dist/styles/glass.css +13 -8
  627. package/dist/styles/index.css +8 -9
  628. package/dist/styles/theme.css +141 -90
  629. package/dist/styles/tokens/border-radius.css +8 -8
  630. package/dist/styles/tokens/mode-dark.css +71 -94
  631. package/dist/styles/tokens/mode-light.css +71 -94
  632. package/dist/styles/tokens/shadows.css +4 -7
  633. package/dist/styles/tokens/spacing.css +17 -37
  634. package/dist/styles/tokens/theme-bodhi.css +6 -28
  635. package/dist/styles/tokens/theme-slingshot.css +7 -28
  636. package/dist/styles/tokens/theme-sustain.css +6 -28
  637. package/dist/styles/typography.css +9 -9
  638. package/package.json +8 -2
  639. package/dist/index44.d.cts.map +0 -1
  640. package/dist/index44.d.ts.map +0 -1
  641. package/dist/primitives/NavRail/index.cjs.map +0 -1
  642. package/dist/primitives/NavRail/index.js.map +0 -1
  643. package/dist/styles/semantic.css +0 -178
  644. package/dist/styles/tokens/alpha.css +0 -39
  645. package/dist/styles/tokens/chart-colors-dark.css +0 -18
  646. package/dist/styles/tokens/chart-colors-light.css +0 -18
  647. package/dist/styles/tokens/colors.css +0 -251
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["MenubarPrimitive","cn","CheckIcon","CircleIcon","ChevronRightIcon"],"sources":["../../../src/primitives/Menubar/Menubar.tsx"],"sourcesContent":["import { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport { Menubar as MenubarPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Horizontal application menu bar that hosts a row of dropdown menus (File, Edit, …). */\nfunction Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A single menu within the bar — wraps a trigger and its content. */\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\n/** Groups related menu items together for semantic structure. */\nfunction MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\n/** Portals menu content into the document body so it escapes overflow/stacking contexts. */\nfunction MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />;\n}\n\n/** Groups `MenubarRadioItem`s so only one can be selected at a time. */\nfunction MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\n/** The clickable label in the bar that opens its menu's content. */\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** The dropdown surface that holds a menu's items; portalled and animated. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\n/** A selectable action inside a menu's content. */\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n /** Visual intent — `destructive` styles the item in the danger colour. */\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive-subtle data-[variant=destructive]:focus:text-destructive [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A menu item with a toggleable checkmark indicator. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\n/** A menu item with a radio dot indicator; use inside a `MenubarRadioGroup`. */\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\n/** A non-interactive heading that titles a group of menu items. */\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\", className)}\n {...props}\n />\n );\n}\n\n/** A thin divider line between groups of menu items. */\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\n/** Right-aligned hint text for an item's keyboard shortcut (e.g. ⌘T). */\nfunction MenubarShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\n/** Wraps a nested submenu (its trigger and content). */\nfunction MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\n/** An item that opens a nested submenu; shows a trailing chevron. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\n/** The dropdown surface for a nested submenu's items. */\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["MenubarPrimitive","cn","CheckIcon","CircleIcon","ChevronRightIcon"],"sources":["../../../src/primitives/Menubar/Menubar.tsx"],"sourcesContent":["import { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport { Menubar as MenubarPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Horizontal application menu bar that hosts a row of dropdown menus (File, Edit, …). */\nfunction Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-1 rounded-8 border border-primary-border bg-primary-bg p-1 shadow-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A single menu within the bar — wraps a trigger and its content. */\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\n/** Groups related menu items together for semantic structure. */\nfunction MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\n/** Portals menu content into the document body so it escapes overflow/stacking contexts. */\nfunction MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />;\n}\n\n/** Groups `MenubarRadioItem`s so only one can be selected at a time. */\nfunction MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\n/** The clickable label in the bar that opens its menu's content. */\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-8 px-2 py-1 font-heading text-sm leading-5 font-medium outline-hidden select-none focus:bg-ghost-hover-bg data-[state=open]:bg-toggle-active-bg\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** The dropdown surface that holds a menu's items; portalled and animated. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-48 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg p-2 text-primary-txt shadow-sm data-[side=bottom]:slide-in-from-top-8 data-[side=left]:slide-in-from-right-8 data-[side=right]:slide-in-from-left-8 data-[side=top]:slide-in-from-bottom-8 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n // Vertical hierarchy: if any item reserves the 32px indicator column\n // (checkbox/radio items), plain items, labels and sub-triggers share it.\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-item]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-label]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-sub-trigger]:not([data-inset])]:pl-8\",\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\n/** A selectable action inside a menu's content. */\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n /** Visual intent — `destructive` styles the item in the danger colour. */\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"relative flex min-h-8 cursor-default items-center gap-2 rounded-10 px-2 py-1.5 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-danger-txt data-[variant=destructive]:focus:bg-danger-bg [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt data-[variant=destructive]:*:[svg]:text-danger-txt!\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A menu item with a toggleable checkmark indicator. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex min-h-8 cursor-default items-center gap-2 rounded-10 py-1.5 pr-2 pl-8 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\n/** A menu item with a radio dot indicator; use inside a `MenubarRadioGroup`. */\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex min-h-8 cursor-default items-center gap-2 rounded-10 py-1.5 pr-2 pl-8 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\n/** A non-interactive heading that titles a group of menu items. */\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-xs leading-4 font-medium text-muted-txt data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A thin divider line between groups of menu items. */\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn(\"my-1 h-px bg-primary-border\", className)}\n {...props}\n />\n );\n}\n\n/** Right-aligned hint text for an item's keyboard shortcut (e.g. ⌘T). */\nfunction MenubarShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\"ml-auto text-sm leading-5 text-muted-txt\", className)}\n {...props}\n />\n );\n}\n\n/** Wraps a nested submenu (its trigger and content). */\nfunction MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\n/** An item that opens a nested submenu; shows a trailing chevron. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex min-h-8 cursor-default items-center gap-2 rounded-10 px-2 py-1.5 text-sm leading-5 outline-none select-none focus:bg-ghost-hover-bg data-[inset]:pl-8 data-[state=open]:bg-ghost-hover-bg\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\n/** The dropdown surface for a nested submenu's items. */\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg p-2 text-primary-txt shadow-sm data-[side=bottom]:slide-in-from-top-8 data-[side=left]:slide-in-from-right-8 data-[side=right]:slide-in-from-left-8 data-[side=top]:slide-in-from-bottom-8 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n // Vertical hierarchy: if any item reserves the 32px indicator column\n // (checkbox/radio items), plain items, labels and sub-triggers share it.\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-item]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-label]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-sub-trigger]:not([data-inset])]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
7
7
  function Menubar({ className, ...props }) {
8
8
  return /* @__PURE__ */ jsx(Menubar$1.Root, {
9
9
  "data-slot": "menubar",
10
- className: cn("flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs", className),
10
+ className: cn("flex h-9 items-center gap-1 rounded-8 border border-primary-border bg-primary-bg p-1 shadow-sm", className),
11
11
  ...props
12
12
  });
13
13
  }
@@ -43,7 +43,7 @@ function MenubarRadioGroup({ ...props }) {
43
43
  function MenubarTrigger({ className, ...props }) {
44
44
  return /* @__PURE__ */ jsx(Menubar$1.Trigger, {
45
45
  "data-slot": "menubar-trigger",
46
- className: cn("flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", className),
46
+ className: cn("flex items-center rounded-8 px-2 py-1 font-heading text-sm leading-5 font-medium outline-hidden select-none focus:bg-ghost-hover-bg data-[state=open]:bg-toggle-active-bg", className),
47
47
  ...props
48
48
  });
49
49
  }
@@ -54,7 +54,7 @@ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffs
54
54
  align,
55
55
  alignOffset,
56
56
  sideOffset,
57
- className: cn("z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className),
57
+ className: cn("z-50 min-w-48 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg p-2 text-primary-txt shadow-sm data-[side=bottom]:slide-in-from-top-8 data-[side=left]:slide-in-from-right-8 data-[side=right]:slide-in-from-left-8 data-[side=top]:slide-in-from-bottom-8 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", "[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-item]:not([data-inset])]:pl-8", "[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-label]:not([data-inset])]:pl-8", "[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-sub-trigger]:not([data-inset])]:pl-8", className),
58
58
  ...props
59
59
  }) });
60
60
  }
@@ -64,7 +64,7 @@ function MenubarItem({ className, inset, variant = "default", ...props }) {
64
64
  "data-slot": "menubar-item",
65
65
  "data-inset": inset,
66
66
  "data-variant": variant,
67
- className: cn("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive-subtle data-[variant=destructive]:focus:text-destructive [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!", className),
67
+ className: cn("relative flex min-h-8 cursor-default items-center gap-2 rounded-10 px-2 py-1.5 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-danger-txt data-[variant=destructive]:focus:bg-danger-bg [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt data-[variant=destructive]:*:[svg]:text-danger-txt!", className),
68
68
  ...props
69
69
  });
70
70
  }
@@ -72,7 +72,7 @@ function MenubarItem({ className, inset, variant = "default", ...props }) {
72
72
  function MenubarCheckboxItem({ className, children, checked, ...props }) {
73
73
  return /* @__PURE__ */ jsxs(Menubar$1.CheckboxItem, {
74
74
  "data-slot": "menubar-checkbox-item",
75
- className: cn("relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
75
+ className: cn("relative flex min-h-8 cursor-default items-center gap-2 rounded-10 py-1.5 pr-2 pl-8 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
76
76
  checked,
77
77
  ...props,
78
78
  children: [/* @__PURE__ */ jsx("span", {
@@ -85,7 +85,7 @@ function MenubarCheckboxItem({ className, children, checked, ...props }) {
85
85
  function MenubarRadioItem({ className, children, ...props }) {
86
86
  return /* @__PURE__ */ jsxs(Menubar$1.RadioItem, {
87
87
  "data-slot": "menubar-radio-item",
88
- className: cn("relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
88
+ className: cn("relative flex min-h-8 cursor-default items-center gap-2 rounded-10 py-1.5 pr-2 pl-8 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
89
89
  ...props,
90
90
  children: [/* @__PURE__ */ jsx("span", {
91
91
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
@@ -98,7 +98,7 @@ function MenubarLabel({ className, inset, ...props }) {
98
98
  return /* @__PURE__ */ jsx(Menubar$1.Label, {
99
99
  "data-slot": "menubar-label",
100
100
  "data-inset": inset,
101
- className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
101
+ className: cn("px-2 py-1.5 text-xs leading-4 font-medium text-muted-txt data-[inset]:pl-8", className),
102
102
  ...props
103
103
  });
104
104
  }
@@ -106,7 +106,7 @@ function MenubarLabel({ className, inset, ...props }) {
106
106
  function MenubarSeparator({ className, ...props }) {
107
107
  return /* @__PURE__ */ jsx(Menubar$1.Separator, {
108
108
  "data-slot": "menubar-separator",
109
- className: cn("-mx-1 my-1 h-px bg-border", className),
109
+ className: cn("my-1 h-px bg-primary-border", className),
110
110
  ...props
111
111
  });
112
112
  }
@@ -114,7 +114,7 @@ function MenubarSeparator({ className, ...props }) {
114
114
  function MenubarShortcut({ className, ...props }) {
115
115
  return /* @__PURE__ */ jsx("span", {
116
116
  "data-slot": "menubar-shortcut",
117
- className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className),
117
+ className: cn("ml-auto text-sm leading-5 text-muted-txt", className),
118
118
  ...props
119
119
  });
120
120
  }
@@ -130,16 +130,16 @@ function MenubarSubTrigger({ className, inset, children, ...props }) {
130
130
  return /* @__PURE__ */ jsxs(Menubar$1.SubTrigger, {
131
131
  "data-slot": "menubar-sub-trigger",
132
132
  "data-inset": inset,
133
- className: cn("flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", className),
133
+ className: cn("flex min-h-8 cursor-default items-center gap-2 rounded-10 px-2 py-1.5 text-sm leading-5 outline-none select-none focus:bg-ghost-hover-bg data-[inset]:pl-8 data-[state=open]:bg-ghost-hover-bg", className),
134
134
  ...props,
135
- children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto h-4 w-4" })]
135
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
136
136
  });
137
137
  }
138
138
  /** The dropdown surface for a nested submenu's items. */
139
139
  function MenubarSubContent({ className, ...props }) {
140
140
  return /* @__PURE__ */ jsx(Menubar$1.SubContent, {
141
141
  "data-slot": "menubar-sub-content",
142
- className: cn("z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className),
142
+ className: cn("z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg p-2 text-primary-txt shadow-sm data-[side=bottom]:slide-in-from-top-8 data-[side=left]:slide-in-from-right-8 data-[side=right]:slide-in-from-left-8 data-[side=top]:slide-in-from-bottom-8 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", "[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-item]:not([data-inset])]:pl-8", "[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-label]:not([data-inset])]:pl-8", "[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-sub-trigger]:not([data-inset])]:pl-8", className),
143
143
  ...props
144
144
  });
145
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["MenubarPrimitive"],"sources":["../../../src/primitives/Menubar/Menubar.tsx"],"sourcesContent":["import { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport { Menubar as MenubarPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Horizontal application menu bar that hosts a row of dropdown menus (File, Edit, …). */\nfunction Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A single menu within the bar — wraps a trigger and its content. */\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\n/** Groups related menu items together for semantic structure. */\nfunction MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\n/** Portals menu content into the document body so it escapes overflow/stacking contexts. */\nfunction MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />;\n}\n\n/** Groups `MenubarRadioItem`s so only one can be selected at a time. */\nfunction MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\n/** The clickable label in the bar that opens its menu's content. */\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** The dropdown surface that holds a menu's items; portalled and animated. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\n/** A selectable action inside a menu's content. */\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n /** Visual intent — `destructive` styles the item in the danger colour. */\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive-subtle data-[variant=destructive]:focus:text-destructive [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A menu item with a toggleable checkmark indicator. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\n/** A menu item with a radio dot indicator; use inside a `MenubarRadioGroup`. */\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\n/** A non-interactive heading that titles a group of menu items. */\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\", className)}\n {...props}\n />\n );\n}\n\n/** A thin divider line between groups of menu items. */\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\n/** Right-aligned hint text for an item's keyboard shortcut (e.g. ⌘T). */\nfunction MenubarShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\n/** Wraps a nested submenu (its trigger and content). */\nfunction MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\n/** An item that opens a nested submenu; shows a trailing chevron. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\n/** The dropdown surface for a nested submenu's items. */\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["MenubarPrimitive"],"sources":["../../../src/primitives/Menubar/Menubar.tsx"],"sourcesContent":["import { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\nimport { Menubar as MenubarPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Horizontal application menu bar that hosts a row of dropdown menus (File, Edit, …). */\nfunction Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-1 rounded-8 border border-primary-border bg-primary-bg p-1 shadow-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A single menu within the bar — wraps a trigger and its content. */\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\n/** Groups related menu items together for semantic structure. */\nfunction MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\n/** Portals menu content into the document body so it escapes overflow/stacking contexts. */\nfunction MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />;\n}\n\n/** Groups `MenubarRadioItem`s so only one can be selected at a time. */\nfunction MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\n/** The clickable label in the bar that opens its menu's content. */\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-8 px-2 py-1 font-heading text-sm leading-5 font-medium outline-hidden select-none focus:bg-ghost-hover-bg data-[state=open]:bg-toggle-active-bg\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** The dropdown surface that holds a menu's items; portalled and animated. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-48 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg p-2 text-primary-txt shadow-sm data-[side=bottom]:slide-in-from-top-8 data-[side=left]:slide-in-from-right-8 data-[side=right]:slide-in-from-left-8 data-[side=top]:slide-in-from-bottom-8 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n // Vertical hierarchy: if any item reserves the 32px indicator column\n // (checkbox/radio items), plain items, labels and sub-triggers share it.\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-item]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-label]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-sub-trigger]:not([data-inset])]:pl-8\",\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\n/** A selectable action inside a menu's content. */\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n /** Visual intent — `destructive` styles the item in the danger colour. */\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"relative flex min-h-8 cursor-default items-center gap-2 rounded-10 px-2 py-1.5 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-danger-txt data-[variant=destructive]:focus:bg-danger-bg [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt data-[variant=destructive]:*:[svg]:text-danger-txt!\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A menu item with a toggleable checkmark indicator. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex min-h-8 cursor-default items-center gap-2 rounded-10 py-1.5 pr-2 pl-8 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\n/** A menu item with a radio dot indicator; use inside a `MenubarRadioGroup`. */\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex min-h-8 cursor-default items-center gap-2 rounded-10 py-1.5 pr-2 pl-8 text-sm leading-5 outline-hidden select-none focus:bg-ghost-hover-bg data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\n/** A non-interactive heading that titles a group of menu items. */\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-xs leading-4 font-medium text-muted-txt data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** A thin divider line between groups of menu items. */\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn(\"my-1 h-px bg-primary-border\", className)}\n {...props}\n />\n );\n}\n\n/** Right-aligned hint text for an item's keyboard shortcut (e.g. ⌘T). */\nfunction MenubarShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\"ml-auto text-sm leading-5 text-muted-txt\", className)}\n {...props}\n />\n );\n}\n\n/** Wraps a nested submenu (its trigger and content). */\nfunction MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\n/** An item that opens a nested submenu; shows a trailing chevron. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n /** Adds left padding to align the label with items that have leading icons/indicators. */\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex min-h-8 cursor-default items-center gap-2 rounded-10 px-2 py-1.5 text-sm leading-5 outline-none select-none focus:bg-ghost-hover-bg data-[inset]:pl-8 data-[state=open]:bg-ghost-hover-bg\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\n/** The dropdown surface for a nested submenu's items. */\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg p-2 text-primary-txt shadow-sm data-[side=bottom]:slide-in-from-top-8 data-[side=left]:slide-in-from-right-8 data-[side=right]:slide-in-from-left-8 data-[side=top]:slide-in-from-bottom-8 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n // Vertical hierarchy: if any item reserves the 32px indicator column\n // (checkbox/radio items), plain items, labels and sub-triggers share it.\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-item]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-label]:not([data-inset])]:pl-8\",\n \"[&:has([role=menuitemcheckbox],[role=menuitemradio])_[data-slot=menubar-sub-trigger]:not([data-inset])]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":"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"}
@@ -3,14 +3,14 @@ const require_cn = require("../../cn.cjs");
3
3
  let lucide_react = require("lucide-react");
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
5
5
  //#region src/primitives/NativeSelect/NativeSelect.tsx
6
- const nativeSelectVariants = (0, require("class-variance-authority").cva)(require_cn.cn("border-input bg-input-background flex w-full min-w-0 appearance-none rounded-md border text-foreground transition-[color,box-shadow] outline-none", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-ring-error aria-invalid:border-destructive", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50"), {
6
+ const nativeSelectVariants = (0, require("class-variance-authority").cva)(require_cn.cn("flex w-full min-w-0 appearance-none rounded-12 border border-primary-border bg-input-bg text-primary-txt transition-[color,box-shadow] outline-none", "focus-visible:border-primary-invert-border focus-visible:ring-focus focus-visible:ring-3", "aria-invalid:ring-focus-error aria-invalid:border-danger-border", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50"), {
7
7
  variants: {
8
8
  /** Control height + horizontal padding; matches the Input size scale. */
9
9
  size: {
10
- xs: "h-6 pl-2 pr-7 text-xs",
11
- sm: "h-8 pl-2.5 pr-8 text-sm",
12
- default: "h-9 pl-3 pr-8 text-base md:text-sm",
13
- lg: "h-10 pl-4 pr-9 text-base"
10
+ xs: "h-6 pl-1.5 pr-7 text-xs leading-4",
11
+ sm: "h-8 pl-2 pr-8 text-sm leading-5",
12
+ default: "h-9 pl-3 pr-8 text-sm leading-5",
13
+ lg: "h-10 pl-4 pr-9 text-sm leading-5"
14
14
  } },
15
15
  defaultVariants: { size: "default" }
16
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["cn","ChevronDownIcon"],"sources":["../../../src/primitives/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// A styled native <select> — lighter than the Radix Select, better for long\n// option lists and native mobile behavior. Visuals mirror Input (border,\n// focus ring, aria-invalid, disabled) and share its size scale.\nconst nativeSelectVariants = cva(\n cn(\n \"border-input bg-input-background flex w-full min-w-0 appearance-none rounded-md border text-foreground transition-[color,box-shadow] outline-none\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-ring-error aria-invalid:border-destructive\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n ),\n {\n variants: {\n /** Control height + horizontal padding; matches the Input size scale. */\n size: {\n xs: \"h-6 pl-2 pr-7 text-xs\",\n sm: \"h-8 pl-2.5 pr-8 text-sm\",\n default: \"h-9 pl-3 pr-8 text-base md:text-sm\",\n lg: \"h-10 pl-4 pr-9 text-base\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\n/**\n * A styled native `<select>` with a chevron affordance. Mirrors Input visuals\n * and shares its size scale; pass `<option>`/`<optgroup>` as children.\n */\nfunction NativeSelect({\n className,\n size = \"default\",\n children,\n ...props\n}: Omit<React.ComponentProps<\"select\">, \"size\"> & VariantProps<typeof nativeSelectVariants>) {\n return (\n // The wrapper carries layout/width; the chevron is anchored to its right edge.\n <div className={cn(\"relative w-full\", className)} data-slot=\"native-select-wrapper\">\n <select data-slot=\"native-select\" className={cn(nativeSelectVariants({ size }))} {...props}>\n {children}\n </select>\n <ChevronDownIcon\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50\"\n />\n </div>\n );\n}\n\nexport { NativeSelect, nativeSelectVariants };\n"],"mappings":";;;;;AASA,MAAM,wBAAA,qCAAA,EAAA,KACJA,WAAAA,GACE,qJACA,iFACA,gEACA,8EACF,GACA;CACE,UAAU;;AAER,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,SAAS;EACT,IAAI;CACN,EACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;;;;;AAMA,SAAS,aAAa,EACpB,WACA,OAAO,WACP,UACA,GAAG,SACwF;CAC3F,OAEE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAWA,WAAAA,GAAG,mBAAmB,SAAS;EAAG,aAAU;YAA5D,CACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;GAAQ,aAAU;GAAgB,WAAWA,WAAAA,GAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC;GAAG,GAAI;GAClF;EACK,CAAA,GACR,iBAAA,GAAA,kBAAA,KAACC,aAAAA,iBAAD;GACE,eAAY;GACZ,WAAU;EACX,CAAA,CACE;;AAET"}
1
+ {"version":3,"file":"index.cjs","names":["cn","ChevronDownIcon"],"sources":["../../../src/primitives/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// A styled native <select> — lighter than the Radix Select, better for long\n// option lists and native mobile behavior. Visuals mirror Input (border,\n// focus ring, aria-invalid, disabled) and share its size scale.\nconst nativeSelectVariants = cva(\n cn(\n \"flex w-full min-w-0 appearance-none rounded-12 border border-primary-border bg-input-bg text-primary-txt transition-[color,box-shadow] outline-none\",\n \"focus-visible:border-primary-invert-border focus-visible:ring-focus focus-visible:ring-3\",\n \"aria-invalid:ring-focus-error aria-invalid:border-danger-border\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n ),\n {\n variants: {\n /** Control height + horizontal padding; matches the Input size scale. */\n size: {\n xs: \"h-6 pl-1.5 pr-7 text-xs leading-4\",\n sm: \"h-8 pl-2 pr-8 text-sm leading-5\",\n default: \"h-9 pl-3 pr-8 text-sm leading-5\",\n lg: \"h-10 pl-4 pr-9 text-sm leading-5\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\n/**\n * A styled native `<select>` with a chevron affordance. Mirrors Input visuals\n * and shares its size scale; pass `<option>`/`<optgroup>` as children.\n */\nfunction NativeSelect({\n className,\n size = \"default\",\n children,\n ...props\n}: Omit<React.ComponentProps<\"select\">, \"size\"> & VariantProps<typeof nativeSelectVariants>) {\n return (\n // The wrapper carries layout/width; the chevron is anchored to its right edge.\n <div className={cn(\"relative w-full\", className)} data-slot=\"native-select-wrapper\">\n <select data-slot=\"native-select\" className={cn(nativeSelectVariants({ size }))} {...props}>\n {children}\n </select>\n <ChevronDownIcon\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50\"\n />\n </div>\n );\n}\n\nexport { NativeSelect, nativeSelectVariants };\n"],"mappings":";;;;;AASA,MAAM,wBAAA,qCAAA,EAAA,KACJA,WAAAA,GACE,uJACA,4FACA,mEACA,8EACF,GACA;CACE,UAAU;;AAER,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,SAAS;EACT,IAAI;CACN,EACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;;;;;AAMA,SAAS,aAAa,EACpB,WACA,OAAO,WACP,UACA,GAAG,SACwF;CAC3F,OAEE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,WAAWA,WAAAA,GAAG,mBAAmB,SAAS;EAAG,aAAU;YAA5D,CACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;GAAQ,aAAU;GAAgB,WAAWA,WAAAA,GAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC;GAAG,GAAI;GAClF;EACK,CAAA,GACR,iBAAA,GAAA,kBAAA,KAACC,aAAAA,iBAAD;GACE,eAAY;GACZ,WAAU;EACX,CAAA,CACE;;AAET"}
@@ -3,14 +3,14 @@ import { ChevronDownIcon } from "lucide-react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { cva } from "class-variance-authority";
5
5
  //#region src/primitives/NativeSelect/NativeSelect.tsx
6
- const nativeSelectVariants = cva(cn("border-input bg-input-background flex w-full min-w-0 appearance-none rounded-md border text-foreground transition-[color,box-shadow] outline-none", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-ring-error aria-invalid:border-destructive", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50"), {
6
+ const nativeSelectVariants = cva(cn("flex w-full min-w-0 appearance-none rounded-12 border border-primary-border bg-input-bg text-primary-txt transition-[color,box-shadow] outline-none", "focus-visible:border-primary-invert-border focus-visible:ring-focus focus-visible:ring-3", "aria-invalid:ring-focus-error aria-invalid:border-danger-border", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50"), {
7
7
  variants: {
8
8
  /** Control height + horizontal padding; matches the Input size scale. */
9
9
  size: {
10
- xs: "h-6 pl-2 pr-7 text-xs",
11
- sm: "h-8 pl-2.5 pr-8 text-sm",
12
- default: "h-9 pl-3 pr-8 text-base md:text-sm",
13
- lg: "h-10 pl-4 pr-9 text-base"
10
+ xs: "h-6 pl-1.5 pr-7 text-xs leading-4",
11
+ sm: "h-8 pl-2 pr-8 text-sm leading-5",
12
+ default: "h-9 pl-3 pr-8 text-sm leading-5",
13
+ lg: "h-10 pl-4 pr-9 text-sm leading-5"
14
14
  } },
15
15
  defaultVariants: { size: "default" }
16
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// A styled native <select> — lighter than the Radix Select, better for long\n// option lists and native mobile behavior. Visuals mirror Input (border,\n// focus ring, aria-invalid, disabled) and share its size scale.\nconst nativeSelectVariants = cva(\n cn(\n \"border-input bg-input-background flex w-full min-w-0 appearance-none rounded-md border text-foreground transition-[color,box-shadow] outline-none\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-ring-error aria-invalid:border-destructive\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n ),\n {\n variants: {\n /** Control height + horizontal padding; matches the Input size scale. */\n size: {\n xs: \"h-6 pl-2 pr-7 text-xs\",\n sm: \"h-8 pl-2.5 pr-8 text-sm\",\n default: \"h-9 pl-3 pr-8 text-base md:text-sm\",\n lg: \"h-10 pl-4 pr-9 text-base\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\n/**\n * A styled native `<select>` with a chevron affordance. Mirrors Input visuals\n * and shares its size scale; pass `<option>`/`<optgroup>` as children.\n */\nfunction NativeSelect({\n className,\n size = \"default\",\n children,\n ...props\n}: Omit<React.ComponentProps<\"select\">, \"size\"> & VariantProps<typeof nativeSelectVariants>) {\n return (\n // The wrapper carries layout/width; the chevron is anchored to its right edge.\n <div className={cn(\"relative w-full\", className)} data-slot=\"native-select-wrapper\">\n <select data-slot=\"native-select\" className={cn(nativeSelectVariants({ size }))} {...props}>\n {children}\n </select>\n <ChevronDownIcon\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50\"\n />\n </div>\n );\n}\n\nexport { NativeSelect, nativeSelectVariants };\n"],"mappings":";;;;;AASA,MAAM,uBAAuB,IAC3B,GACE,qJACA,iFACA,gEACA,8EACF,GACA;CACE,UAAU;;AAER,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,SAAS;EACT,IAAI;CACN,EACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;;;;;AAMA,SAAS,aAAa,EACpB,WACA,OAAO,WACP,UACA,GAAG,SACwF;CAC3F,OAEE,qBAAC,OAAD;EAAK,WAAW,GAAG,mBAAmB,SAAS;EAAG,aAAU;YAA5D,CACE,oBAAC,UAAD;GAAQ,aAAU;GAAgB,WAAW,GAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC;GAAG,GAAI;GAClF;EACK,CAAA,GACR,oBAAC,iBAAD;GACE,eAAY;GACZ,WAAU;EACX,CAAA,CACE;;AAET"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import { type VariantProps, cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n// A styled native <select> — lighter than the Radix Select, better for long\n// option lists and native mobile behavior. Visuals mirror Input (border,\n// focus ring, aria-invalid, disabled) and share its size scale.\nconst nativeSelectVariants = cva(\n cn(\n \"flex w-full min-w-0 appearance-none rounded-12 border border-primary-border bg-input-bg text-primary-txt transition-[color,box-shadow] outline-none\",\n \"focus-visible:border-primary-invert-border focus-visible:ring-focus focus-visible:ring-3\",\n \"aria-invalid:ring-focus-error aria-invalid:border-danger-border\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n ),\n {\n variants: {\n /** Control height + horizontal padding; matches the Input size scale. */\n size: {\n xs: \"h-6 pl-1.5 pr-7 text-xs leading-4\",\n sm: \"h-8 pl-2 pr-8 text-sm leading-5\",\n default: \"h-9 pl-3 pr-8 text-sm leading-5\",\n lg: \"h-10 pl-4 pr-9 text-sm leading-5\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\n/**\n * A styled native `<select>` with a chevron affordance. Mirrors Input visuals\n * and shares its size scale; pass `<option>`/`<optgroup>` as children.\n */\nfunction NativeSelect({\n className,\n size = \"default\",\n children,\n ...props\n}: Omit<React.ComponentProps<\"select\">, \"size\"> & VariantProps<typeof nativeSelectVariants>) {\n return (\n // The wrapper carries layout/width; the chevron is anchored to its right edge.\n <div className={cn(\"relative w-full\", className)} data-slot=\"native-select-wrapper\">\n <select data-slot=\"native-select\" className={cn(nativeSelectVariants({ size }))} {...props}>\n {children}\n </select>\n <ChevronDownIcon\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50\"\n />\n </div>\n );\n}\n\nexport { NativeSelect, nativeSelectVariants };\n"],"mappings":";;;;;AASA,MAAM,uBAAuB,IAC3B,GACE,uJACA,4FACA,mEACA,8EACF,GACA;CACE,UAAU;;AAER,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,SAAS;EACT,IAAI;CACN,EACF;CACA,iBAAiB,EACf,MAAM,UACR;AACF,CACF;;;;;AAMA,SAAS,aAAa,EACpB,WACA,OAAO,WACP,UACA,GAAG,SACwF;CAC3F,OAEE,qBAAC,OAAD;EAAK,WAAW,GAAG,mBAAmB,SAAS;EAAG,aAAU;YAA5D,CACE,oBAAC,UAAD;GAAQ,aAAU;GAAgB,WAAW,GAAG,qBAAqB,EAAE,KAAK,CAAC,CAAC;GAAG,GAAI;GAClF;EACK,CAAA,GACR,oBAAC,iBAAD;GACE,eAAY;GACZ,WAAU;EACX,CAAA,CACE;;AAET"}
@@ -1,195 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_chunk = require("../../chunk.cjs");
3
- const require_cn = require("../../cn.cjs");
4
- const require_primitives_Popover_index = require("../Popover/index.cjs");
5
- const require_primitives_Tooltip_index = require("../Tooltip/index.cjs");
6
- let react = require("react");
7
- react = require_chunk.__toESM(react);
8
- let lucide_react = require("lucide-react");
9
- let radix_ui = require("radix-ui");
10
- let react_jsx_runtime = require("react/jsx-runtime");
11
- //#region src/primitives/NavRail/NavRail.tsx
12
- const NavRailContext = react.createContext("icon");
13
- const RAIL_BY_MODE = {
14
- icon: "w-14 items-center",
15
- text: "w-56 items-stretch",
16
- expanded: "w-56 items-stretch",
17
- "expand-on-hover": "w-14 items-stretch transition-[width] duration-200 ease-out hover:w-56"
18
- };
19
- const ITEM_BASE = "relative flex h-10 cursor-pointer items-center text-foreground outline-none transition-colors hover:bg-foreground/10 focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-[var(--white)] data-[active=true]:font-medium data-[active=true]:text-[var(--brand-colors-brand-500)] data-[active=true]:hover:bg-[var(--white)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-5";
20
- const ITEM_BY_MODE = {
21
- icon: "w-10 justify-center rounded-full",
22
- text: "w-full justify-start gap-3 rounded-lg px-2.5",
23
- expanded: "w-full justify-start gap-3 rounded-lg px-2.5",
24
- "expand-on-hover": "w-full justify-start gap-3 rounded-lg px-2.5"
25
- };
26
- const ICON_BY_MODE = {
27
- icon: "flex shrink-0 items-center justify-center",
28
- text: "hidden",
29
- expanded: "flex shrink-0 items-center justify-center",
30
- "expand-on-hover": "flex shrink-0 items-center justify-center"
31
- };
32
- const LABEL_ROW = "min-w-0 flex-1 truncate text-left text-sm font-medium";
33
- const LABEL_BY_MODE = {
34
- icon: "sr-only",
35
- text: LABEL_ROW,
36
- expanded: LABEL_ROW,
37
- "expand-on-hover": require_cn.cn(LABEL_ROW, "opacity-0 transition-opacity duration-200 group-hover/nav-rail:opacity-100")
38
- };
39
- const CHEVRON_BY_MODE = {
40
- icon: "absolute top-1/2 right-[-4px] size-3 -translate-y-1/2 text-muted-foreground",
41
- text: "ml-auto size-4 shrink-0 text-muted-foreground",
42
- expanded: "ml-auto size-4 shrink-0 text-muted-foreground",
43
- "expand-on-hover": "ml-auto size-4 shrink-0 text-muted-foreground opacity-0 transition-opacity duration-200 group-hover/nav-rail:opacity-100"
44
- };
45
- /** The vertical navigation rail container; sets the display `mode` for all items via context. */
46
- function NavRail({ mode = "icon", className, ...props }) {
47
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavRailContext.Provider, {
48
- value: mode,
49
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("nav", {
50
- "data-slot": "nav-rail",
51
- "data-mode": mode,
52
- className: require_cn.cn("group/nav-rail flex flex-col gap-1 overflow-hidden rounded-2xl bg-[var(--glass-strong)] p-2 backdrop-blur-glass", RAIL_BY_MODE[mode], className),
53
- ...props
54
- })
55
- });
56
- }
57
- /** A thin divider between groups of rail items. */
58
- function NavRailSeparator({ className, ...props }) {
59
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
60
- "data-slot": "nav-rail-separator",
61
- role: "separator",
62
- className: require_cn.cn("my-1 h-px w-6 shrink-0 self-center bg-border", className),
63
- ...props
64
- });
65
- }
66
- /** A single navigation entry; an icon (as children) plus a `label`, with a tooltip in icon mode. */
67
- function NavRailItem({ label, active, asChild = false, tooltipSide = "right", className, children, ...props }) {
68
- const mode = react.useContext(NavRailContext);
69
- const shared = {
70
- "data-slot": "nav-rail-item",
71
- "data-active": active || void 0,
72
- "aria-label": label,
73
- "aria-current": active ? "page" : void 0,
74
- className: require_cn.cn(ITEM_BASE, ITEM_BY_MODE[mode], className),
75
- ...props
76
- };
77
- const labelEl = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
78
- "data-slot": "nav-rail-item-label",
79
- className: LABEL_BY_MODE[mode],
80
- children: label
81
- });
82
- const el = asChild ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(radix_ui.Slot.Root, {
83
- ...shared,
84
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Slot.Slottable, { children }), labelEl]
85
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
86
- type: "button",
87
- ...shared,
88
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
89
- "data-slot": "nav-rail-item-icon",
90
- className: ICON_BY_MODE[mode],
91
- children
92
- }), labelEl]
93
- });
94
- if (mode !== "icon") return el;
95
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_primitives_Tooltip_index.Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives_Tooltip_index.TooltipTrigger, {
96
- asChild: true,
97
- children: el
98
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives_Tooltip_index.TooltipContent, {
99
- side: tooltipSide,
100
- children: label
101
- })] });
102
- }
103
- /** The footer slot of the rail showing the signed-in user (avatar + name + email). */
104
- function NavRailUser({ avatar, name, email, className, ...props }) {
105
- const mode = react.useContext(NavRailContext);
106
- const detailsHidden = mode === "icon";
107
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
108
- "data-slot": "nav-rail-user",
109
- className: require_cn.cn("mt-auto flex h-12 w-full items-center rounded-lg", className),
110
- ...props,
111
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
112
- "data-slot": "nav-rail-user-avatar",
113
- className: "flex w-10 shrink-0 items-center justify-center",
114
- children: avatar
115
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
116
- "data-slot": "nav-rail-user-details",
117
- className: require_cn.cn("flex min-w-0 flex-1 flex-col justify-center text-left leading-tight", detailsHidden && "sr-only", mode === "expand-on-hover" && "opacity-0 transition-opacity duration-200 group-hover/nav-rail:opacity-100"),
118
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
119
- className: "truncate text-sm font-medium",
120
- children: name
121
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
122
- className: "truncate text-xs text-muted-foreground",
123
- children: email
124
- })]
125
- })]
126
- });
127
- }
128
- /** Root for a rail item that opens a flyout submenu (wraps Popover). */
129
- function NavRailMenu(props) {
130
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives_Popover_index.Popover, { ...props });
131
- }
132
- /** The rail item that opens its flyout submenu; renders a chevron affordance. */
133
- function NavRailMenuTrigger({ label, active, className, children, ...props }) {
134
- const mode = react.useContext(NavRailContext);
135
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives_Popover_index.PopoverTrigger, {
136
- asChild: true,
137
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
138
- type: "button",
139
- "data-slot": "nav-rail-menu-trigger",
140
- "data-active": active || void 0,
141
- "aria-label": label,
142
- className: require_cn.cn(ITEM_BASE, ITEM_BY_MODE[mode], className),
143
- ...props,
144
- children: [
145
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
146
- "data-slot": "nav-rail-item-icon",
147
- className: ICON_BY_MODE[mode],
148
- children
149
- }),
150
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
151
- "data-slot": "nav-rail-item-label",
152
- className: LABEL_BY_MODE[mode],
153
- children: label
154
- }),
155
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRightIcon, {
156
- "aria-hidden": true,
157
- className: CHEVRON_BY_MODE[mode]
158
- })
159
- ]
160
- })
161
- });
162
- }
163
- /** The glass flyout panel that holds the submenu items (portalled Popover content). */
164
- function NavRailMenuContent({ className, side = "right", align = "start", sideOffset = 8, ...props }) {
165
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives_Popover_index.PopoverContent, {
166
- "data-slot": "nav-rail-menu-content",
167
- side,
168
- align,
169
- sideOffset,
170
- className: require_cn.cn("flex w-[180px] flex-col gap-0.5 rounded-2xl border border-border bg-[var(--glass-subtle)] p-1.5 text-foreground shadow-sm backdrop-blur-glass", className),
171
- ...props
172
- });
173
- }
174
- /** A single entry inside a NavRail flyout submenu. */
175
- function NavRailMenuItem({ className, active, asChild = false, ...props }) {
176
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(asChild ? radix_ui.Slot.Root : "button", {
177
- "data-slot": "nav-rail-menu-item",
178
- "data-active": active || void 0,
179
- "aria-current": active ? "page" : void 0,
180
- className: require_cn.cn("flex w-full cursor-pointer items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm text-foreground outline-none transition-colors", "hover:bg-foreground/10 focus-visible:bg-foreground/10", "data-[active=true]:bg-[var(--white)] data-[active=true]:font-medium data-[active=true]:text-[var(--brand-colors-brand-500)] data-[active=true]:hover:bg-[var(--white)]", "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
181
- ...asChild ? {} : { type: "button" },
182
- ...props
183
- });
184
- }
185
- //#endregion
186
- exports.NavRail = NavRail;
187
- exports.NavRailItem = NavRailItem;
188
- exports.NavRailMenu = NavRailMenu;
189
- exports.NavRailMenuContent = NavRailMenuContent;
190
- exports.NavRailMenuItem = NavRailMenuItem;
191
- exports.NavRailMenuTrigger = NavRailMenuTrigger;
192
- exports.NavRailSeparator = NavRailSeparator;
193
- exports.NavRailUser = NavRailUser;
194
-
195
- //# sourceMappingURL=index.cjs.map
2
+ const require_patterns_NavRail_index = require("../../patterns/NavRail/index.cjs");
3
+ exports.NavRail = require_patterns_NavRail_index.NavRail;
4
+ exports.NavRailItem = require_patterns_NavRail_index.NavRailItem;
5
+ exports.NavRailMenu = require_patterns_NavRail_index.NavRailMenu;
6
+ exports.NavRailMenuContent = require_patterns_NavRail_index.NavRailMenuContent;
7
+ exports.NavRailMenuItem = require_patterns_NavRail_index.NavRailMenuItem;
8
+ exports.NavRailMenuTrigger = require_patterns_NavRail_index.NavRailMenuTrigger;
9
+ exports.NavRailSeparator = require_patterns_NavRail_index.NavRailSeparator;
10
+ exports.NavRailUser = require_patterns_NavRail_index.NavRailUser;
@@ -1,2 +1,3 @@
1
1
  import { a as NavRailMenuContent, c as NavRailMenuTrigger, d as NavRailSeparator, f as NavRailUser, i as NavRailMenu, l as NavRailMenuTriggerProps, n as NavRailItem, o as NavRailMenuItem, p as NavRailUserProps, r as NavRailItemProps, s as NavRailMenuItemProps, t as NavRail, u as NavRailMode } from "../../index43.cjs";
2
+ import "../../index44.cjs";
2
3
  export { NavRail, NavRailItem, NavRailItemProps, NavRailMenu, NavRailMenuContent, NavRailMenuItem, NavRailMenuItemProps, NavRailMenuTrigger, NavRailMenuTriggerProps, NavRailMode, NavRailSeparator, NavRailUser, NavRailUserProps };
@@ -1,2 +1,3 @@
1
1
  import { a as NavRailMenuContent, c as NavRailMenuTrigger, d as NavRailSeparator, f as NavRailUser, i as NavRailMenu, l as NavRailMenuTriggerProps, n as NavRailItem, o as NavRailMenuItem, p as NavRailUserProps, r as NavRailItemProps, s as NavRailMenuItemProps, t as NavRail, u as NavRailMode } from "../../index43.js";
2
+ import "../../index44.js";
2
3
  export { NavRail, NavRailItem, NavRailItemProps, NavRailMenu, NavRailMenuContent, NavRailMenuItem, NavRailMenuItemProps, NavRailMenuTrigger, NavRailMenuTriggerProps, NavRailMode, NavRailSeparator, NavRailUser, NavRailUserProps };