@psnext/design-system 2.3.0 → 2.4.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 (488) hide show
  1. package/DESIGN.md +466 -4
  2. package/README.md +3 -3
  3. package/SKILL.md +83 -5
  4. package/bin/install-agent-skill.mjs +39 -7
  5. package/dist/Header.cjs +151 -20
  6. package/dist/Header.cjs.map +1 -1
  7. package/dist/Header.js +151 -20
  8. package/dist/Header.js.map +1 -1
  9. package/dist/Icon.cjs +40 -8
  10. package/dist/Icon.cjs.map +1 -1
  11. package/dist/Icon.js +40 -8
  12. package/dist/Icon.js.map +1 -1
  13. package/dist/MultiColumn.cjs +354 -0
  14. package/dist/MultiColumn.cjs.map +1 -0
  15. package/dist/MultiColumn.js +335 -0
  16. package/dist/MultiColumn.js.map +1 -0
  17. package/dist/Sidebar.cjs +4 -3
  18. package/dist/Sidebar.cjs.map +1 -1
  19. package/dist/Sidebar.js +4 -3
  20. package/dist/Sidebar.js.map +1 -1
  21. package/dist/index.cjs +5 -1
  22. package/dist/index.d.cts +5 -5
  23. package/dist/index.d.cts.map +1 -1
  24. package/dist/index.d.ts +5 -5
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -2
  27. package/dist/index10.d.cts +6 -6
  28. package/dist/index10.d.ts +6 -6
  29. package/dist/index11.d.cts +3 -3
  30. package/dist/index11.d.cts.map +1 -1
  31. package/dist/index11.d.ts +3 -3
  32. package/dist/index11.d.ts.map +1 -1
  33. package/dist/index12.d.cts +12 -12
  34. package/dist/index12.d.cts.map +1 -1
  35. package/dist/index12.d.ts +13 -13
  36. package/dist/index13.d.cts +6 -6
  37. package/dist/index13.d.cts.map +1 -1
  38. package/dist/index13.d.ts +6 -6
  39. package/dist/index13.d.ts.map +1 -1
  40. package/dist/index14.d.cts +5 -5
  41. package/dist/index14.d.ts +5 -5
  42. package/dist/index15.d.cts +3 -3
  43. package/dist/index15.d.cts.map +1 -1
  44. package/dist/index15.d.ts +3 -3
  45. package/dist/index15.d.ts.map +1 -1
  46. package/dist/index16.d.cts +2 -2
  47. package/dist/index16.d.cts.map +1 -1
  48. package/dist/index16.d.ts +2 -2
  49. package/dist/index16.d.ts.map +1 -1
  50. package/dist/index17.d.cts +4 -4
  51. package/dist/index17.d.cts.map +1 -1
  52. package/dist/index17.d.ts +4 -4
  53. package/dist/index18.d.cts +11 -11
  54. package/dist/index18.d.cts.map +1 -1
  55. package/dist/index18.d.ts +11 -11
  56. package/dist/index18.d.ts.map +1 -1
  57. package/dist/index19.d.cts +10 -10
  58. package/dist/index19.d.cts.map +1 -1
  59. package/dist/index19.d.ts +10 -10
  60. package/dist/index19.d.ts.map +1 -1
  61. package/dist/index2.d.cts +8 -8
  62. package/dist/index2.d.cts.map +1 -1
  63. package/dist/index2.d.ts +9 -9
  64. package/dist/index2.d.ts.map +1 -1
  65. package/dist/index20.d.cts +16 -16
  66. package/dist/index20.d.cts.map +1 -1
  67. package/dist/index20.d.ts +16 -16
  68. package/dist/index20.d.ts.map +1 -1
  69. package/dist/index21.d.cts +4 -4
  70. package/dist/index21.d.cts.map +1 -1
  71. package/dist/index21.d.ts +4 -4
  72. package/dist/index21.d.ts.map +1 -1
  73. package/dist/index22.d.cts +11 -11
  74. package/dist/index22.d.ts +11 -11
  75. package/dist/index23.d.cts +16 -16
  76. package/dist/index23.d.cts.map +1 -1
  77. package/dist/index23.d.ts +16 -16
  78. package/dist/index23.d.ts.map +1 -1
  79. package/dist/index24.d.cts +10 -10
  80. package/dist/index24.d.cts.map +1 -1
  81. package/dist/index24.d.ts +11 -11
  82. package/dist/index24.d.ts.map +1 -1
  83. package/dist/index25.d.cts +2 -2
  84. package/dist/index25.d.ts +2 -2
  85. package/dist/index25.d.ts.map +1 -1
  86. package/dist/index26.d.cts +13 -13
  87. package/dist/index26.d.cts.map +1 -1
  88. package/dist/index26.d.ts +14 -14
  89. package/dist/index26.d.ts.map +1 -1
  90. package/dist/index27.d.cts +7 -7
  91. package/dist/index27.d.cts.map +1 -1
  92. package/dist/index27.d.ts +7 -7
  93. package/dist/index27.d.ts.map +1 -1
  94. package/dist/index28.d.cts +6 -6
  95. package/dist/index28.d.cts.map +1 -1
  96. package/dist/index28.d.ts +5 -5
  97. package/dist/index28.d.ts.map +1 -1
  98. package/dist/index29.d.cts +4 -4
  99. package/dist/index29.d.ts +4 -4
  100. package/dist/index29.d.ts.map +1 -1
  101. package/dist/index3.d.cts +13 -13
  102. package/dist/index3.d.cts.map +1 -1
  103. package/dist/index3.d.ts +13 -13
  104. package/dist/index30.d.cts +41 -12
  105. package/dist/index30.d.cts.map +1 -1
  106. package/dist/index30.d.ts +42 -13
  107. package/dist/index30.d.ts.map +1 -1
  108. package/dist/index31.d.cts +5 -5
  109. package/dist/index31.d.cts.map +1 -1
  110. package/dist/index31.d.ts +6 -6
  111. package/dist/index31.d.ts.map +1 -1
  112. package/dist/index32.d.cts +5 -5
  113. package/dist/index32.d.cts.map +1 -1
  114. package/dist/index32.d.ts +6 -6
  115. package/dist/index33.d.cts +10 -10
  116. package/dist/index33.d.cts.map +1 -1
  117. package/dist/index33.d.ts +11 -11
  118. package/dist/index33.d.ts.map +1 -1
  119. package/dist/index34.d.cts +5 -5
  120. package/dist/index34.d.cts.map +1 -1
  121. package/dist/index34.d.ts +5 -5
  122. package/dist/index34.d.ts.map +1 -1
  123. package/dist/index35.d.cts +16 -16
  124. package/dist/index35.d.cts.map +1 -1
  125. package/dist/index35.d.ts +17 -17
  126. package/dist/index35.d.ts.map +1 -1
  127. package/dist/index36.d.cts +3 -3
  128. package/dist/index36.d.cts.map +1 -1
  129. package/dist/index36.d.ts +3 -3
  130. package/dist/index36.d.ts.map +1 -1
  131. package/dist/index37.d.cts +5 -5
  132. package/dist/index37.d.ts +3 -3
  133. package/dist/index38.d.cts +2 -2
  134. package/dist/index38.d.cts.map +1 -1
  135. package/dist/index38.d.ts +2 -2
  136. package/dist/index39.d.cts +17 -17
  137. package/dist/index39.d.cts.map +1 -1
  138. package/dist/index39.d.ts +17 -17
  139. package/dist/index39.d.ts.map +1 -1
  140. package/dist/index4.d.cts +2 -2
  141. package/dist/index4.d.ts +2 -2
  142. package/dist/index4.d.ts.map +1 -1
  143. package/dist/index40.d.cts +5 -5
  144. package/dist/index40.d.cts.map +1 -1
  145. package/dist/index40.d.ts +6 -6
  146. package/dist/index40.d.ts.map +1 -1
  147. package/dist/index41.d.cts +11 -11
  148. package/dist/index41.d.cts.map +1 -1
  149. package/dist/index41.d.ts +11 -11
  150. package/dist/index41.d.ts.map +1 -1
  151. package/dist/index42.d.cts +8 -8
  152. package/dist/index42.d.cts.map +1 -1
  153. package/dist/index42.d.ts +8 -8
  154. package/dist/index43.d.cts +9 -9
  155. package/dist/index43.d.cts.map +1 -1
  156. package/dist/index43.d.ts +9 -9
  157. package/dist/index43.d.ts.map +1 -1
  158. package/dist/index45.d.cts +8 -8
  159. package/dist/index45.d.cts.map +1 -1
  160. package/dist/index45.d.ts +8 -8
  161. package/dist/index45.d.ts.map +1 -1
  162. package/dist/index46.d.cts +2 -2
  163. package/dist/index46.d.cts.map +1 -1
  164. package/dist/index46.d.ts +2 -2
  165. package/dist/index46.d.ts.map +1 -1
  166. package/dist/index47.d.cts +4 -4
  167. package/dist/index47.d.cts.map +1 -1
  168. package/dist/index47.d.ts +4 -4
  169. package/dist/index47.d.ts.map +1 -1
  170. package/dist/index48.d.cts +4 -4
  171. package/dist/index48.d.cts.map +1 -1
  172. package/dist/index48.d.ts +4 -4
  173. package/dist/index48.d.ts.map +1 -1
  174. package/dist/index49.d.cts +3 -3
  175. package/dist/index49.d.ts +3 -3
  176. package/dist/index5.d.cts +7 -7
  177. package/dist/index5.d.ts +7 -7
  178. package/dist/index50.d.cts +11 -11
  179. package/dist/index50.d.cts.map +1 -1
  180. package/dist/index50.d.ts +11 -11
  181. package/dist/index50.d.ts.map +1 -1
  182. package/dist/index51.d.cts +9 -9
  183. package/dist/index51.d.cts.map +1 -1
  184. package/dist/index51.d.ts +9 -9
  185. package/dist/index51.d.ts.map +1 -1
  186. package/dist/index52.d.cts +5 -5
  187. package/dist/index52.d.ts +5 -5
  188. package/dist/index53.d.cts +27 -27
  189. package/dist/index53.d.cts.map +1 -1
  190. package/dist/index53.d.ts +28 -28
  191. package/dist/index53.d.ts.map +1 -1
  192. package/dist/index54.d.cts +5 -5
  193. package/dist/index54.d.ts +5 -5
  194. package/dist/index54.d.ts.map +1 -1
  195. package/dist/index55.d.cts +2 -2
  196. package/dist/index55.d.cts.map +1 -1
  197. package/dist/index55.d.ts +2 -2
  198. package/dist/index55.d.ts.map +1 -1
  199. package/dist/index56.d.cts +2 -2
  200. package/dist/index56.d.cts.map +1 -1
  201. package/dist/index56.d.ts +2 -2
  202. package/dist/index56.d.ts.map +1 -1
  203. package/dist/index57.d.cts +2 -2
  204. package/dist/index57.d.cts.map +1 -1
  205. package/dist/index57.d.ts +2 -2
  206. package/dist/index57.d.ts.map +1 -1
  207. package/dist/index58.d.cts +4 -4
  208. package/dist/index58.d.cts.map +1 -1
  209. package/dist/index58.d.ts +4 -4
  210. package/dist/index58.d.ts.map +1 -1
  211. package/dist/index59.d.cts +9 -9
  212. package/dist/index59.d.ts +9 -9
  213. package/dist/index59.d.ts.map +1 -1
  214. package/dist/index6.d.cts +5 -5
  215. package/dist/index6.d.cts.map +1 -1
  216. package/dist/index6.d.ts +6 -6
  217. package/dist/index60.d.cts +9 -9
  218. package/dist/index60.d.ts +9 -9
  219. package/dist/index60.d.ts.map +1 -1
  220. package/dist/index61.d.cts +8 -8
  221. package/dist/index61.d.cts.map +1 -1
  222. package/dist/index61.d.ts +7 -7
  223. package/dist/index61.d.ts.map +1 -1
  224. package/dist/index62.d.cts +4 -4
  225. package/dist/index62.d.cts.map +1 -1
  226. package/dist/index62.d.ts +5 -5
  227. package/dist/index63.d.cts +2 -2
  228. package/dist/index63.d.ts +2 -2
  229. package/dist/index64.d.cts +4 -4
  230. package/dist/index64.d.ts +7 -7
  231. package/dist/index64.d.ts.map +1 -1
  232. package/dist/index65.d.cts +3 -3
  233. package/dist/index65.d.ts +4 -4
  234. package/dist/index66.d.cts +4 -4
  235. package/dist/index66.d.ts +5 -5
  236. package/dist/index67.d.cts +83 -11
  237. package/dist/index67.d.cts.map +1 -1
  238. package/dist/index67.d.ts +83 -11
  239. package/dist/index67.d.ts.map +1 -1
  240. package/dist/index68.d.cts +12 -30
  241. package/dist/index68.d.cts.map +1 -1
  242. package/dist/index68.d.ts +12 -30
  243. package/dist/index68.d.ts.map +1 -1
  244. package/dist/index69.d.cts +28 -27
  245. package/dist/index69.d.cts.map +1 -1
  246. package/dist/index69.d.ts +29 -28
  247. package/dist/index69.d.ts.map +1 -1
  248. package/dist/index7.d.cts +8 -8
  249. package/dist/index7.d.cts.map +1 -1
  250. package/dist/index7.d.ts +8 -8
  251. package/dist/index7.d.ts.map +1 -1
  252. package/dist/index70.d.cts +33 -78
  253. package/dist/index70.d.cts.map +1 -1
  254. package/dist/index70.d.ts +33 -78
  255. package/dist/index70.d.ts.map +1 -1
  256. package/dist/index71.d.cts +77 -260
  257. package/dist/index71.d.cts.map +1 -1
  258. package/dist/index71.d.ts +77 -260
  259. package/dist/index71.d.ts.map +1 -1
  260. package/dist/index72.d.cts +278 -0
  261. package/dist/index72.d.cts.map +1 -0
  262. package/dist/index72.d.ts +278 -0
  263. package/dist/index72.d.ts.map +1 -0
  264. package/dist/index8.d.cts +4 -4
  265. package/dist/index8.d.cts.map +1 -1
  266. package/dist/index8.d.ts +5 -5
  267. package/dist/index9.d.cts +2 -2
  268. package/dist/index9.d.cts.map +1 -1
  269. package/dist/index9.d.ts +2 -2
  270. package/dist/index9.d.ts.map +1 -1
  271. package/dist/layouts/Container/index.cjs +2 -1
  272. package/dist/layouts/Container/index.cjs.map +1 -1
  273. package/dist/layouts/Container/index.js +1 -1
  274. package/dist/layouts/MultiColumn/index.cjs +5 -0
  275. package/dist/layouts/MultiColumn/index.d.cts +2 -0
  276. package/dist/layouts/MultiColumn/index.d.ts +2 -0
  277. package/dist/layouts/MultiColumn/index.js +2 -0
  278. package/dist/layouts/PageBackground/index.d.cts +1 -1
  279. package/dist/layouts/PageBackground/index.d.ts +1 -1
  280. package/dist/layouts/Stack/index.cjs +2 -1
  281. package/dist/layouts/Stack/index.cjs.map +1 -1
  282. package/dist/layouts/Stack/index.d.cts +1 -1
  283. package/dist/layouts/Stack/index.d.ts +1 -1
  284. package/dist/layouts/Stack/index.js +1 -1
  285. package/dist/layouts/TwoColumn/index.cjs +2 -1
  286. package/dist/layouts/TwoColumn/index.cjs.map +1 -1
  287. package/dist/layouts/TwoColumn/index.d.cts +1 -1
  288. package/dist/layouts/TwoColumn/index.d.ts +1 -1
  289. package/dist/layouts/TwoColumn/index.js +1 -1
  290. package/dist/layouts/index.cjs +4 -0
  291. package/dist/layouts/index.d.cts +5 -4
  292. package/dist/layouts/index.d.ts +5 -4
  293. package/dist/layouts/index.js +2 -1
  294. package/dist/patterns/DataTable/index.cjs +6 -2
  295. package/dist/patterns/DataTable/index.cjs.map +1 -1
  296. package/dist/patterns/DataTable/index.d.cts +3 -3
  297. package/dist/patterns/DataTable/index.d.cts.map +1 -1
  298. package/dist/patterns/DataTable/index.d.ts +3 -3
  299. package/dist/patterns/DataTable/index.d.ts.map +1 -1
  300. package/dist/patterns/DataTable/index.js +6 -2
  301. package/dist/patterns/DataTable/index.js.map +1 -1
  302. package/dist/patterns/Footer/index.d.cts +7 -7
  303. package/dist/patterns/Footer/index.d.cts.map +1 -1
  304. package/dist/patterns/Footer/index.d.ts +7 -7
  305. package/dist/patterns/Footer/index.d.ts.map +1 -1
  306. package/dist/patterns/Header/index.d.cts +1 -1
  307. package/dist/patterns/Header/index.d.ts +1 -1
  308. package/dist/patterns/MediaObject/index.cjs +1 -1
  309. package/dist/patterns/MediaObject/index.d.cts +11 -11
  310. package/dist/patterns/MediaObject/index.d.ts +12 -12
  311. package/dist/patterns/MediaObject/index.js +1 -1
  312. package/dist/patterns/NavRail/index.cjs +4 -2
  313. package/dist/patterns/NavRail/index.cjs.map +1 -1
  314. package/dist/patterns/NavRail/index.js +4 -2
  315. package/dist/patterns/NavRail/index.js.map +1 -1
  316. package/dist/patterns/SectionCard/index.d.cts +2 -2
  317. package/dist/patterns/SectionCard/index.d.ts +2 -2
  318. package/dist/patterns/SectionHeading/index.d.cts +2 -2
  319. package/dist/patterns/index.d.cts +1 -1
  320. package/dist/patterns/index.d.ts +1 -1
  321. package/dist/primitives/Accordion/index.cjs +6 -2
  322. package/dist/primitives/Accordion/index.cjs.map +1 -1
  323. package/dist/primitives/Accordion/index.js +6 -2
  324. package/dist/primitives/Accordion/index.js.map +1 -1
  325. package/dist/primitives/Alert/index.cjs +2 -1
  326. package/dist/primitives/Alert/index.cjs.map +1 -1
  327. package/dist/primitives/Alert/index.js +1 -1
  328. package/dist/primitives/AlertDialog/index.cjs +1 -1
  329. package/dist/primitives/AlertDialog/index.js +1 -1
  330. package/dist/primitives/AspectRatio/index.cjs +1 -1
  331. package/dist/primitives/AspectRatio/index.js +1 -1
  332. package/dist/primitives/Avatar/index.cjs +1 -1
  333. package/dist/primitives/Avatar/index.js +1 -1
  334. package/dist/primitives/Badge/index.cjs +3 -2
  335. package/dist/primitives/Badge/index.cjs.map +1 -1
  336. package/dist/primitives/Badge/index.js +2 -2
  337. package/dist/primitives/Breadcrumb/index.cjs +7 -3
  338. package/dist/primitives/Breadcrumb/index.cjs.map +1 -1
  339. package/dist/primitives/Breadcrumb/index.js +7 -3
  340. package/dist/primitives/Breadcrumb/index.js.map +1 -1
  341. package/dist/primitives/Button/index.cjs +3 -2
  342. package/dist/primitives/Button/index.cjs.map +1 -1
  343. package/dist/primitives/Button/index.js +2 -2
  344. package/dist/primitives/ButtonGroup/index.cjs +3 -2
  345. package/dist/primitives/ButtonGroup/index.cjs.map +1 -1
  346. package/dist/primitives/ButtonGroup/index.js +2 -2
  347. package/dist/primitives/Calendar/index.cjs +12 -11
  348. package/dist/primitives/Calendar/index.cjs.map +1 -1
  349. package/dist/primitives/Calendar/index.js +12 -11
  350. package/dist/primitives/Calendar/index.js.map +1 -1
  351. package/dist/primitives/Card/index.cjs +2 -1
  352. package/dist/primitives/Card/index.cjs.map +1 -1
  353. package/dist/primitives/Card/index.js +1 -1
  354. package/dist/primitives/Carousel/index.cjs +4 -3
  355. package/dist/primitives/Carousel/index.cjs.map +1 -1
  356. package/dist/primitives/Carousel/index.js +4 -3
  357. package/dist/primitives/Carousel/index.js.map +1 -1
  358. package/dist/primitives/Checkbox/index.cjs +9 -2
  359. package/dist/primitives/Checkbox/index.cjs.map +1 -1
  360. package/dist/primitives/Checkbox/index.js +9 -2
  361. package/dist/primitives/Checkbox/index.js.map +1 -1
  362. package/dist/primitives/CheckboxTree/index.cjs +6 -2
  363. package/dist/primitives/CheckboxTree/index.cjs.map +1 -1
  364. package/dist/primitives/CheckboxTree/index.js +6 -2
  365. package/dist/primitives/CheckboxTree/index.js.map +1 -1
  366. package/dist/primitives/Collapsible/index.cjs +1 -1
  367. package/dist/primitives/Collapsible/index.js +1 -1
  368. package/dist/primitives/Command/index.cjs +6 -2
  369. package/dist/primitives/Command/index.cjs.map +1 -1
  370. package/dist/primitives/Command/index.js +6 -2
  371. package/dist/primitives/Command/index.js.map +1 -1
  372. package/dist/primitives/ContextMenu/index.cjs +14 -4
  373. package/dist/primitives/ContextMenu/index.cjs.map +1 -1
  374. package/dist/primitives/ContextMenu/index.js +14 -4
  375. package/dist/primitives/ContextMenu/index.js.map +1 -1
  376. package/dist/primitives/Credits/index.cjs +8 -3
  377. package/dist/primitives/Credits/index.cjs.map +1 -1
  378. package/dist/primitives/Credits/index.js +7 -3
  379. package/dist/primitives/Credits/index.js.map +1 -1
  380. package/dist/primitives/Dialog/index.cjs +3 -2
  381. package/dist/primitives/Dialog/index.cjs.map +1 -1
  382. package/dist/primitives/Dialog/index.js +3 -2
  383. package/dist/primitives/Dialog/index.js.map +1 -1
  384. package/dist/primitives/DropdownMenu/index.cjs +14 -4
  385. package/dist/primitives/DropdownMenu/index.cjs.map +1 -1
  386. package/dist/primitives/DropdownMenu/index.js +14 -4
  387. package/dist/primitives/DropdownMenu/index.js.map +1 -1
  388. package/dist/primitives/Empty/index.cjs +1 -1
  389. package/dist/primitives/Empty/index.js +1 -1
  390. package/dist/primitives/Field/index.cjs +1 -1
  391. package/dist/primitives/Field/index.js +1 -1
  392. package/dist/primitives/Form/index.cjs +1 -1
  393. package/dist/primitives/Form/index.js +1 -1
  394. package/dist/primitives/Heading/index.cjs +2 -1
  395. package/dist/primitives/Heading/index.cjs.map +1 -1
  396. package/dist/primitives/Heading/index.js +1 -1
  397. package/dist/primitives/HoverCard/index.cjs +1 -1
  398. package/dist/primitives/HoverCard/index.js +1 -1
  399. package/dist/primitives/InfoBanner/index.cjs +6 -3
  400. package/dist/primitives/InfoBanner/index.cjs.map +1 -1
  401. package/dist/primitives/InfoBanner/index.js +5 -3
  402. package/dist/primitives/InfoBanner/index.js.map +1 -1
  403. package/dist/primitives/Input/index.cjs +2 -1
  404. package/dist/primitives/Input/index.cjs.map +1 -1
  405. package/dist/primitives/Input/index.js +1 -1
  406. package/dist/primitives/InputGroup/index.cjs +1 -1
  407. package/dist/primitives/InputGroup/index.js +1 -1
  408. package/dist/primitives/InputOtp/index.cjs +3 -2
  409. package/dist/primitives/InputOtp/index.cjs.map +1 -1
  410. package/dist/primitives/InputOtp/index.js +3 -2
  411. package/dist/primitives/InputOtp/index.js.map +1 -1
  412. package/dist/primitives/Item/index.cjs +2 -2
  413. package/dist/primitives/Item/index.js +2 -2
  414. package/dist/primitives/Label/index.cjs +1 -1
  415. package/dist/primitives/Label/index.js +1 -1
  416. package/dist/primitives/Link/index.cjs +3 -2
  417. package/dist/primitives/Link/index.cjs.map +1 -1
  418. package/dist/primitives/Link/index.js +2 -2
  419. package/dist/primitives/Menubar/index.cjs +14 -4
  420. package/dist/primitives/Menubar/index.cjs.map +1 -1
  421. package/dist/primitives/Menubar/index.js +14 -4
  422. package/dist/primitives/Menubar/index.js.map +1 -1
  423. package/dist/primitives/NativeSelect/index.cjs +6 -3
  424. package/dist/primitives/NativeSelect/index.cjs.map +1 -1
  425. package/dist/primitives/NativeSelect/index.js +5 -3
  426. package/dist/primitives/NativeSelect/index.js.map +1 -1
  427. package/dist/primitives/NavigationMenu/index.cjs +5 -3
  428. package/dist/primitives/NavigationMenu/index.cjs.map +1 -1
  429. package/dist/primitives/NavigationMenu/index.js +5 -3
  430. package/dist/primitives/NavigationMenu/index.js.map +1 -1
  431. package/dist/primitives/Pagination/index.cjs +6 -2
  432. package/dist/primitives/Pagination/index.cjs.map +1 -1
  433. package/dist/primitives/Pagination/index.js +6 -2
  434. package/dist/primitives/Pagination/index.js.map +1 -1
  435. package/dist/primitives/Popover/index.cjs +1 -1
  436. package/dist/primitives/Popover/index.js +1 -1
  437. package/dist/primitives/Progress/index.cjs +1 -1
  438. package/dist/primitives/Progress/index.js +1 -1
  439. package/dist/primitives/RadioGroup/index.cjs +6 -2
  440. package/dist/primitives/RadioGroup/index.cjs.map +1 -1
  441. package/dist/primitives/RadioGroup/index.js +6 -2
  442. package/dist/primitives/RadioGroup/index.js.map +1 -1
  443. package/dist/primitives/Resizable/index.cjs +6 -2
  444. package/dist/primitives/Resizable/index.cjs.map +1 -1
  445. package/dist/primitives/Resizable/index.js +6 -2
  446. package/dist/primitives/Resizable/index.js.map +1 -1
  447. package/dist/primitives/ScrollArea/index.cjs +1 -1
  448. package/dist/primitives/ScrollArea/index.js +1 -1
  449. package/dist/primitives/Select/index.cjs +18 -5
  450. package/dist/primitives/Select/index.cjs.map +1 -1
  451. package/dist/primitives/Select/index.js +18 -5
  452. package/dist/primitives/Select/index.js.map +1 -1
  453. package/dist/primitives/Separator/index.cjs +1 -1
  454. package/dist/primitives/Separator/index.js +1 -1
  455. package/dist/primitives/Sheet/index.cjs +6 -2
  456. package/dist/primitives/Sheet/index.cjs.map +1 -1
  457. package/dist/primitives/Sheet/index.js +6 -2
  458. package/dist/primitives/Sheet/index.js.map +1 -1
  459. package/dist/primitives/Slider/index.cjs +1 -1
  460. package/dist/primitives/Slider/index.js +1 -1
  461. package/dist/primitives/Sonner/index.cjs +22 -6
  462. package/dist/primitives/Sonner/index.cjs.map +1 -1
  463. package/dist/primitives/Sonner/index.js +22 -6
  464. package/dist/primitives/Sonner/index.js.map +1 -1
  465. package/dist/primitives/Spinner/index.cjs +4 -2
  466. package/dist/primitives/Spinner/index.cjs.map +1 -1
  467. package/dist/primitives/Spinner/index.js +4 -2
  468. package/dist/primitives/Spinner/index.js.map +1 -1
  469. package/dist/primitives/Switch/index.cjs +1 -1
  470. package/dist/primitives/Switch/index.js +1 -1
  471. package/dist/primitives/Tabs/index.cjs +2 -2
  472. package/dist/primitives/Tabs/index.js +2 -2
  473. package/dist/primitives/Text/index.cjs +2 -1
  474. package/dist/primitives/Text/index.cjs.map +1 -1
  475. package/dist/primitives/Text/index.js +1 -1
  476. package/dist/primitives/Textarea/index.cjs +2 -1
  477. package/dist/primitives/Textarea/index.cjs.map +1 -1
  478. package/dist/primitives/Textarea/index.js +1 -1
  479. package/dist/primitives/Toggle/index.cjs +3 -2
  480. package/dist/primitives/Toggle/index.cjs.map +1 -1
  481. package/dist/primitives/Toggle/index.js +2 -2
  482. package/dist/primitives/ToggleGroup/index.cjs +1 -1
  483. package/dist/primitives/ToggleGroup/index.js +1 -1
  484. package/dist/primitives/Tooltip/index.cjs +1 -1
  485. package/dist/primitives/Tooltip/index.js +1 -1
  486. package/dist/primitives/index.cjs +1 -1
  487. package/dist/primitives/index.js +1 -1
  488. package/package.json +2 -1
@@ -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-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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"}
1
+ {"version":3,"file":"index.cjs","names":["MenubarPrimitive","cn","Icon","CheckIcon","CircleIcon","ChevronRightIcon"],"sources":["../../../src/primitives/Menubar/Menubar.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { 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 <Icon as={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 <Icon as={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 <Icon as={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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"}
@@ -1,7 +1,8 @@
1
1
  import { t as cn } from "../../cn.js";
2
+ import { t as Icon } from "../../Icon.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
2
4
  import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
3
5
  import { Menubar as Menubar$1 } from "radix-ui";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
6
  //#region src/primitives/Menubar/Menubar.tsx
6
7
  /** Horizontal application menu bar that hosts a row of dropdown menus (File, Edit, …). */
7
8
  function Menubar({ className, ...props }) {
@@ -77,7 +78,10 @@ function MenubarCheckboxItem({ className, children, checked, ...props }) {
77
78
  ...props,
78
79
  children: [/* @__PURE__ */ jsx("span", {
79
80
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
80
- children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
81
+ children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(Icon, {
82
+ as: CheckIcon,
83
+ className: "size-4"
84
+ }) })
81
85
  }), children]
82
86
  });
83
87
  }
@@ -89,7 +93,10 @@ function MenubarRadioItem({ className, children, ...props }) {
89
93
  ...props,
90
94
  children: [/* @__PURE__ */ jsx("span", {
91
95
  className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
92
- children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) })
96
+ children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(Icon, {
97
+ as: CircleIcon,
98
+ className: "size-2 fill-current"
99
+ }) })
93
100
  }), children]
94
101
  });
95
102
  }
@@ -132,7 +139,10 @@ function MenubarSubTrigger({ className, inset, children, ...props }) {
132
139
  "data-inset": inset,
133
140
  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
141
  ...props,
135
- children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
142
+ children: [children, /* @__PURE__ */ jsx(Icon, {
143
+ as: ChevronRightIcon,
144
+ className: "ml-auto size-4"
145
+ })]
136
146
  });
137
147
  }
138
148
  /** The dropdown surface for a nested submenu's items. */
@@ -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-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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"}
1
+ {"version":3,"file":"index.js","names":["MenubarPrimitive"],"sources":["../../../src/primitives/Menubar/Menubar.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { 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 <Icon as={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 <Icon as={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 <Icon as={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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"}
@@ -1,9 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_cn = require("../../cn.cjs");
3
- let lucide_react = require("lucide-react");
3
+ const require_Icon = require("../../Icon.cjs");
4
+ let class_variance_authority = require("class-variance-authority");
4
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
+ let lucide_react = require("lucide-react");
5
7
  //#region src/primitives/NativeSelect/NativeSelect.tsx
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"), {
8
+ const nativeSelectVariants = (0, 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
9
  variants: {
8
10
  /** Control height + horizontal padding; matches the Input size scale. */
9
11
  size: {
@@ -27,7 +29,8 @@ function NativeSelect({ className, size = "default", children, ...props }) {
27
29
  className: require_cn.cn(nativeSelectVariants({ size })),
28
30
  ...props,
29
31
  children
30
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, {
32
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
33
+ as: lucide_react.ChevronDownIcon,
31
34
  "aria-hidden": "true",
32
35
  className: "pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50"
33
36
  })]
@@ -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 \"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"}
1
+ {"version":3,"file":"index.cjs","names":["cn","Icon","ChevronDownIcon"],"sources":["../../../src/primitives/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { 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 <Icon\n as={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":";;;;;;;AAUA,MAAM,wBAAA,GAAA,yBAAA,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,MAAD;GACE,IAAIC,aAAAA;GACJ,eAAY;GACZ,WAAU;EACX,CAAA,CACE;;AAET"}
@@ -1,7 +1,8 @@
1
1
  import { t as cn } from "../../cn.js";
2
- import { ChevronDownIcon } from "lucide-react";
3
- import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { t as Icon } from "../../Icon.js";
4
3
  import { cva } from "class-variance-authority";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { ChevronDownIcon } from "lucide-react";
5
6
  //#region src/primitives/NativeSelect/NativeSelect.tsx
6
7
  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
8
  variants: {
@@ -27,7 +28,8 @@ function NativeSelect({ className, size = "default", children, ...props }) {
27
28
  className: cn(nativeSelectVariants({ size })),
28
29
  ...props,
29
30
  children
30
- }), /* @__PURE__ */ jsx(ChevronDownIcon, {
31
+ }), /* @__PURE__ */ jsx(Icon, {
32
+ as: ChevronDownIcon,
31
33
  "aria-hidden": "true",
32
34
  className: "pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 opacity-50"
33
35
  })]
@@ -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 \"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
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/NativeSelect/NativeSelect.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { 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 <Icon\n as={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":";;;;;;AAUA,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,MAAD;GACE,IAAI;GACJ,eAAY;GACZ,WAAU;EACX,CAAA,CACE;;AAET"}
@@ -1,9 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_cn = require("../../cn.cjs");
3
+ const require_Icon = require("../../Icon.cjs");
4
+ let class_variance_authority = require("class-variance-authority");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
3
6
  let lucide_react = require("lucide-react");
4
7
  let radix_ui = require("radix-ui");
5
- let react_jsx_runtime = require("react/jsx-runtime");
6
- let class_variance_authority = require("class-variance-authority");
7
8
  //#region src/primitives/NavigationMenu/NavigationMenu.tsx
8
9
  /** Root of a horizontal navigation bar; renders a `<nav>` and optionally an animated viewport. */
9
10
  function NavigationMenu({ className, children, viewport = true, ...props }) {
@@ -41,7 +42,8 @@ function NavigationMenuTrigger({ className, children, ...props }) {
41
42
  children: [
42
43
  children,
43
44
  " ",
44
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, {
45
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
46
+ as: lucide_react.ChevronDownIcon,
45
47
  className: "relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
46
48
  "aria-hidden": "true"
47
49
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["NavigationMenuPrimitive","cn","ChevronDownIcon"],"sources":["../../../src/primitives/NavigationMenu/NavigationMenu.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { NavigationMenu as NavigationMenuPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Root of a horizontal navigation bar; renders a `<nav>` and optionally an animated viewport. */\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n /** When true (default), renders a shared animated viewport that hosts the active item's content. Set false to render content inline beneath each item. */\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/** Horizontal list wrapper for the top-level navigation items. */\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-0\", className)}\n {...props}\n />\n );\n}\n\n/** A single top-level entry; holds either a link or a trigger plus its content. */\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\n/* Figma (288:184487): triggers are the Ghost Button recipe — heading-6 type,\n 36px box, px-4, rounded-8, ghost hover/open tints. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center gap-2 rounded-8 bg-ghost-bg px-4 py-2 font-heading text-sm leading-6 font-medium text-primary-txt transition-[color,box-shadow] outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-toggle-active-bg\",\n);\n\n/** Button that toggles an item's content panel; renders a rotating chevron. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/** The panel revealed when an item's trigger is open; holds links or rich content. */\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-12 group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-primary-border group-data-[viewport=false]/navigation-menu:bg-glass-none-bg group-data-[viewport=false]/navigation-menu:text-primary-txt group-data-[viewport=false]/navigation-menu:shadow-sm group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Shared animated container that the active item's content is portaled into when `viewport` is enabled. */\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute top-full left-0 isolate z-50 flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg text-primary-txt shadow-sm data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\n/** A navigable link styled for use as a top-level item or inside content; set `active` to mark the current page. */\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n // Link tiles: semibold-14 title + muted description on menu-item metrics.\n \"flex flex-col gap-1 rounded-10 px-2 py-1.5 text-sm leading-5 transition-all outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 data-[active=true]:bg-toggle-active-bg [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Optional arrow that points from the active trigger to its content panel. */\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-2 bg-primary-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";;;;;;;;AAQA,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAIF;CACD,OACE,iBAAA,GAAA,kBAAA,MAACA,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,iBAAe;EACf,WAAWC,WAAAA,GACT,oFACA,SACF;EACA,GAAI;YAPN,CASG,UACA,YAAY,iBAAA,GAAA,kBAAA,KAAC,wBAAD,CAAyB,CAAA,CACV;;AAElC;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,iEAAiE,SAAS;EACxF,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,YAAY,SAAS;EACnC,GAAI;CACL,CAAA;AAEL;AAIA,MAAM,8BAAA,GAAA,yBAAA,KACJ,mZACF;;AAGA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;CAC/D,OACE,iBAAA,GAAA,kBAAA,MAACD,SAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;YAHN;GAKG;GAAU;GACX,iBAAA,GAAA,kBAAA,KAACC,aAAAA,iBAAD;IACE,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;;AAGA,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;CAC/D,OACE,iBAAA,GAAA,kBAAA,KAACF,SAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GACT,oWACA,imCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,WAAWA,WAAAA,GAAG,2DAA2D;YAC5E,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,UAAzB;GACE,aAAU;GACV,WAAWC,WAAAA,GACT,8WACA,SACF;GACA,GAAI;EACL,CAAA;CACE,CAAA;AAET;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAET,2UACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;CACjE,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,WAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GACT,gMACA,SACF;EACA,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAAC,OAAD,EAAK,WAAU,+EAAgF,CAAA;CAC9D,CAAA;AAEvC"}
1
+ {"version":3,"file":"index.cjs","names":["NavigationMenuPrimitive","cn","Icon","ChevronDownIcon"],"sources":["../../../src/primitives/NavigationMenu/NavigationMenu.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { NavigationMenu as NavigationMenuPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Root of a horizontal navigation bar; renders a `<nav>` and optionally an animated viewport. */\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n /** When true (default), renders a shared animated viewport that hosts the active item's content. Set false to render content inline beneath each item. */\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/** Horizontal list wrapper for the top-level navigation items. */\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-0\", className)}\n {...props}\n />\n );\n}\n\n/** A single top-level entry; holds either a link or a trigger plus its content. */\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\n/* Figma (288:184487): triggers are the Ghost Button recipe — heading-6 type,\n 36px box, px-4, rounded-8, ghost hover/open tints. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center gap-2 rounded-8 bg-ghost-bg px-4 py-2 font-heading text-sm leading-6 font-medium text-primary-txt transition-[color,box-shadow] outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-toggle-active-bg\",\n);\n\n/** Button that toggles an item's content panel; renders a rotating chevron. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <Icon\n as={ChevronDownIcon}\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/** The panel revealed when an item's trigger is open; holds links or rich content. */\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-12 group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-primary-border group-data-[viewport=false]/navigation-menu:bg-glass-none-bg group-data-[viewport=false]/navigation-menu:text-primary-txt group-data-[viewport=false]/navigation-menu:shadow-sm group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Shared animated container that the active item's content is portaled into when `viewport` is enabled. */\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute top-full left-0 isolate z-50 flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg text-primary-txt shadow-sm data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\n/** A navigable link styled for use as a top-level item or inside content; set `active` to mark the current page. */\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n // Link tiles: semibold-14 title + muted description on menu-item metrics.\n \"flex flex-col gap-1 rounded-10 px-2 py-1.5 text-sm leading-5 transition-all outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 data-[active=true]:bg-toggle-active-bg [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Optional arrow that points from the active trigger to its content panel. */\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-2 bg-primary-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";;;;;;;;;AASA,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAIF;CACD,OACE,iBAAA,GAAA,kBAAA,MAACA,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,iBAAe;EACf,WAAWC,WAAAA,GACT,oFACA,SACF;EACA,GAAI;YAPN,CASG,UACA,YAAY,iBAAA,GAAA,kBAAA,KAAC,wBAAD,CAAyB,CAAA,CACV;;AAElC;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,iEAAiE,SAAS;EACxF,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,YAAY,SAAS;EACnC,GAAI;CACL,CAAA;AAEL;AAIA,MAAM,8BAAA,GAAA,yBAAA,KACJ,mZACF;;AAGA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;CAC/D,OACE,iBAAA,GAAA,kBAAA,MAACD,SAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;YAHN;GAKG;GAAU;GACX,iBAAA,GAAA,kBAAA,KAACC,aAAAA,MAAD;IACE,IAAIC,aAAAA;IACJ,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;;AAGA,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;CAC/D,OACE,iBAAA,GAAA,kBAAA,KAACH,SAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GACT,oWACA,imCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,WAAWA,WAAAA,GAAG,2DAA2D;YAC5E,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,UAAzB;GACE,aAAU;GACV,WAAWC,WAAAA,GACT,8WACA,SACF;GACA,GAAI;EACL,CAAA;CACE,CAAA;AAET;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GAET,2UACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;CACjE,OACE,iBAAA,GAAA,kBAAA,KAACD,SAAAA,eAAwB,WAAzB;EACE,aAAU;EACV,WAAWC,WAAAA,GACT,gMACA,SACF;EACA,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAAC,OAAD,EAAK,WAAU,+EAAgF,CAAA;CAC9D,CAAA;AAEvC"}
@@ -1,8 +1,9 @@
1
1
  import { t as cn } from "../../cn.js";
2
+ import { t as Icon } from "../../Icon.js";
3
+ import { cva } from "class-variance-authority";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
2
5
  import { ChevronDownIcon } from "lucide-react";
3
6
  import { NavigationMenu as NavigationMenu$1 } from "radix-ui";
4
- import { jsx, jsxs } from "react/jsx-runtime";
5
- import { cva } from "class-variance-authority";
6
7
  //#region src/primitives/NavigationMenu/NavigationMenu.tsx
7
8
  /** Root of a horizontal navigation bar; renders a `<nav>` and optionally an animated viewport. */
8
9
  function NavigationMenu({ className, children, viewport = true, ...props }) {
@@ -40,7 +41,8 @@ function NavigationMenuTrigger({ className, children, ...props }) {
40
41
  children: [
41
42
  children,
42
43
  " ",
43
- /* @__PURE__ */ jsx(ChevronDownIcon, {
44
+ /* @__PURE__ */ jsx(Icon, {
45
+ as: ChevronDownIcon,
44
46
  className: "relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
45
47
  "aria-hidden": "true"
46
48
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["NavigationMenuPrimitive"],"sources":["../../../src/primitives/NavigationMenu/NavigationMenu.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { NavigationMenu as NavigationMenuPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Root of a horizontal navigation bar; renders a `<nav>` and optionally an animated viewport. */\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n /** When true (default), renders a shared animated viewport that hosts the active item's content. Set false to render content inline beneath each item. */\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/** Horizontal list wrapper for the top-level navigation items. */\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-0\", className)}\n {...props}\n />\n );\n}\n\n/** A single top-level entry; holds either a link or a trigger plus its content. */\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\n/* Figma (288:184487): triggers are the Ghost Button recipe — heading-6 type,\n 36px box, px-4, rounded-8, ghost hover/open tints. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center gap-2 rounded-8 bg-ghost-bg px-4 py-2 font-heading text-sm leading-6 font-medium text-primary-txt transition-[color,box-shadow] outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-toggle-active-bg\",\n);\n\n/** Button that toggles an item's content panel; renders a rotating chevron. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/** The panel revealed when an item's trigger is open; holds links or rich content. */\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-12 group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-primary-border group-data-[viewport=false]/navigation-menu:bg-glass-none-bg group-data-[viewport=false]/navigation-menu:text-primary-txt group-data-[viewport=false]/navigation-menu:shadow-sm group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Shared animated container that the active item's content is portaled into when `viewport` is enabled. */\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute top-full left-0 isolate z-50 flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg text-primary-txt shadow-sm data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\n/** A navigable link styled for use as a top-level item or inside content; set `active` to mark the current page. */\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n // Link tiles: semibold-14 title + muted description on menu-item metrics.\n \"flex flex-col gap-1 rounded-10 px-2 py-1.5 text-sm leading-5 transition-all outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 data-[active=true]:bg-toggle-active-bg [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Optional arrow that points from the active trigger to its content panel. */\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-2 bg-primary-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";;;;;;;AAQA,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAIF;CACD,OACE,qBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,iBAAe;EACf,WAAW,GACT,oFACA,SACF;EACA,GAAI;YAPN,CASG,UACA,YAAY,oBAAC,wBAAD,CAAyB,CAAA,CACV;;AAElC;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,iEAAiE,SAAS;EACxF,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,YAAY,SAAS;EACnC,GAAI;CACL,CAAA;AAEL;AAIA,MAAM,6BAA6B,IACjC,mZACF;;AAGA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;CAC/D,OACE,qBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;YAHN;GAKG;GAAU;GACX,oBAAC,iBAAD;IACE,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;;AAGA,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;CAC/D,OACE,oBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GACT,oWACA,imCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,2DAA2D;YAC5E,oBAACA,iBAAwB,UAAzB;GACE,aAAU;GACV,WAAW,GACT,8WACA,SACF;GACA,GAAI;EACL,CAAA;CACE,CAAA;AAET;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAET,2UACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;CACjE,OACE,oBAACA,iBAAwB,WAAzB;EACE,aAAU;EACV,WAAW,GACT,gMACA,SACF;EACA,GAAI;YAEJ,oBAAC,OAAD,EAAK,WAAU,+EAAgF,CAAA;CAC9D,CAAA;AAEvC"}
1
+ {"version":3,"file":"index.js","names":["NavigationMenuPrimitive"],"sources":["../../../src/primitives/NavigationMenu/NavigationMenu.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport { NavigationMenu as NavigationMenuPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\n/** Root of a horizontal navigation bar; renders a `<nav>` and optionally an animated viewport. */\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n /** When true (default), renders a shared animated viewport that hosts the active item's content. Set false to render content inline beneath each item. */\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/** Horizontal list wrapper for the top-level navigation items. */\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-0\", className)}\n {...props}\n />\n );\n}\n\n/** A single top-level entry; holds either a link or a trigger plus its content. */\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\n/* Figma (288:184487): triggers are the Ghost Button recipe — heading-6 type,\n 36px box, px-4, rounded-8, ghost hover/open tints. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center gap-2 rounded-8 bg-ghost-bg px-4 py-2 font-heading text-sm leading-6 font-medium text-primary-txt transition-[color,box-shadow] outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-toggle-active-bg\",\n);\n\n/** Button that toggles an item's content panel; renders a rotating chevron. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <Icon\n as={ChevronDownIcon}\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/** The panel revealed when an item's trigger is open; holds links or rich content. */\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-12 group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-primary-border group-data-[viewport=false]/navigation-menu:bg-glass-none-bg group-data-[viewport=false]/navigation-menu:text-primary-txt group-data-[viewport=false]/navigation-menu:shadow-sm group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Shared animated container that the active item's content is portaled into when `viewport` is enabled. */\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute top-full left-0 isolate z-50 flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-12 border border-primary-border bg-glass-none-bg text-primary-txt shadow-sm data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\n/** A navigable link styled for use as a top-level item or inside content; set `active` to mark the current page. */\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n // Link tiles: semibold-14 title + muted description on menu-item metrics.\n \"flex flex-col gap-1 rounded-10 px-2 py-1.5 text-sm leading-5 transition-all outline-none hover:bg-ghost-hover-bg focus:bg-ghost-hover-bg focus-visible:ring-3 focus-visible:ring-focus focus-visible:outline-1 data-[active=true]:bg-toggle-active-bg [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-txt\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Optional arrow that points from the active trigger to its content panel. */\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-2 bg-primary-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";;;;;;;;AASA,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAIF;CACD,OACE,qBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,iBAAe;EACf,WAAW,GACT,oFACA,SACF;EACA,GAAI;YAPN,CASG,UACA,YAAY,oBAAC,wBAAD,CAAyB,CAAA,CACV;;AAElC;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,iEAAiE,SAAS;EACxF,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,YAAY,SAAS;EACnC,GAAI;CACL,CAAA;AAEL;AAIA,MAAM,6BAA6B,IACjC,mZACF;;AAGA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;CAC/D,OACE,qBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;YAHN;GAKG;GAAU;GACX,oBAAC,MAAD;IACE,IAAI;IACJ,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;;AAGA,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;CAC/D,OACE,oBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GACT,oWACA,imCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,oBAAC,OAAD;EAAK,WAAW,GAAG,2DAA2D;YAC5E,oBAACA,iBAAwB,UAAzB;GACE,aAAU;GACV,WAAW,GACT,8WACA,SACF;GACA,GAAI;EACL,CAAA;CACE,CAAA;AAET;;AAGA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAET,2UACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;CACjE,OACE,oBAACA,iBAAwB,WAAzB;EACE,aAAU;EACV,WAAW,GACT,gMACA,SACF;EACA,GAAI;YAEJ,oBAAC,OAAD,EAAK,WAAU,+EAAgF,CAAA;CAC9D,CAAA;AAEvC"}
@@ -1,8 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_cn = require("../../cn.cjs");
3
+ const require_Icon = require("../../Icon.cjs");
3
4
  const require_primitives_Button_index = require("../Button/index.cjs");
4
- let lucide_react = require("lucide-react");
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
+ let lucide_react = require("lucide-react");
6
7
  //#region src/primitives/Pagination/Pagination.tsx
7
8
  /** Accessible pagination navigation landmark that wraps the list of page links. */
8
9
  function Pagination({ className, ...props }) {
@@ -69,7 +70,10 @@ function PaginationEllipsis({ className, ...props }) {
69
70
  "data-slot": "pagination-ellipsis",
70
71
  className: require_cn.cn("flex size-9 items-center justify-center", className),
71
72
  ...props,
72
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.MoreHorizontalIcon, { className: "size-4" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
73
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
74
+ as: lucide_react.MoreHorizontalIcon,
75
+ className: "size-4"
76
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
73
77
  className: "sr-only",
74
78
  children: "More pages"
75
79
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["cn","buttonVariants","MoreHorizontalIcon"],"sources":["../../../src/primitives/Pagination/Pagination.tsx"],"sourcesContent":["import { MoreHorizontalIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { type Button, buttonVariants } from \"@/primitives/Button\";\nimport { cn } from \"@/utils\";\n\n/** Accessible pagination navigation landmark that wraps the list of page links. */\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n );\n}\n\n/** Horizontal list container holding the individual pagination items. */\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** Single list item wrapper for a pagination link, ellipsis, or control. */\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n /** Marks this link as the current page; renders the outline (selected) style and sets `aria-current`. */\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">;\n\n/** Clickable page link styled with the Button variants; pass `isActive` for the current page. */\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n // Pagination buttons are 8px-rounded squares (Figma 294:233630), not pills.\n \"rounded-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** \"Previous\" control: a pagination link with a leading chevron and accessible label. */\nfunction PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Previous\n </PaginationLink>\n );\n}\n\n/** \"Next\" control: a pagination link with a trailing chevron and accessible label. */\nfunction PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Next\n </PaginationLink>\n );\n}\n\n/** Non-interactive ellipsis indicating skipped page ranges. */\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n"],"mappings":";;;;;;;AAOA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAWA,WAAAA,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAqC;CAC9E,OACE,iBAAA,GAAA,kBAAA,KAAC,MAAD;EACE,aAAU;EACV,WAAWA,WAAAA,GAAG,oCAAoC,SAAS;EAC3D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,eAAe,EAAE,GAAG,SAAqC;CAChE,OAAO,iBAAA,GAAA,kBAAA,KAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;CAAQ,CAAA;AACrD;;AASA,SAAS,eAAe,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,SAA8B;CAC7F,OACE,iBAAA,GAAA,kBAAA,KAAC,KAAD;EACE,gBAAc,WAAW,SAAS,KAAA;EAClC,aAAU;EACV,eAAa;EACb,WAAWA,WAAAA,GACTC,gCAAAA,eAAe;GACb,SAAS,WAAW,YAAY;GAChC;EACF,CAAC,GAED,aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAsD;CAChG,OACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAWD,WAAAA,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAsD;CAC5F,OACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAWA,WAAAA,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAuC;CACjF,OACE,iBAAA,GAAA,kBAAA,MAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAWA,WAAAA,GAAG,2CAA2C,SAAS;EAClE,GAAI;YAJN,CAME,iBAAA,GAAA,kBAAA,KAACE,aAAAA,oBAAD,EAAoB,WAAU,SAAU,CAAA,GACxC,iBAAA,GAAA,kBAAA,KAAC,QAAD;GAAM,WAAU;aAAU;EAAgB,CAAA,CACtC;;AAEV"}
1
+ {"version":3,"file":"index.cjs","names":["cn","buttonVariants","Icon","MoreHorizontalIcon"],"sources":["../../../src/primitives/Pagination/Pagination.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { MoreHorizontalIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { type Button, buttonVariants } from \"@/primitives/Button\";\nimport { cn } from \"@/utils\";\n\n/** Accessible pagination navigation landmark that wraps the list of page links. */\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n );\n}\n\n/** Horizontal list container holding the individual pagination items. */\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** Single list item wrapper for a pagination link, ellipsis, or control. */\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n /** Marks this link as the current page; renders the outline (selected) style and sets `aria-current`. */\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">;\n\n/** Clickable page link styled with the Button variants; pass `isActive` for the current page. */\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n // Pagination buttons are 8px-rounded squares (Figma 294:233630), not pills.\n \"rounded-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** \"Previous\" control: a pagination link with a leading chevron and accessible label. */\nfunction PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Previous\n </PaginationLink>\n );\n}\n\n/** \"Next\" control: a pagination link with a trailing chevron and accessible label. */\nfunction PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Next\n </PaginationLink>\n );\n}\n\n/** Non-interactive ellipsis indicating skipped page ranges. */\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <Icon as={MoreHorizontalIcon} className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n"],"mappings":";;;;;;;;AAQA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAWA,WAAAA,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAqC;CAC9E,OACE,iBAAA,GAAA,kBAAA,KAAC,MAAD;EACE,aAAU;EACV,WAAWA,WAAAA,GAAG,oCAAoC,SAAS;EAC3D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,eAAe,EAAE,GAAG,SAAqC;CAChE,OAAO,iBAAA,GAAA,kBAAA,KAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;CAAQ,CAAA;AACrD;;AASA,SAAS,eAAe,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,SAA8B;CAC7F,OACE,iBAAA,GAAA,kBAAA,KAAC,KAAD;EACE,gBAAc,WAAW,SAAS,KAAA;EAClC,aAAU;EACV,eAAa;EACb,WAAWA,WAAAA,GACTC,gCAAAA,eAAe;GACb,SAAS,WAAW,YAAY;GAChC;EACF,CAAC,GAED,aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAsD;CAChG,OACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAWD,WAAAA,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAsD;CAC5F,OACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAWA,WAAAA,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAuC;CACjF,OACE,iBAAA,GAAA,kBAAA,MAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAWA,WAAAA,GAAG,2CAA2C,SAAS;EAClE,GAAI;YAJN,CAME,iBAAA,GAAA,kBAAA,KAACE,aAAAA,MAAD;GAAM,IAAIC,aAAAA;GAAoB,WAAU;EAAU,CAAA,GAClD,iBAAA,GAAA,kBAAA,KAAC,QAAD;GAAM,WAAU;aAAU;EAAgB,CAAA,CACtC;;AAEV"}
@@ -1,7 +1,8 @@
1
1
  import { t as cn } from "../../cn.js";
2
+ import { t as Icon } from "../../Icon.js";
2
3
  import { buttonVariants } from "../Button/index.js";
3
- import { MoreHorizontalIcon } from "lucide-react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { MoreHorizontalIcon } from "lucide-react";
5
6
  //#region src/primitives/Pagination/Pagination.tsx
6
7
  /** Accessible pagination navigation landmark that wraps the list of page links. */
7
8
  function Pagination({ className, ...props }) {
@@ -68,7 +69,10 @@ function PaginationEllipsis({ className, ...props }) {
68
69
  "data-slot": "pagination-ellipsis",
69
70
  className: cn("flex size-9 items-center justify-center", className),
70
71
  ...props,
71
- children: [/* @__PURE__ */ jsx(MoreHorizontalIcon, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
72
+ children: [/* @__PURE__ */ jsx(Icon, {
73
+ as: MoreHorizontalIcon,
74
+ className: "size-4"
75
+ }), /* @__PURE__ */ jsx("span", {
72
76
  className: "sr-only",
73
77
  children: "More pages"
74
78
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/Pagination/Pagination.tsx"],"sourcesContent":["import { MoreHorizontalIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { type Button, buttonVariants } from \"@/primitives/Button\";\nimport { cn } from \"@/utils\";\n\n/** Accessible pagination navigation landmark that wraps the list of page links. */\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n );\n}\n\n/** Horizontal list container holding the individual pagination items. */\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** Single list item wrapper for a pagination link, ellipsis, or control. */\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n /** Marks this link as the current page; renders the outline (selected) style and sets `aria-current`. */\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">;\n\n/** Clickable page link styled with the Button variants; pass `isActive` for the current page. */\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n // Pagination buttons are 8px-rounded squares (Figma 294:233630), not pills.\n \"rounded-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** \"Previous\" control: a pagination link with a leading chevron and accessible label. */\nfunction PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Previous\n </PaginationLink>\n );\n}\n\n/** \"Next\" control: a pagination link with a trailing chevron and accessible label. */\nfunction PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Next\n </PaginationLink>\n );\n}\n\n/** Non-interactive ellipsis indicating skipped page ranges. */\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n"],"mappings":";;;;;;AAOA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,oBAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAqC;CAC9E,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GAAG,oCAAoC,SAAS;EAC3D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,eAAe,EAAE,GAAG,SAAqC;CAChE,OAAO,oBAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;CAAQ,CAAA;AACrD;;AASA,SAAS,eAAe,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,SAA8B;CAC7F,OACE,oBAAC,KAAD;EACE,gBAAc,WAAW,SAAS,KAAA;EAClC,aAAU;EACV,eAAa;EACb,WAAW,GACT,eAAe;GACb,SAAS,WAAW,YAAY;GAChC;EACF,CAAC,GAED,aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAsD;CAChG,OACE,oBAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAW,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAsD;CAC5F,OACE,oBAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAW,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAuC;CACjF,OACE,qBAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAW,GAAG,2CAA2C,SAAS;EAClE,GAAI;YAJN,CAME,oBAAC,oBAAD,EAAoB,WAAU,SAAU,CAAA,GACxC,oBAAC,QAAD;GAAM,WAAU;aAAU;EAAgB,CAAA,CACtC;;AAEV"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/primitives/Pagination/Pagination.tsx"],"sourcesContent":["import { Icon } from \"@/primitives/Icon\";\nimport { MoreHorizontalIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { type Button, buttonVariants } from \"@/primitives/Button\";\nimport { cn } from \"@/utils\";\n\n/** Accessible pagination navigation landmark that wraps the list of page links. */\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n );\n}\n\n/** Horizontal list container holding the individual pagination items. */\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** Single list item wrapper for a pagination link, ellipsis, or control. */\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\ntype PaginationLinkProps = {\n /** Marks this link as the current page; renders the outline (selected) style and sets `aria-current`. */\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">;\n\n/** Clickable page link styled with the Button variants; pass `isActive` for the current page. */\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n // Pagination buttons are 8px-rounded squares (Figma 294:233630), not pills.\n \"rounded-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** \"Previous\" control: a pagination link with a leading chevron and accessible label. */\nfunction PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Previous\n </PaginationLink>\n );\n}\n\n/** \"Next\" control: a pagination link with a trailing chevron and accessible label. */\nfunction PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"px-2.5\", className)}\n {...props}\n >\n Next\n </PaginationLink>\n );\n}\n\n/** Non-interactive ellipsis indicating skipped page ranges. */\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <Icon as={MoreHorizontalIcon} className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n"],"mappings":";;;;;;;AAQA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,OACE,oBAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAqC;CAC9E,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GAAG,oCAAoC,SAAS;EAC3D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,eAAe,EAAE,GAAG,SAAqC;CAChE,OAAO,oBAAC,MAAD;EAAI,aAAU;EAAkB,GAAI;CAAQ,CAAA;AACrD;;AASA,SAAS,eAAe,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,SAA8B;CAC7F,OACE,oBAAC,KAAD;EACE,gBAAc,WAAW,SAAS,KAAA;EAClC,aAAU;EACV,eAAa;EACb,WAAW,GACT,eAAe;GACb,SAAS,WAAW,YAAY;GAChC;EACF,CAAC,GAED,aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAsD;CAChG,OACE,oBAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAW,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,eAAe,EAAE,WAAW,GAAG,SAAsD;CAC5F,OACE,oBAAC,gBAAD;EACE,cAAW;EACX,MAAK;EACL,WAAW,GAAG,UAAU,SAAS;EACjC,GAAI;YACL;CAEe,CAAA;AAEpB;;AAGA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAAuC;CACjF,OACE,qBAAC,QAAD;EACE,eAAA;EACA,aAAU;EACV,WAAW,GAAG,2CAA2C,SAAS;EAClE,GAAI;YAJN,CAME,oBAAC,MAAD;GAAM,IAAI;GAAoB,WAAU;EAAU,CAAA,GAClD,oBAAC,QAAD;GAAM,WAAU;aAAU;EAAgB,CAAA,CACtC;;AAEV"}
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_cn = require("../../cn.cjs");
3
- let radix_ui = require("radix-ui");
4
3
  let react_jsx_runtime = require("react/jsx-runtime");
4
+ let radix_ui = require("radix-ui");
5
5
  //#region src/primitives/Popover/Popover.tsx
6
6
  /** Root of the popover: holds open state and coordinates the trigger and content. */
7
7
  function Popover({ ...props }) {
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "../../cn.js";
2
- import { Popover as Popover$1 } from "radix-ui";
3
2
  import { jsx } from "react/jsx-runtime";
3
+ import { Popover as Popover$1 } from "radix-ui";
4
4
  //#region src/primitives/Popover/Popover.tsx
5
5
  /** Root of the popover: holds open state and coordinates the trigger and content. */
6
6
  function Popover({ ...props }) {
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_cn = require("../../cn.cjs");
3
- let radix_ui = require("radix-ui");
4
3
  let react_jsx_runtime = require("react/jsx-runtime");
4
+ let radix_ui = require("radix-ui");
5
5
  //#region src/primitives/Progress/Progress.tsx
6
6
  const progressIndicatorVariants = {
7
7
  default: "bg-primary-invert-bg",
@@ -1,6 +1,6 @@
1
1
  import { t as cn } from "../../cn.js";
2
- import { Progress as Progress$1 } from "radix-ui";
3
2
  import { jsx } from "react/jsx-runtime";
3
+ import { Progress as Progress$1 } from "radix-ui";
4
4
  //#region src/primitives/Progress/Progress.tsx
5
5
  const progressIndicatorVariants = {
6
6
  default: "bg-primary-invert-bg",
@@ -1,9 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_cn = require("../../cn.cjs");
3
+ const require_Icon = require("../../Icon.cjs");
3
4
  let react = require("react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
4
6
  let lucide_react = require("lucide-react");
5
7
  let radix_ui = require("radix-ui");
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
8
  //#region src/primitives/RadioGroup/RadioGroup.tsx
8
9
  /** Root of a set of mutually-exclusive radio options; lays them out vertically or horizontally. */
9
10
  function RadioGroup({ className, orientation = "vertical", ...props }) {
@@ -24,7 +25,10 @@ function RadioGroupItem({ className, ...props }) {
24
25
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.RadioGroup.Indicator, {
25
26
  "data-slot": "radio-group-indicator",
26
27
  className: "relative flex items-center justify-center",
27
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.CircleIcon, { className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-current stroke-current" })
28
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
29
+ as: lucide_react.CircleIcon,
30
+ className: "absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-current stroke-current"
31
+ })
28
32
  })
29
33
  });
30
34
  }