@psnext/design-system 2.2.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 (491) 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 +214 -108
  6. package/dist/Header.cjs.map +1 -1
  7. package/dist/Header.js +214 -108
  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 +7 -7
  29. package/dist/index10.d.ts.map +1 -1
  30. package/dist/index11.d.cts +3 -3
  31. package/dist/index11.d.cts.map +1 -1
  32. package/dist/index11.d.ts +3 -3
  33. package/dist/index11.d.ts.map +1 -1
  34. package/dist/index12.d.cts +11 -11
  35. package/dist/index12.d.ts +13 -13
  36. package/dist/index12.d.ts.map +1 -1
  37. package/dist/index13.d.cts +6 -6
  38. package/dist/index13.d.cts.map +1 -1
  39. package/dist/index13.d.ts +6 -6
  40. package/dist/index13.d.ts.map +1 -1
  41. package/dist/index14.d.cts +5 -5
  42. package/dist/index14.d.cts.map +1 -1
  43. package/dist/index14.d.ts +5 -5
  44. package/dist/index15.d.cts +3 -3
  45. package/dist/index15.d.cts.map +1 -1
  46. package/dist/index15.d.ts +3 -3
  47. package/dist/index15.d.ts.map +1 -1
  48. package/dist/index16.d.cts +2 -2
  49. package/dist/index16.d.cts.map +1 -1
  50. package/dist/index16.d.ts +2 -2
  51. package/dist/index16.d.ts.map +1 -1
  52. package/dist/index17.d.cts +4 -4
  53. package/dist/index17.d.cts.map +1 -1
  54. package/dist/index17.d.ts +4 -4
  55. package/dist/index18.d.cts +11 -11
  56. package/dist/index18.d.cts.map +1 -1
  57. package/dist/index18.d.ts +11 -11
  58. package/dist/index18.d.ts.map +1 -1
  59. package/dist/index19.d.cts +10 -10
  60. package/dist/index19.d.cts.map +1 -1
  61. package/dist/index19.d.ts +10 -10
  62. package/dist/index19.d.ts.map +1 -1
  63. package/dist/index2.d.cts +8 -8
  64. package/dist/index2.d.cts.map +1 -1
  65. package/dist/index2.d.ts +7 -7
  66. package/dist/index20.d.cts +16 -16
  67. package/dist/index20.d.cts.map +1 -1
  68. package/dist/index20.d.ts +16 -16
  69. package/dist/index20.d.ts.map +1 -1
  70. package/dist/index21.d.cts +4 -4
  71. package/dist/index21.d.cts.map +1 -1
  72. package/dist/index21.d.ts +4 -4
  73. package/dist/index21.d.ts.map +1 -1
  74. package/dist/index22.d.cts +11 -11
  75. package/dist/index22.d.ts +11 -11
  76. package/dist/index23.d.cts +16 -16
  77. package/dist/index23.d.cts.map +1 -1
  78. package/dist/index23.d.ts +16 -16
  79. package/dist/index23.d.ts.map +1 -1
  80. package/dist/index24.d.cts +10 -10
  81. package/dist/index24.d.cts.map +1 -1
  82. package/dist/index24.d.ts +11 -11
  83. package/dist/index24.d.ts.map +1 -1
  84. package/dist/index25.d.cts +2 -2
  85. package/dist/index25.d.cts.map +1 -1
  86. package/dist/index25.d.ts +2 -2
  87. package/dist/index25.d.ts.map +1 -1
  88. package/dist/index26.d.cts +13 -13
  89. package/dist/index26.d.cts.map +1 -1
  90. package/dist/index26.d.ts +15 -15
  91. package/dist/index26.d.ts.map +1 -1
  92. package/dist/index27.d.cts +7 -7
  93. package/dist/index27.d.cts.map +1 -1
  94. package/dist/index27.d.ts +7 -7
  95. package/dist/index27.d.ts.map +1 -1
  96. package/dist/index28.d.cts +4 -4
  97. package/dist/index28.d.ts +6 -6
  98. package/dist/index28.d.ts.map +1 -1
  99. package/dist/index29.d.cts +4 -4
  100. package/dist/index29.d.cts.map +1 -1
  101. package/dist/index29.d.ts +4 -4
  102. package/dist/index29.d.ts.map +1 -1
  103. package/dist/index3.d.cts +13 -13
  104. package/dist/index3.d.ts +13 -13
  105. package/dist/index30.d.cts +42 -13
  106. package/dist/index30.d.cts.map +1 -1
  107. package/dist/index30.d.ts +43 -14
  108. package/dist/index30.d.ts.map +1 -1
  109. package/dist/index31.d.cts +5 -5
  110. package/dist/index31.d.cts.map +1 -1
  111. package/dist/index31.d.ts +6 -6
  112. package/dist/index31.d.ts.map +1 -1
  113. package/dist/index32.d.cts +6 -6
  114. package/dist/index32.d.cts.map +1 -1
  115. package/dist/index32.d.ts +6 -6
  116. package/dist/index33.d.cts +11 -11
  117. package/dist/index33.d.cts.map +1 -1
  118. package/dist/index33.d.ts +12 -12
  119. package/dist/index33.d.ts.map +1 -1
  120. package/dist/index34.d.cts +5 -5
  121. package/dist/index34.d.cts.map +1 -1
  122. package/dist/index34.d.ts +5 -5
  123. package/dist/index34.d.ts.map +1 -1
  124. package/dist/index35.d.cts +15 -15
  125. package/dist/index35.d.cts.map +1 -1
  126. package/dist/index35.d.ts +16 -16
  127. package/dist/index35.d.ts.map +1 -1
  128. package/dist/index36.d.cts +3 -3
  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 +6 -6
  133. package/dist/index38.d.cts +2 -2
  134. package/dist/index38.d.ts +2 -2
  135. package/dist/index39.d.cts +17 -17
  136. package/dist/index39.d.cts.map +1 -1
  137. package/dist/index39.d.ts +17 -17
  138. package/dist/index39.d.ts.map +1 -1
  139. package/dist/index4.d.cts +2 -2
  140. package/dist/index4.d.ts +2 -2
  141. package/dist/index40.d.cts +5 -5
  142. package/dist/index40.d.cts.map +1 -1
  143. package/dist/index40.d.ts +6 -6
  144. package/dist/index40.d.ts.map +1 -1
  145. package/dist/index41.d.cts +11 -11
  146. package/dist/index41.d.cts.map +1 -1
  147. package/dist/index41.d.ts +11 -11
  148. package/dist/index41.d.ts.map +1 -1
  149. package/dist/index42.d.cts +8 -8
  150. package/dist/index42.d.cts.map +1 -1
  151. package/dist/index42.d.ts +8 -8
  152. package/dist/index42.d.ts.map +1 -1
  153. package/dist/index43.d.cts +9 -9
  154. package/dist/index43.d.cts.map +1 -1
  155. package/dist/index43.d.ts +9 -9
  156. package/dist/index43.d.ts.map +1 -1
  157. package/dist/index45.d.cts +8 -8
  158. package/dist/index45.d.cts.map +1 -1
  159. package/dist/index45.d.ts +8 -8
  160. package/dist/index45.d.ts.map +1 -1
  161. package/dist/index46.d.cts +2 -2
  162. package/dist/index46.d.cts.map +1 -1
  163. package/dist/index46.d.ts +2 -2
  164. package/dist/index46.d.ts.map +1 -1
  165. package/dist/index47.d.cts +4 -4
  166. package/dist/index47.d.cts.map +1 -1
  167. package/dist/index47.d.ts +4 -4
  168. package/dist/index47.d.ts.map +1 -1
  169. package/dist/index48.d.cts +4 -4
  170. package/dist/index48.d.cts.map +1 -1
  171. package/dist/index48.d.ts +4 -4
  172. package/dist/index48.d.ts.map +1 -1
  173. package/dist/index49.d.cts +3 -3
  174. package/dist/index49.d.ts +3 -3
  175. package/dist/index5.d.cts +7 -7
  176. package/dist/index5.d.ts +7 -7
  177. package/dist/index5.d.ts.map +1 -1
  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 +26 -26
  189. package/dist/index53.d.cts.map +1 -1
  190. package/dist/index53.d.ts +27 -27
  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/index56.d.cts +2 -2
  199. package/dist/index56.d.cts.map +1 -1
  200. package/dist/index56.d.ts +2 -2
  201. package/dist/index56.d.ts.map +1 -1
  202. package/dist/index57.d.cts +2 -2
  203. package/dist/index57.d.cts.map +1 -1
  204. package/dist/index57.d.ts +2 -2
  205. package/dist/index57.d.ts.map +1 -1
  206. package/dist/index58.d.cts +4 -4
  207. package/dist/index58.d.ts +4 -4
  208. package/dist/index58.d.ts.map +1 -1
  209. package/dist/index59.d.cts +9 -9
  210. package/dist/index59.d.ts +9 -9
  211. package/dist/index6.d.cts +6 -6
  212. package/dist/index6.d.cts.map +1 -1
  213. package/dist/index6.d.ts +6 -6
  214. package/dist/index6.d.ts.map +1 -1
  215. package/dist/index60.d.cts +9 -9
  216. package/dist/index60.d.cts.map +1 -1
  217. package/dist/index60.d.ts +13 -13
  218. package/dist/index60.d.ts.map +1 -1
  219. package/dist/index61.d.cts +5 -5
  220. package/dist/index61.d.ts +6 -6
  221. package/dist/index62.d.cts +5 -5
  222. package/dist/index62.d.ts +5 -5
  223. package/dist/index62.d.ts.map +1 -1
  224. package/dist/index63.d.cts +2 -2
  225. package/dist/index63.d.cts.map +1 -1
  226. package/dist/index63.d.ts +2 -2
  227. package/dist/index63.d.ts.map +1 -1
  228. package/dist/index64.d.cts +6 -6
  229. package/dist/index64.d.cts.map +1 -1
  230. package/dist/index64.d.ts +7 -7
  231. package/dist/index65.d.cts +3 -3
  232. package/dist/index65.d.ts +4 -4
  233. package/dist/index65.d.ts.map +1 -1
  234. package/dist/index66.d.cts +4 -4
  235. package/dist/index66.d.cts.map +1 -1
  236. package/dist/index66.d.ts +6 -6
  237. package/dist/index66.d.ts.map +1 -1
  238. package/dist/index67.d.cts +83 -11
  239. package/dist/index67.d.cts.map +1 -1
  240. package/dist/index67.d.ts +83 -11
  241. package/dist/index67.d.ts.map +1 -1
  242. package/dist/index68.d.cts +12 -30
  243. package/dist/index68.d.cts.map +1 -1
  244. package/dist/index68.d.ts +12 -30
  245. package/dist/index68.d.ts.map +1 -1
  246. package/dist/index69.d.cts +28 -27
  247. package/dist/index69.d.cts.map +1 -1
  248. package/dist/index69.d.ts +29 -28
  249. package/dist/index69.d.ts.map +1 -1
  250. package/dist/index7.d.cts +8 -8
  251. package/dist/index7.d.cts.map +1 -1
  252. package/dist/index7.d.ts +8 -8
  253. package/dist/index7.d.ts.map +1 -1
  254. package/dist/index70.d.cts +33 -78
  255. package/dist/index70.d.cts.map +1 -1
  256. package/dist/index70.d.ts +33 -78
  257. package/dist/index70.d.ts.map +1 -1
  258. package/dist/index71.d.cts +77 -258
  259. package/dist/index71.d.cts.map +1 -1
  260. package/dist/index71.d.ts +77 -258
  261. package/dist/index71.d.ts.map +1 -1
  262. package/dist/index72.d.cts +278 -0
  263. package/dist/index72.d.cts.map +1 -0
  264. package/dist/index72.d.ts +278 -0
  265. package/dist/index72.d.ts.map +1 -0
  266. package/dist/index8.d.cts +5 -5
  267. package/dist/index8.d.ts +5 -5
  268. package/dist/index8.d.ts.map +1 -1
  269. package/dist/index9.d.cts +2 -2
  270. package/dist/index9.d.cts.map +1 -1
  271. package/dist/index9.d.ts +2 -2
  272. package/dist/layouts/Container/index.cjs +2 -1
  273. package/dist/layouts/Container/index.cjs.map +1 -1
  274. package/dist/layouts/Container/index.js +1 -1
  275. package/dist/layouts/MultiColumn/index.cjs +5 -0
  276. package/dist/layouts/MultiColumn/index.d.cts +2 -0
  277. package/dist/layouts/MultiColumn/index.d.ts +2 -0
  278. package/dist/layouts/MultiColumn/index.js +2 -0
  279. package/dist/layouts/PageBackground/index.d.cts +1 -1
  280. package/dist/layouts/PageBackground/index.d.ts +1 -1
  281. package/dist/layouts/Stack/index.cjs +2 -1
  282. package/dist/layouts/Stack/index.cjs.map +1 -1
  283. package/dist/layouts/Stack/index.d.cts +1 -1
  284. package/dist/layouts/Stack/index.d.ts +1 -1
  285. package/dist/layouts/Stack/index.js +1 -1
  286. package/dist/layouts/TwoColumn/index.cjs +2 -1
  287. package/dist/layouts/TwoColumn/index.cjs.map +1 -1
  288. package/dist/layouts/TwoColumn/index.d.cts +1 -1
  289. package/dist/layouts/TwoColumn/index.d.ts +1 -1
  290. package/dist/layouts/TwoColumn/index.js +1 -1
  291. package/dist/layouts/index.cjs +4 -0
  292. package/dist/layouts/index.d.cts +5 -4
  293. package/dist/layouts/index.d.ts +5 -4
  294. package/dist/layouts/index.js +2 -1
  295. package/dist/patterns/DataTable/index.cjs +6 -2
  296. package/dist/patterns/DataTable/index.cjs.map +1 -1
  297. package/dist/patterns/DataTable/index.d.cts +3 -3
  298. package/dist/patterns/DataTable/index.d.cts.map +1 -1
  299. package/dist/patterns/DataTable/index.d.ts +3 -3
  300. package/dist/patterns/DataTable/index.d.ts.map +1 -1
  301. package/dist/patterns/DataTable/index.js +6 -2
  302. package/dist/patterns/DataTable/index.js.map +1 -1
  303. package/dist/patterns/Footer/index.d.cts +7 -7
  304. package/dist/patterns/Footer/index.d.cts.map +1 -1
  305. package/dist/patterns/Footer/index.d.ts +7 -7
  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 +14 -14
  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/SectionCard/index.d.ts.map +1 -1
  319. package/dist/patterns/SectionHeading/index.d.cts +2 -2
  320. package/dist/patterns/SectionHeading/index.d.ts +2 -2
  321. package/dist/patterns/SectionHeading/index.d.ts.map +1 -1
  322. package/dist/patterns/index.d.cts +1 -1
  323. package/dist/patterns/index.d.ts +1 -1
  324. package/dist/primitives/Accordion/index.cjs +6 -2
  325. package/dist/primitives/Accordion/index.cjs.map +1 -1
  326. package/dist/primitives/Accordion/index.js +6 -2
  327. package/dist/primitives/Accordion/index.js.map +1 -1
  328. package/dist/primitives/Alert/index.cjs +2 -1
  329. package/dist/primitives/Alert/index.cjs.map +1 -1
  330. package/dist/primitives/Alert/index.js +1 -1
  331. package/dist/primitives/AlertDialog/index.cjs +1 -1
  332. package/dist/primitives/AlertDialog/index.js +1 -1
  333. package/dist/primitives/AspectRatio/index.cjs +1 -1
  334. package/dist/primitives/AspectRatio/index.js +1 -1
  335. package/dist/primitives/Avatar/index.cjs +1 -1
  336. package/dist/primitives/Avatar/index.js +1 -1
  337. package/dist/primitives/Badge/index.cjs +3 -2
  338. package/dist/primitives/Badge/index.cjs.map +1 -1
  339. package/dist/primitives/Badge/index.js +2 -2
  340. package/dist/primitives/Breadcrumb/index.cjs +7 -3
  341. package/dist/primitives/Breadcrumb/index.cjs.map +1 -1
  342. package/dist/primitives/Breadcrumb/index.js +7 -3
  343. package/dist/primitives/Breadcrumb/index.js.map +1 -1
  344. package/dist/primitives/Button/index.cjs +3 -2
  345. package/dist/primitives/Button/index.cjs.map +1 -1
  346. package/dist/primitives/Button/index.js +2 -2
  347. package/dist/primitives/ButtonGroup/index.cjs +3 -2
  348. package/dist/primitives/ButtonGroup/index.cjs.map +1 -1
  349. package/dist/primitives/ButtonGroup/index.js +2 -2
  350. package/dist/primitives/Calendar/index.cjs +12 -11
  351. package/dist/primitives/Calendar/index.cjs.map +1 -1
  352. package/dist/primitives/Calendar/index.js +12 -11
  353. package/dist/primitives/Calendar/index.js.map +1 -1
  354. package/dist/primitives/Card/index.cjs +2 -1
  355. package/dist/primitives/Card/index.cjs.map +1 -1
  356. package/dist/primitives/Card/index.js +1 -1
  357. package/dist/primitives/Carousel/index.cjs +4 -3
  358. package/dist/primitives/Carousel/index.cjs.map +1 -1
  359. package/dist/primitives/Carousel/index.js +4 -3
  360. package/dist/primitives/Carousel/index.js.map +1 -1
  361. package/dist/primitives/Checkbox/index.cjs +9 -2
  362. package/dist/primitives/Checkbox/index.cjs.map +1 -1
  363. package/dist/primitives/Checkbox/index.js +9 -2
  364. package/dist/primitives/Checkbox/index.js.map +1 -1
  365. package/dist/primitives/CheckboxTree/index.cjs +6 -2
  366. package/dist/primitives/CheckboxTree/index.cjs.map +1 -1
  367. package/dist/primitives/CheckboxTree/index.js +6 -2
  368. package/dist/primitives/CheckboxTree/index.js.map +1 -1
  369. package/dist/primitives/Collapsible/index.cjs +1 -1
  370. package/dist/primitives/Collapsible/index.js +1 -1
  371. package/dist/primitives/Command/index.cjs +6 -2
  372. package/dist/primitives/Command/index.cjs.map +1 -1
  373. package/dist/primitives/Command/index.js +6 -2
  374. package/dist/primitives/Command/index.js.map +1 -1
  375. package/dist/primitives/ContextMenu/index.cjs +14 -4
  376. package/dist/primitives/ContextMenu/index.cjs.map +1 -1
  377. package/dist/primitives/ContextMenu/index.js +14 -4
  378. package/dist/primitives/ContextMenu/index.js.map +1 -1
  379. package/dist/primitives/Credits/index.cjs +8 -3
  380. package/dist/primitives/Credits/index.cjs.map +1 -1
  381. package/dist/primitives/Credits/index.js +7 -3
  382. package/dist/primitives/Credits/index.js.map +1 -1
  383. package/dist/primitives/Dialog/index.cjs +3 -2
  384. package/dist/primitives/Dialog/index.cjs.map +1 -1
  385. package/dist/primitives/Dialog/index.js +3 -2
  386. package/dist/primitives/Dialog/index.js.map +1 -1
  387. package/dist/primitives/DropdownMenu/index.cjs +14 -4
  388. package/dist/primitives/DropdownMenu/index.cjs.map +1 -1
  389. package/dist/primitives/DropdownMenu/index.js +14 -4
  390. package/dist/primitives/DropdownMenu/index.js.map +1 -1
  391. package/dist/primitives/Empty/index.cjs +1 -1
  392. package/dist/primitives/Empty/index.js +1 -1
  393. package/dist/primitives/Field/index.cjs +1 -1
  394. package/dist/primitives/Field/index.js +1 -1
  395. package/dist/primitives/Form/index.cjs +1 -1
  396. package/dist/primitives/Form/index.js +1 -1
  397. package/dist/primitives/Heading/index.cjs +2 -1
  398. package/dist/primitives/Heading/index.cjs.map +1 -1
  399. package/dist/primitives/Heading/index.js +1 -1
  400. package/dist/primitives/HoverCard/index.cjs +1 -1
  401. package/dist/primitives/HoverCard/index.js +1 -1
  402. package/dist/primitives/InfoBanner/index.cjs +6 -3
  403. package/dist/primitives/InfoBanner/index.cjs.map +1 -1
  404. package/dist/primitives/InfoBanner/index.js +5 -3
  405. package/dist/primitives/InfoBanner/index.js.map +1 -1
  406. package/dist/primitives/Input/index.cjs +2 -1
  407. package/dist/primitives/Input/index.cjs.map +1 -1
  408. package/dist/primitives/Input/index.js +1 -1
  409. package/dist/primitives/InputGroup/index.cjs +1 -1
  410. package/dist/primitives/InputGroup/index.js +1 -1
  411. package/dist/primitives/InputOtp/index.cjs +3 -2
  412. package/dist/primitives/InputOtp/index.cjs.map +1 -1
  413. package/dist/primitives/InputOtp/index.js +3 -2
  414. package/dist/primitives/InputOtp/index.js.map +1 -1
  415. package/dist/primitives/Item/index.cjs +2 -2
  416. package/dist/primitives/Item/index.js +2 -2
  417. package/dist/primitives/Label/index.cjs +1 -1
  418. package/dist/primitives/Label/index.js +1 -1
  419. package/dist/primitives/Link/index.cjs +3 -2
  420. package/dist/primitives/Link/index.cjs.map +1 -1
  421. package/dist/primitives/Link/index.js +2 -2
  422. package/dist/primitives/Menubar/index.cjs +14 -4
  423. package/dist/primitives/Menubar/index.cjs.map +1 -1
  424. package/dist/primitives/Menubar/index.js +14 -4
  425. package/dist/primitives/Menubar/index.js.map +1 -1
  426. package/dist/primitives/NativeSelect/index.cjs +6 -3
  427. package/dist/primitives/NativeSelect/index.cjs.map +1 -1
  428. package/dist/primitives/NativeSelect/index.js +5 -3
  429. package/dist/primitives/NativeSelect/index.js.map +1 -1
  430. package/dist/primitives/NavigationMenu/index.cjs +5 -3
  431. package/dist/primitives/NavigationMenu/index.cjs.map +1 -1
  432. package/dist/primitives/NavigationMenu/index.js +5 -3
  433. package/dist/primitives/NavigationMenu/index.js.map +1 -1
  434. package/dist/primitives/Pagination/index.cjs +6 -2
  435. package/dist/primitives/Pagination/index.cjs.map +1 -1
  436. package/dist/primitives/Pagination/index.js +6 -2
  437. package/dist/primitives/Pagination/index.js.map +1 -1
  438. package/dist/primitives/Popover/index.cjs +1 -1
  439. package/dist/primitives/Popover/index.js +1 -1
  440. package/dist/primitives/Progress/index.cjs +1 -1
  441. package/dist/primitives/Progress/index.js +1 -1
  442. package/dist/primitives/RadioGroup/index.cjs +6 -2
  443. package/dist/primitives/RadioGroup/index.cjs.map +1 -1
  444. package/dist/primitives/RadioGroup/index.js +6 -2
  445. package/dist/primitives/RadioGroup/index.js.map +1 -1
  446. package/dist/primitives/Resizable/index.cjs +6 -2
  447. package/dist/primitives/Resizable/index.cjs.map +1 -1
  448. package/dist/primitives/Resizable/index.js +6 -2
  449. package/dist/primitives/Resizable/index.js.map +1 -1
  450. package/dist/primitives/ScrollArea/index.cjs +1 -1
  451. package/dist/primitives/ScrollArea/index.js +1 -1
  452. package/dist/primitives/Select/index.cjs +18 -5
  453. package/dist/primitives/Select/index.cjs.map +1 -1
  454. package/dist/primitives/Select/index.js +18 -5
  455. package/dist/primitives/Select/index.js.map +1 -1
  456. package/dist/primitives/Separator/index.cjs +1 -1
  457. package/dist/primitives/Separator/index.js +1 -1
  458. package/dist/primitives/Sheet/index.cjs +6 -2
  459. package/dist/primitives/Sheet/index.cjs.map +1 -1
  460. package/dist/primitives/Sheet/index.js +6 -2
  461. package/dist/primitives/Sheet/index.js.map +1 -1
  462. package/dist/primitives/Slider/index.cjs +1 -1
  463. package/dist/primitives/Slider/index.js +1 -1
  464. package/dist/primitives/Sonner/index.cjs +22 -6
  465. package/dist/primitives/Sonner/index.cjs.map +1 -1
  466. package/dist/primitives/Sonner/index.js +22 -6
  467. package/dist/primitives/Sonner/index.js.map +1 -1
  468. package/dist/primitives/Spinner/index.cjs +4 -2
  469. package/dist/primitives/Spinner/index.cjs.map +1 -1
  470. package/dist/primitives/Spinner/index.js +4 -2
  471. package/dist/primitives/Spinner/index.js.map +1 -1
  472. package/dist/primitives/Switch/index.cjs +1 -1
  473. package/dist/primitives/Switch/index.js +1 -1
  474. package/dist/primitives/Tabs/index.cjs +2 -2
  475. package/dist/primitives/Tabs/index.js +2 -2
  476. package/dist/primitives/Text/index.cjs +2 -1
  477. package/dist/primitives/Text/index.cjs.map +1 -1
  478. package/dist/primitives/Text/index.js +1 -1
  479. package/dist/primitives/Textarea/index.cjs +2 -1
  480. package/dist/primitives/Textarea/index.cjs.map +1 -1
  481. package/dist/primitives/Textarea/index.js +1 -1
  482. package/dist/primitives/Toggle/index.cjs +3 -2
  483. package/dist/primitives/Toggle/index.cjs.map +1 -1
  484. package/dist/primitives/Toggle/index.js +2 -2
  485. package/dist/primitives/ToggleGroup/index.cjs +1 -1
  486. package/dist/primitives/ToggleGroup/index.js +1 -1
  487. package/dist/primitives/Tooltip/index.cjs +1 -1
  488. package/dist/primitives/Tooltip/index.js +1 -1
  489. package/dist/primitives/index.cjs +1 -1
  490. package/dist/primitives/index.js +1 -1
  491. package/package.json +2 -1
package/SKILL.md CHANGED
@@ -12,18 +12,44 @@ component catalog, full token inventory, theming model — is in
12
12
 
13
13
  ## Decision order
14
14
 
15
+ Work down this ladder in order — each step is only allowed after the one above it
16
+ demonstrably can't produce the design:
17
+
15
18
  1. **Pattern first**: does a pattern (`patterns/Header`, `DataTable`, `Footer`,
16
19
  `SectionCard`, `SectionHeading`, `MediaObject`) or layout (`Container`, `Stack`,
17
- `TwoColumn`, `PageBackground`) already solve it? Use it.
20
+ `TwoColumn`, `MultiColumn`, `PageBackground`) already solve it? Use it.
18
21
  2. **Primitive second**: compose from `primitives/*` (64 of them — check the catalog
19
22
  in DESIGN.md §6 before writing anything custom).
20
- 3. **Custom last**: build with token utilities only; never raw colors, never a
21
- parallel component that shadows an existing one.
23
+ 3. **Stock rendering**: render the chosen component with its variants/props as
24
+ designed. Pick the variant from its "Choosing a variant" table in DESIGN.md
25
+ (intent + light/dark look + tell) — don't guess from the variant name.
26
+ 4. **Layout tweaks only**: `className` may place and size the component in its
27
+ context — margin, width, flex/grid placement, alignment. It must never repaint
28
+ it (no `bg-*`/`text-*` color/`border-*` color/`hover:*` on a variant).
29
+ 5. **Exception — last resort, and marked**: only when 1–4 can't get there:
30
+ - **Component missing from the DS** → build custom from token utilities only
31
+ (tokens, px-named radii, `ring-focus`; never raw colors, never `dark:`,
32
+ never a parallel component that shadows an existing one).
33
+ - **Component exists but no variant fits** → do NOT re-skin it (see the
34
+ anti-pattern below); add or request a variant. If you must ship now, mark
35
+ the deviation at the call site so it stays auditable:
36
+ `// DS-EXCEPTION: <why> — <what the DS should provide instead>`
37
+
38
+ Every `DS-EXCEPTION` is a design-system backlog item — sweep them with
39
+ `grep -rn "DS-EXCEPTION"` and either upstream the need into a real
40
+ variant/component or remove the deviation. Exceptions feed the DS; they must
41
+ never silently erode it.
22
42
 
23
43
  Import per subpath: `@psnext/design-system/primitives/Button`. The DS bundles Radix,
24
44
  cva, lucide-react, recharts, sonner, react-hook-form, zod — import primitives from the
25
- DS, not from those libraries directly (exception: `toast()` from `"sonner"`, and
26
- `lucide-react` icons which are the standard icon set).
45
+ DS, not from those libraries directly (exception: `toast()` from `"sonner"`).
46
+
47
+ **Icons**: prefer the DS `Icon` — `<Icon icon="search" />` (typed lucide name, lazy /
48
+ code-split) for content icons, or `<Icon as={Search} />` (sync, bare `<svg>`) with a
49
+ lucide **or a custom** icon component, e.g. inside a component's icon slot. `Icon`
50
+ inherits the surrounding text color by default, so it's correct on a Button; pass
51
+ `color` or a `text-*` class to override. Raw `lucide-react` icons still work as icon-slot
52
+ children (`<Button><Search /></Button>`) — those slots style a direct-child `[&>svg]`.
27
53
 
28
54
  ## Class-writing rules (do / don't)
29
55
 
@@ -38,10 +64,41 @@ DS, not from those libraries directly (exception: `toast()` from `"sonner"`, and
38
64
  | `text-danger-txt` for errors | `text-destructive`, `text-red-500` | severity family is info/success/warning/danger |
39
65
  | `cn(...)` from the DS for merged classes | template-string concat | cn's tailwind-merge knows the numeric radius scale |
40
66
  | suffix matches property: `bg-*-bg`, `text-*-txt` | `text-primary-bg` | token suffix encodes the valid context |
67
+ | pick the variant that already looks right | re-skin a variant with paint classes | variants bundle hover/active/focus states — overrides break them (see below) |
41
68
 
42
69
  Figma → code: px ÷ 4 = spacing step (16px → `p-4`); radius px maps 1:1 (`rounded-12`);
43
70
  heading levels map to `<Heading size={n}>`.
44
71
 
72
+ ## Never re-skin a variant (anti-pattern)
73
+
74
+ A component variant is a **package deal**: rest + hover + active + focus + disabled
75
+ states, tuned together. Overriding its paint with `className` only changes the rest
76
+ state — the interaction states still belong to the original variant, and the result
77
+ is visibly broken.
78
+
79
+ Real failure seen in the wild:
80
+
81
+ ```tsx
82
+ // ✗ WRONG — outline button "made primary" with a bg override
83
+ <Button variant="outline" className="bg-primary-invert-bg text-primary-invert-txt">
84
+ // Looks primary at rest. On hover, outline's own hover:bg-outline-hover-bg fires
85
+ // and the fill flickers to a translucent gray — broken hover, broken contrast.
86
+
87
+ // ✓ RIGHT — that look already exists as a variant
88
+ <Button variant="default">
89
+ ```
90
+
91
+ Rules:
92
+
93
+ - **`className` on a DS component is for layout only** — margin, width, flex/grid
94
+ placement, alignment. Never for paint: `bg-*`, `text-*` color, `border-*` color,
95
+ `hover:*`, `rounded-*` that fight the variant.
96
+ - **If the look you want isn't a variant, that's a DS gap** — don't patch it at the
97
+ call site. Add/request a variant (cva) so the states are designed together.
98
+ - This applies to **every** cva-styled component (Button, Badge, Tabs, Card, Alert, …),
99
+ not just Button. If you catch yourself writing a paint class on one, stop and check
100
+ the component's variant table in DESIGN.md first.
101
+
45
102
  ## Recipes
46
103
 
47
104
  **Page scaffold**
@@ -85,6 +142,27 @@ tokens inside flip; do not hand-pick dark colors.
85
142
  with `cn`); don't wrap in extra divs to fight specificity.
86
143
  - **`!important` on library-styled elements** (e.g. toast classNames) will override
87
144
  richColors/severity styling — scope with `data-[type=…]` variants instead.
145
+ - **App-defined `@layer base` wiping the tokens**: an app that declares its own
146
+ base-layer `:root`/`body` rules (or a reset) can silently override the DS token
147
+ variables — every component then renders colorless while classes look correct.
148
+ Don't redefine base-layer custom properties; put app-level overrides *after* the
149
+ DS styles import, outside `@layer base`.
150
+
151
+ **If the DS token variables are missing entirely** (components render but
152
+ `--primary-bg` etc. aren't on `:root`), walk this tree in order:
153
+
154
+ 1. Devtools → inspect `<html>` → computed styles → search `--primary-bg`.
155
+ Present? The tokens are fine — suspect a wrong class name or missing `@source`.
156
+ 2. Absent → check the Tailwind entry CSS: `@import "tailwindcss"` then
157
+ `@import "@psnext/design-system/styles"`, and **all `@import`s before any other
158
+ statement** (including `@source` — a misplaced import can abort the rest).
159
+ 3. Confirm Tailwind is **v4** and this file is actually compiled by
160
+ `@tailwindcss/vite` / `@tailwindcss/postcss` (not served as plain CSS).
161
+ 4. Check nothing *later* redefines the vars: app `@layer base` blocks, resets, or
162
+ `:root` rules after the import (see the pitfall above — this has happened).
163
+ 5. Isolation test: `@import "@psnext/design-system/dist/styles/tokens/mode-light.css"`.
164
+ If vars appear now, the `/styles` subpath isn't resolving in your bundler —
165
+ report that, don't ship the workaround.
88
166
  - **Logo**: never recolor; wordmark ink follows mode automatically; no ThemeProvider
89
167
  needed.
90
168
 
@@ -2,14 +2,14 @@
2
2
  // Install the design-system agent docs (SKILL.md + DESIGN.md) into a consumer
3
3
  // project as an Agent Skill, so coding agents load them for UI work.
4
4
  //
5
- // npx @psnext/design-system → .agents/skills/design-system/
5
+ // npx @psnext/design-system → .agent/skills/design-system/
6
6
  // npx @psnext/design-system <dir> → <dir>/ (explicit destination)
7
7
  //
8
8
  // The two docs are copied verbatim from the installed package; SKILL.md links to
9
9
  // DESIGN.md as a sibling, so they must land in the same folder (this does that).
10
10
 
11
- import { copyFileSync, existsSync, mkdirSync } from "node:fs";
12
- import { dirname, join, resolve } from "node:path";
11
+ import { copyFileSync, existsSync, mkdirSync, statSync } from "node:fs";
12
+ import { dirname, join, resolve, sep } from "node:path";
13
13
  import { fileURLToPath } from "node:url";
14
14
 
15
15
  const PKG_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
@@ -20,7 +20,7 @@ if (args.includes("--help") || args.includes("-h")) {
20
20
  console.log(`Install @psnext/design-system agent docs as an Agent Skill.
21
21
 
22
22
  Usage:
23
- npx @psnext/design-system Copy SKILL.md + DESIGN.md into .agents/skills/design-system/
23
+ npx @psnext/design-system Copy SKILL.md + DESIGN.md into .agent/skills/design-system/
24
24
  npx @psnext/design-system <dir> Copy into an explicit destination folder
25
25
  npx @psnext/design-system --help Show this help
26
26
 
@@ -32,7 +32,7 @@ The agent then loads the skill when writing or reviewing UI in this project.`);
32
32
  const positional = args.find((a) => !a.startsWith("-"));
33
33
  const dest = positional
34
34
  ? resolve(process.cwd(), positional)
35
- : resolve(process.cwd(), ".agents/skills/design-system");
35
+ : resolve(process.cwd(), ".agent/skills/design-system");
36
36
 
37
37
  for (const doc of DOCS) {
38
38
  const src = join(PKG_ROOT, doc);
@@ -42,13 +42,45 @@ for (const doc of DOCS) {
42
42
  }
43
43
  }
44
44
 
45
- mkdirSync(dest, { recursive: true });
45
+ // Whether the skill was already installed here (a re-run just refreshes the two
46
+ // docs in place) — checked before we create anything.
47
+ const isRefresh = DOCS.every((doc) => existsSync(join(dest, doc)));
48
+
49
+ // Validate/create the destination one level at a time (for the default that's
50
+ // .agent → skills → design-system): reuse a folder that already exists, create
51
+ // the ones that don't, and bail with a clear message if a segment is occupied
52
+ // by a file — otherwise mkdir would fail cryptically. Only walk segments under
53
+ // the cwd; anything outside falls through to the recursive mkdir below.
54
+ const chain = [];
55
+ for (let cur = dest; cur.startsWith(process.cwd() + sep); cur = dirname(cur)) {
56
+ chain.unshift(cur);
57
+ }
58
+ for (const dir of chain) {
59
+ if (existsSync(dir)) {
60
+ if (!statSync(dir).isDirectory()) {
61
+ console.error(`✗ ${dir} already exists but is not a directory — move it aside and re-run.`);
62
+ process.exit(1);
63
+ }
64
+ continue; // reuse the existing folder
65
+ }
66
+ mkdirSync(dir); // parent already ensured by the outer→inner order
67
+ }
68
+
69
+ try {
70
+ mkdirSync(dest, { recursive: true }); // covers a destination outside the cwd
71
+ } catch (err) {
72
+ console.error(`✗ Could not create ${dest}: ${err.message}`);
73
+ process.exit(1);
74
+ }
75
+
46
76
  for (const doc of DOCS) {
47
77
  copyFileSync(join(PKG_ROOT, doc), join(dest, doc));
48
78
  }
49
79
 
50
80
  const rel = dest.startsWith(process.cwd()) ? `.${dest.slice(process.cwd().length)}` : dest;
51
- console.log(`✓ Installed @psnext/design-system agent skill → ${rel}/`);
81
+ console.log(
82
+ `✓ ${isRefresh ? "Refreshed" : "Installed"} @psnext/design-system agent skill → ${rel}/`,
83
+ );
52
84
  console.log(" • SKILL.md — workflow playbook (the Agent Skill entry point)");
53
85
  console.log(" • DESIGN.md — full token + component reference");
54
86
  console.log("\nRe-run this after upgrading the package to refresh the docs.");