erp-pro-ui 0.1.1 → 0.1.3

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 (432) hide show
  1. package/README.md +512 -288
  2. package/dist/accordion.cjs +1 -1
  3. package/dist/accordion.mjs +1 -1
  4. package/dist/alert.cjs +1 -1
  5. package/dist/alert.mjs +1 -1
  6. package/dist/ascii-text.cjs +1 -1
  7. package/dist/ascii-text.mjs +1 -1
  8. package/dist/button.cjs +1 -1
  9. package/dist/button.mjs +1 -1
  10. package/dist/calendar.cjs +1 -1
  11. package/dist/calendar.mjs +1 -1
  12. package/dist/card.cjs +1 -1
  13. package/dist/card.mjs +1 -1
  14. package/dist/carousel.cjs +1 -1
  15. package/dist/carousel.mjs +1 -1
  16. package/dist/catalog.cjs +12 -0
  17. package/dist/catalog.cjs.map +1 -1
  18. package/dist/catalog.d.ts +21 -1
  19. package/dist/catalog.d.ts.map +1 -1
  20. package/dist/catalog.mjs +12 -0
  21. package/dist/catalog.mjs.map +1 -1
  22. package/dist/charts.cjs +5 -1
  23. package/dist/charts.mjs +2 -2
  24. package/dist/checkbox.cjs +1 -1
  25. package/dist/checkbox.mjs +1 -1
  26. package/dist/chip.cjs +1 -1
  27. package/dist/chip.mjs +1 -1
  28. package/dist/chroma-grid.cjs +1 -1
  29. package/dist/chroma-grid.mjs +1 -1
  30. package/dist/chunks/{accordion-C_0oGZkZ.mjs → accordion-Cbt-SJhj.mjs} +4 -4
  31. package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
  32. package/dist/chunks/{accordion-BZ5hyz0_.cjs → accordion-pfJR8YYA.cjs} +4 -4
  33. package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
  34. package/dist/chunks/{alert-DeVa-NR1.mjs → alert-CtdLy4Hv.mjs} +6 -6
  35. package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
  36. package/dist/chunks/{alert-BdBDWqBN.cjs → alert-Dvz1GoL5.cjs} +6 -6
  37. package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
  38. package/dist/chunks/{ascii-text-BzQCLfya.mjs → ascii-text-C5tyNsR3.mjs} +32 -5
  39. package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
  40. package/dist/chunks/{ascii-text-D6lVHWph.cjs → ascii-text-DlmArZXh.cjs} +32 -5
  41. package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
  42. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -1
  43. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -1
  44. package/dist/chunks/{button-CmNEMp_O.mjs → button-B0Lhj0AS.mjs} +3 -3
  45. package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
  46. package/dist/chunks/{button-BH1eUjae.cjs → button-CZL6kFzT.cjs} +3 -3
  47. package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
  48. package/dist/chunks/{calendar-xrGmvukr.cjs → calendar-Cpp_Rc7T.cjs} +58 -17
  49. package/dist/chunks/calendar-Cpp_Rc7T.cjs.map +1 -0
  50. package/dist/chunks/{calendar-BarcG6x_.mjs → calendar-DrCgT_pj.mjs} +58 -17
  51. package/dist/chunks/calendar-DrCgT_pj.mjs.map +1 -0
  52. package/dist/chunks/{card-DZGM4zLx.cjs → card-C5_tFK6Q.cjs} +2 -2
  53. package/dist/chunks/card-C5_tFK6Q.cjs.map +1 -0
  54. package/dist/chunks/{card-CzstAQYy.mjs → card-Dh8wNv8N.mjs} +2 -2
  55. package/dist/chunks/card-Dh8wNv8N.mjs.map +1 -0
  56. package/dist/chunks/{carousel-BJ3nm2bw.mjs → carousel-BYwqI4cA.mjs} +3 -3
  57. package/dist/chunks/{carousel-47Eiyzwg.cjs.map → carousel-BYwqI4cA.mjs.map} +1 -1
  58. package/dist/chunks/{carousel-47Eiyzwg.cjs → carousel-C1338X8h.cjs} +3 -3
  59. package/dist/chunks/{carousel-BJ3nm2bw.mjs.map → carousel-C1338X8h.cjs.map} +1 -1
  60. package/dist/chunks/charts-BYvM4TMG.mjs +886 -0
  61. package/dist/chunks/charts-BYvM4TMG.mjs.map +1 -0
  62. package/dist/chunks/charts-DbxyHtlX.cjs +947 -0
  63. package/dist/chunks/charts-DbxyHtlX.cjs.map +1 -0
  64. package/dist/chunks/{checkbox-DQmZwRTt.cjs → checkbox-CxOcjoGP.cjs} +8 -8
  65. package/dist/chunks/checkbox-CxOcjoGP.cjs.map +1 -0
  66. package/dist/chunks/{checkbox-B3eIojWs.mjs → checkbox-Pr49U9F1.mjs} +8 -8
  67. package/dist/chunks/checkbox-Pr49U9F1.mjs.map +1 -0
  68. package/dist/chunks/{chip-BH6wzwat.cjs → chip-B4ol1yPk.cjs} +12 -12
  69. package/dist/chunks/chip-B4ol1yPk.cjs.map +1 -0
  70. package/dist/chunks/{chip-cZ7-HmWw.mjs → chip-DdnBLdpl.mjs} +12 -12
  71. package/dist/chunks/chip-DdnBLdpl.mjs.map +1 -0
  72. package/dist/chunks/{chroma-grid-CC_fFzxO.mjs → chroma-grid-BAo6V5A7.mjs} +10 -10
  73. package/dist/chunks/chroma-grid-BAo6V5A7.mjs.map +1 -0
  74. package/dist/chunks/{chroma-grid-DtsqM4LW.cjs → chroma-grid-CIk0dsNS.cjs} +10 -10
  75. package/dist/chunks/chroma-grid-CIk0dsNS.cjs.map +1 -0
  76. package/dist/chunks/color-palette-2TuEMkAn.cjs +754 -0
  77. package/dist/chunks/color-palette-2TuEMkAn.cjs.map +1 -0
  78. package/dist/chunks/color-palette-euKQMWlV.mjs +748 -0
  79. package/dist/chunks/color-palette-euKQMWlV.mjs.map +1 -0
  80. package/dist/chunks/{combobox-mAvOcg-E.cjs → combobox-CwGubKTt.cjs} +56 -32
  81. package/dist/chunks/combobox-CwGubKTt.cjs.map +1 -0
  82. package/dist/chunks/combobox-DrFmkI0F.mjs +132 -0
  83. package/dist/chunks/combobox-DrFmkI0F.mjs.map +1 -0
  84. package/dist/chunks/{data-table-Dp0t_I_z.mjs → data-table-Bo80m7qV.mjs} +197 -292
  85. package/dist/chunks/data-table-Bo80m7qV.mjs.map +1 -0
  86. package/dist/chunks/{data-table-BRcGhJDf.cjs → data-table-W1sK5tkL.cjs} +197 -292
  87. package/dist/chunks/data-table-W1sK5tkL.cjs.map +1 -0
  88. package/dist/chunks/date-picker-CNPORxhv.mjs +205 -0
  89. package/dist/chunks/date-picker-CNPORxhv.mjs.map +1 -0
  90. package/dist/chunks/date-picker-CZo68Fkl.cjs +211 -0
  91. package/dist/chunks/date-picker-CZo68Fkl.cjs.map +1 -0
  92. package/dist/chunks/{dialog-Cbuf8V0g.cjs → dialog-CYFiWN8M.cjs} +20 -20
  93. package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
  94. package/dist/chunks/{dialog-C6nxSfIl.mjs → dialog-DUWnV9tN.mjs} +20 -20
  95. package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
  96. package/dist/chunks/{drawer-Dn0u8Sck.cjs → drawer-CLjsYdxN.cjs} +39 -22
  97. package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
  98. package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
  99. package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
  100. package/dist/chunks/{form-TwlDrshv.mjs → form-B2vcaHwh.mjs} +4 -4
  101. package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
  102. package/dist/chunks/{form-DcEuk721.cjs → form-CzH9GQc6.cjs} +4 -4
  103. package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
  104. package/dist/chunks/{gradual-blur-2jVhPcND.cjs → gradual-blur-B9GoY8o1.cjs} +1 -1
  105. package/dist/chunks/{gradual-blur-2jVhPcND.cjs.map → gradual-blur-B9GoY8o1.cjs.map} +1 -1
  106. package/dist/chunks/{gradual-blur-jTzKCmAV.mjs → gradual-blur-Bl3dOMEz.mjs} +1 -1
  107. package/dist/chunks/{gradual-blur-jTzKCmAV.mjs.map → gradual-blur-Bl3dOMEz.mjs.map} +1 -1
  108. package/dist/chunks/{hover-card-KjWMnvt_.cjs → hover-card-v0QwmVBU.cjs} +9 -4
  109. package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
  110. package/dist/chunks/{hover-card-DwTVfjgN.mjs → hover-card-xqwpmZNm.mjs} +9 -4
  111. package/dist/chunks/{hover-card-KjWMnvt_.cjs.map → hover-card-xqwpmZNm.mjs.map} +1 -1
  112. package/dist/chunks/{icons-DYkpqWYG.cjs → icons-BxIzP2jd.cjs} +131 -8
  113. package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
  114. package/dist/chunks/{icons-CrM6pFkv.mjs → icons-DuumN7z-.mjs} +108 -9
  115. package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
  116. package/dist/chunks/input-BWM6G7jq.cjs +117 -0
  117. package/dist/chunks/input-BWM6G7jq.cjs.map +1 -0
  118. package/dist/chunks/input-Bt_r_B_c.mjs +105 -0
  119. package/dist/chunks/input-Bt_r_B_c.mjs.map +1 -0
  120. package/dist/chunks/{label-EciNc4hO.cjs → label-BWPEGVam.cjs} +1 -1
  121. package/dist/chunks/{label-EciNc4hO.cjs.map → label-BWPEGVam.cjs.map} +1 -1
  122. package/dist/chunks/{label-JZn7PmtR.mjs → label-KPA-yYOF.mjs} +1 -1
  123. package/dist/chunks/{label-JZn7PmtR.mjs.map → label-KPA-yYOF.mjs.map} +1 -1
  124. package/dist/chunks/{loading-DPNa_X3c.mjs → loading-S1TdIrbB.mjs} +2 -2
  125. package/dist/chunks/{loading-DPNa_X3c.mjs.map → loading-S1TdIrbB.mjs.map} +1 -1
  126. package/dist/chunks/{loading-Cqgps3nf.cjs → loading-q7IEg56I.cjs} +2 -2
  127. package/dist/chunks/{loading-Cqgps3nf.cjs.map → loading-q7IEg56I.cjs.map} +1 -1
  128. package/dist/chunks/multi-select-combobox-D46M-AN9.mjs +132 -0
  129. package/dist/chunks/multi-select-combobox-D46M-AN9.mjs.map +1 -0
  130. package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs +139 -0
  131. package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs.map +1 -0
  132. package/dist/chunks/{otp-input-DaQDfI9C.cjs → otp-input-DSW9Ca_D.cjs} +13 -14
  133. package/dist/chunks/otp-input-DSW9Ca_D.cjs.map +1 -0
  134. package/dist/chunks/{otp-input-CNungc1j.mjs → otp-input-DeAi4nJ_.mjs} +13 -14
  135. package/dist/chunks/otp-input-DeAi4nJ_.mjs.map +1 -0
  136. package/dist/chunks/{overlay-BfUR77DT.cjs → overlay-DWNTyQzK.cjs} +1 -1
  137. package/dist/chunks/{overlay-BfUR77DT.cjs.map → overlay-DWNTyQzK.cjs.map} +1 -1
  138. package/dist/chunks/{overlay-CpdakhXI.mjs → overlay-TycCIFOu.mjs} +1 -1
  139. package/dist/chunks/{overlay-CpdakhXI.mjs.map → overlay-TycCIFOu.mjs.map} +1 -1
  140. package/dist/chunks/{password-strength-meter-xtMqhhFg.mjs → password-strength-meter-CbNSBuh_.mjs} +10 -10
  141. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
  142. package/dist/chunks/{password-strength-meter-u4YI00zE.cjs → password-strength-meter-DxMV6GAs.cjs} +10 -10
  143. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
  144. package/dist/chunks/progress-bar-B9sy7WBT.mjs +89 -0
  145. package/dist/chunks/progress-bar-B9sy7WBT.mjs.map +1 -0
  146. package/dist/chunks/progress-bar-BdvQtpm3.cjs +96 -0
  147. package/dist/chunks/progress-bar-BdvQtpm3.cjs.map +1 -0
  148. package/dist/chunks/{radio-C-fPZgSY.mjs → radio-C9w_CoiY.mjs} +9 -9
  149. package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
  150. package/dist/chunks/{radio-mCgvEhOR.cjs → radio-jMHDvaMY.cjs} +9 -9
  151. package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
  152. package/dist/chunks/select-B8UQ6Uq5.mjs +170 -0
  153. package/dist/chunks/select-B8UQ6Uq5.mjs.map +1 -0
  154. package/dist/chunks/select-CCUSMvfS.cjs +176 -0
  155. package/dist/chunks/select-CCUSMvfS.cjs.map +1 -0
  156. package/dist/chunks/{skeleton-D1S4RyeL.mjs → skeleton-BhYWOp0Q.mjs} +1 -1
  157. package/dist/chunks/{skeleton-D1S4RyeL.mjs.map → skeleton-BhYWOp0Q.mjs.map} +1 -1
  158. package/dist/chunks/{skeleton-C-NHrM-w.cjs → skeleton-DTXpHYYB.cjs} +1 -1
  159. package/dist/chunks/{skeleton-C-NHrM-w.cjs.map → skeleton-DTXpHYYB.cjs.map} +1 -1
  160. package/dist/chunks/{spinners-hf553hP9.mjs → spinners-BBCWD2gw.mjs} +2 -2
  161. package/dist/chunks/{spinners-hf553hP9.mjs.map → spinners-BBCWD2gw.mjs.map} +1 -1
  162. package/dist/chunks/{spinners-CU3bLaoo.cjs → spinners-BL4ERCCw.cjs} +2 -2
  163. package/dist/chunks/{spinners-CU3bLaoo.cjs.map → spinners-BL4ERCCw.cjs.map} +1 -1
  164. package/dist/chunks/{splash-cursor-Dpzl_YXx.cjs → splash-cursor-BVSmbcIX.cjs} +9 -8
  165. package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
  166. package/dist/chunks/{splash-cursor-9BsoQZl0.mjs → splash-cursor-rSrTnawZ.mjs} +9 -8
  167. package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
  168. package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs → spotlight-card-BpZLMOp6.mjs} +1 -1
  169. package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs.map → spotlight-card-BpZLMOp6.mjs.map} +1 -1
  170. package/dist/chunks/{spotlight-card-SUhrgstF.cjs → spotlight-card-DS1dy1W3.cjs} +1 -1
  171. package/dist/chunks/{spotlight-card-SUhrgstF.cjs.map → spotlight-card-DS1dy1W3.cjs.map} +1 -1
  172. package/dist/chunks/stepper-D6qQbZdg.cjs +642 -0
  173. package/dist/chunks/stepper-D6qQbZdg.cjs.map +1 -0
  174. package/dist/chunks/stepper-DUknuW2E.mjs +618 -0
  175. package/dist/chunks/stepper-DUknuW2E.mjs.map +1 -0
  176. package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs → sun-to-moon-button-B2Aje05o.mjs} +3 -3
  177. package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs.map → sun-to-moon-button-B2Aje05o.mjs.map} +1 -1
  178. package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs → sun-to-moon-button-BmFwRBye.cjs} +3 -3
  179. package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs.map → sun-to-moon-button-BmFwRBye.cjs.map} +1 -1
  180. package/dist/chunks/{switch-y8oWcyLp.cjs → switch-C5otDb4c.cjs} +3 -3
  181. package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
  182. package/dist/chunks/{switch-DYLavKgf.mjs → switch-DOVl_i_s.mjs} +3 -3
  183. package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
  184. package/dist/chunks/textarea-Blky_fLK.mjs +57 -0
  185. package/dist/chunks/textarea-Blky_fLK.mjs.map +1 -0
  186. package/dist/chunks/textarea-ok_NlE2p.cjs +63 -0
  187. package/dist/chunks/textarea-ok_NlE2p.cjs.map +1 -0
  188. package/dist/chunks/{theme-CBtWIFMT.cjs → theme-7DWLxJK_.cjs} +4 -2
  189. package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
  190. package/dist/chunks/{theme-Bwu0HKqZ.mjs → theme-BceKeYhw.mjs} +4 -2
  191. package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
  192. package/dist/chunks/{toast-C8JRhbSo.mjs → toast-CvfP7PUP.mjs} +20 -20
  193. package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
  194. package/dist/chunks/{toast-DWOwpD2F.cjs → toast-Ds7_19Ap.cjs} +20 -20
  195. package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
  196. package/dist/chunks/{tooltip-YtA_66_1.mjs → tooltip-efHETBo1.mjs} +1 -1
  197. package/dist/chunks/{tooltip-YtA_66_1.mjs.map → tooltip-efHETBo1.mjs.map} +1 -1
  198. package/dist/chunks/{tooltip-BHXNmXsa.cjs → tooltip-nkIqViGk.cjs} +1 -1
  199. package/dist/chunks/{tooltip-BHXNmXsa.cjs.map → tooltip-nkIqViGk.cjs.map} +1 -1
  200. package/dist/chunks/{typography-BzprBnQc.mjs → typography-CLu6Hx9j.mjs} +7 -3
  201. package/dist/chunks/{typography-BzprBnQc.mjs.map → typography-CLu6Hx9j.mjs.map} +1 -1
  202. package/dist/chunks/{typography-3wSx67DZ.cjs → typography-DaLu9tty.cjs} +7 -3
  203. package/dist/chunks/{typography-3wSx67DZ.cjs.map → typography-DaLu9tty.cjs.map} +1 -1
  204. package/dist/color-palette.cjs +1 -1
  205. package/dist/color-palette.mjs +1 -1
  206. package/dist/colors.css +123 -185
  207. package/dist/combobox.cjs +1 -1
  208. package/dist/combobox.mjs +1 -1
  209. package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -1
  210. package/dist/components/data-display/charts/BarChart.d.ts +1 -0
  211. package/dist/components/data-display/charts/BarChart.d.ts.map +1 -1
  212. package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -1
  213. package/dist/components/data-display/charts/PieChart.d.ts +18 -2
  214. package/dist/components/data-display/charts/PieChart.d.ts.map +1 -1
  215. package/dist/components/data-display/charts/PositiveNegativeBarChart.d.ts +21 -0
  216. package/dist/components/data-display/charts/PositiveNegativeBarChart.d.ts.map +1 -0
  217. package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -1
  218. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts +3 -0
  219. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
  220. package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
  221. package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
  222. package/dist/components/data-display/charts/chartStyles.d.ts +24 -0
  223. package/dist/components/data-display/charts/chartStyles.d.ts.map +1 -0
  224. package/dist/components/data-display/charts/index.d.ts +4 -0
  225. package/dist/components/data-display/charts/index.d.ts.map +1 -1
  226. package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
  227. package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
  228. package/dist/components/data-display/data-table/DataTable.d.ts +17 -10
  229. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  230. package/dist/components/data-display/data-table/index.d.ts +1 -1
  231. package/dist/components/data-display/data-table/index.d.ts.map +1 -1
  232. package/dist/components/data-display/index.d.ts +1 -0
  233. package/dist/components/data-display/index.d.ts.map +1 -1
  234. package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
  235. package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
  236. package/dist/components/data-display/progress-bar/index.d.ts +3 -0
  237. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  238. package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -1
  239. package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -1
  240. package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -1
  241. package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -1
  242. package/dist/components/forms/calendar/Calendar.d.ts.map +1 -1
  243. package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
  244. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
  245. package/dist/components/forms/input/Input.d.ts.map +1 -1
  246. package/dist/components/forms/input/types.d.ts +5 -0
  247. package/dist/components/forms/input/types.d.ts.map +1 -1
  248. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -1
  249. package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -1
  250. package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -1
  251. package/dist/components/forms/select/Select.d.ts.map +1 -1
  252. package/dist/components/forms/select/types.d.ts +9 -1
  253. package/dist/components/forms/select/types.d.ts.map +1 -1
  254. package/dist/components/forms/textarea/Textarea.d.ts.map +1 -1
  255. package/dist/components/icons/ColumnsIcon.d.ts +9 -0
  256. package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
  257. package/dist/components/icons/MailIcon.d.ts +9 -0
  258. package/dist/components/icons/MailIcon.d.ts.map +1 -0
  259. package/dist/components/icons/PlayIcon.d.ts +9 -0
  260. package/dist/components/icons/PlayIcon.d.ts.map +1 -0
  261. package/dist/components/icons/ZapIcon.d.ts +9 -0
  262. package/dist/components/icons/ZapIcon.d.ts.map +1 -0
  263. package/dist/components/icons/index.d.ts +4 -0
  264. package/dist/components/icons/index.d.ts.map +1 -1
  265. package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -1
  266. package/dist/components/navigation/stepper/Stepper1.d.ts +4 -0
  267. package/dist/components/navigation/stepper/Stepper1.d.ts.map +1 -0
  268. package/dist/components/navigation/stepper/Stepper2.d.ts +5 -0
  269. package/dist/components/navigation/stepper/Stepper2.d.ts.map +1 -0
  270. package/dist/components/navigation/stepper/index.d.ts +4 -1
  271. package/dist/components/navigation/stepper/index.d.ts.map +1 -1
  272. package/dist/components/navigation/stepper/types.d.ts +85 -0
  273. package/dist/components/navigation/stepper/types.d.ts.map +1 -1
  274. package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -1
  275. package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -1
  276. package/dist/components/typography/Typography.d.ts.map +1 -1
  277. package/dist/data-table.cjs +1 -1
  278. package/dist/data-table.mjs +1 -1
  279. package/dist/date-picker.cjs +1 -1
  280. package/dist/date-picker.mjs +1 -1
  281. package/dist/dialog.cjs +1 -1
  282. package/dist/dialog.mjs +1 -1
  283. package/dist/docs.cjs +60 -4
  284. package/dist/docs.cjs.map +1 -1
  285. package/dist/docs.d.ts +59 -9
  286. package/dist/docs.d.ts.map +1 -1
  287. package/dist/docs.mjs +60 -4
  288. package/dist/docs.mjs.map +1 -1
  289. package/dist/drawer.cjs +1 -1
  290. package/dist/drawer.mjs +1 -1
  291. package/dist/fonts.css +5 -0
  292. package/dist/form.cjs +1 -1
  293. package/dist/form.mjs +1 -1
  294. package/dist/foundation.css +10 -3
  295. package/dist/foundations/theme/ThemeProvider.d.ts +1 -0
  296. package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
  297. package/dist/gradual-blur.cjs +1 -1
  298. package/dist/gradual-blur.mjs +1 -1
  299. package/dist/hover-card.cjs +1 -1
  300. package/dist/hover-card.mjs +1 -1
  301. package/dist/icons.cjs +5 -1
  302. package/dist/icons.mjs +2 -2
  303. package/dist/index.cjs +56 -42
  304. package/dist/index.cjs.map +1 -1
  305. package/dist/index.d.ts +8 -4
  306. package/dist/index.d.ts.map +1 -1
  307. package/dist/index.mjs +44 -43
  308. package/dist/index.mjs.map +1 -1
  309. package/dist/input.cjs +1 -1
  310. package/dist/input.mjs +1 -1
  311. package/dist/label.cjs +1 -1
  312. package/dist/label.mjs +1 -1
  313. package/dist/loading.cjs +1 -1
  314. package/dist/loading.mjs +1 -1
  315. package/dist/multi-select-combobox.cjs +1 -1
  316. package/dist/multi-select-combobox.mjs +1 -1
  317. package/dist/otp-input.cjs +1 -1
  318. package/dist/otp-input.mjs +1 -1
  319. package/dist/password-strength-meter.cjs +1 -1
  320. package/dist/password-strength-meter.mjs +1 -1
  321. package/dist/progress-bar.cjs +3 -0
  322. package/dist/progress-bar.d.ts +2 -0
  323. package/dist/progress-bar.mjs +2 -0
  324. package/dist/radio.cjs +1 -1
  325. package/dist/radio.mjs +1 -1
  326. package/dist/select.cjs +1 -1
  327. package/dist/select.mjs +1 -1
  328. package/dist/skeleton.cjs +1 -1
  329. package/dist/skeleton.mjs +1 -1
  330. package/dist/spinners.cjs +1 -1
  331. package/dist/spinners.mjs +1 -1
  332. package/dist/splash-cursor.cjs +1 -1
  333. package/dist/splash-cursor.mjs +1 -1
  334. package/dist/spotlight-card.cjs +1 -1
  335. package/dist/spotlight-card.mjs +1 -1
  336. package/dist/stepper.cjs +5 -1
  337. package/dist/stepper.mjs +2 -2
  338. package/dist/sun-to-moon-button.cjs +1 -1
  339. package/dist/sun-to-moon-button.mjs +1 -1
  340. package/dist/switch.cjs +1 -1
  341. package/dist/switch.mjs +1 -1
  342. package/dist/textarea.cjs +1 -1
  343. package/dist/textarea.mjs +1 -1
  344. package/dist/theme.cjs +1 -1
  345. package/dist/theme.mjs +1 -1
  346. package/dist/toast.cjs +1 -1
  347. package/dist/toast.mjs +1 -1
  348. package/dist/tokens.css +601 -0
  349. package/dist/tooltip.cjs +1 -1
  350. package/dist/tooltip.mjs +1 -1
  351. package/dist/typography.cjs +1 -1
  352. package/dist/typography.mjs +1 -1
  353. package/package.json +20 -6
  354. package/dist/chunks/accordion-BZ5hyz0_.cjs.map +0 -1
  355. package/dist/chunks/accordion-C_0oGZkZ.mjs.map +0 -1
  356. package/dist/chunks/alert-BdBDWqBN.cjs.map +0 -1
  357. package/dist/chunks/alert-DeVa-NR1.mjs.map +0 -1
  358. package/dist/chunks/ascii-text-BzQCLfya.mjs.map +0 -1
  359. package/dist/chunks/ascii-text-D6lVHWph.cjs.map +0 -1
  360. package/dist/chunks/button-BH1eUjae.cjs.map +0 -1
  361. package/dist/chunks/button-CmNEMp_O.mjs.map +0 -1
  362. package/dist/chunks/calendar-BarcG6x_.mjs.map +0 -1
  363. package/dist/chunks/calendar-xrGmvukr.cjs.map +0 -1
  364. package/dist/chunks/card-CzstAQYy.mjs.map +0 -1
  365. package/dist/chunks/card-DZGM4zLx.cjs.map +0 -1
  366. package/dist/chunks/charts-Bynf6x07.mjs +0 -448
  367. package/dist/chunks/charts-Bynf6x07.mjs.map +0 -1
  368. package/dist/chunks/charts-UYl7Ecqv.cjs +0 -485
  369. package/dist/chunks/charts-UYl7Ecqv.cjs.map +0 -1
  370. package/dist/chunks/checkbox-B3eIojWs.mjs.map +0 -1
  371. package/dist/chunks/checkbox-DQmZwRTt.cjs.map +0 -1
  372. package/dist/chunks/chip-BH6wzwat.cjs.map +0 -1
  373. package/dist/chunks/chip-cZ7-HmWw.mjs.map +0 -1
  374. package/dist/chunks/chroma-grid-CC_fFzxO.mjs.map +0 -1
  375. package/dist/chunks/chroma-grid-DtsqM4LW.cjs.map +0 -1
  376. package/dist/chunks/color-palette-Cz7vqbil.cjs +0 -1156
  377. package/dist/chunks/color-palette-Cz7vqbil.cjs.map +0 -1
  378. package/dist/chunks/color-palette-yadpDCUw.mjs +0 -1150
  379. package/dist/chunks/color-palette-yadpDCUw.mjs.map +0 -1
  380. package/dist/chunks/combobox-B9Nzlhu3.mjs +0 -108
  381. package/dist/chunks/combobox-B9Nzlhu3.mjs.map +0 -1
  382. package/dist/chunks/combobox-mAvOcg-E.cjs.map +0 -1
  383. package/dist/chunks/data-table-BRcGhJDf.cjs.map +0 -1
  384. package/dist/chunks/data-table-Dp0t_I_z.mjs.map +0 -1
  385. package/dist/chunks/date-picker-BWBkr6LG.mjs +0 -112
  386. package/dist/chunks/date-picker-BWBkr6LG.mjs.map +0 -1
  387. package/dist/chunks/date-picker-DooielHi.cjs +0 -118
  388. package/dist/chunks/date-picker-DooielHi.cjs.map +0 -1
  389. package/dist/chunks/dialog-C6nxSfIl.mjs.map +0 -1
  390. package/dist/chunks/dialog-Cbuf8V0g.cjs.map +0 -1
  391. package/dist/chunks/drawer-DIuvgqTA.mjs +0 -105
  392. package/dist/chunks/drawer-DIuvgqTA.mjs.map +0 -1
  393. package/dist/chunks/drawer-Dn0u8Sck.cjs.map +0 -1
  394. package/dist/chunks/form-DcEuk721.cjs.map +0 -1
  395. package/dist/chunks/form-TwlDrshv.mjs.map +0 -1
  396. package/dist/chunks/hover-card-DwTVfjgN.mjs.map +0 -1
  397. package/dist/chunks/icons-CrM6pFkv.mjs.map +0 -1
  398. package/dist/chunks/icons-DYkpqWYG.cjs.map +0 -1
  399. package/dist/chunks/input-ChhwdNGk.mjs +0 -87
  400. package/dist/chunks/input-ChhwdNGk.mjs.map +0 -1
  401. package/dist/chunks/input-CoRHoZkB.cjs +0 -99
  402. package/dist/chunks/input-CoRHoZkB.cjs.map +0 -1
  403. package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs +0 -108
  404. package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs.map +0 -1
  405. package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs +0 -115
  406. package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs.map +0 -1
  407. package/dist/chunks/otp-input-CNungc1j.mjs.map +0 -1
  408. package/dist/chunks/otp-input-DaQDfI9C.cjs.map +0 -1
  409. package/dist/chunks/password-strength-meter-u4YI00zE.cjs.map +0 -1
  410. package/dist/chunks/password-strength-meter-xtMqhhFg.mjs.map +0 -1
  411. package/dist/chunks/radio-C-fPZgSY.mjs.map +0 -1
  412. package/dist/chunks/radio-mCgvEhOR.cjs.map +0 -1
  413. package/dist/chunks/select-BB-pOzI2.mjs +0 -116
  414. package/dist/chunks/select-BB-pOzI2.mjs.map +0 -1
  415. package/dist/chunks/select-BwelAQc1.cjs +0 -122
  416. package/dist/chunks/select-BwelAQc1.cjs.map +0 -1
  417. package/dist/chunks/splash-cursor-9BsoQZl0.mjs.map +0 -1
  418. package/dist/chunks/splash-cursor-Dpzl_YXx.cjs.map +0 -1
  419. package/dist/chunks/stepper-BDz6PkjV.cjs +0 -267
  420. package/dist/chunks/stepper-BDz6PkjV.cjs.map +0 -1
  421. package/dist/chunks/stepper-uz8iRzlY.mjs +0 -261
  422. package/dist/chunks/stepper-uz8iRzlY.mjs.map +0 -1
  423. package/dist/chunks/switch-DYLavKgf.mjs.map +0 -1
  424. package/dist/chunks/switch-y8oWcyLp.cjs.map +0 -1
  425. package/dist/chunks/textarea-BWkUVpm3.cjs +0 -66
  426. package/dist/chunks/textarea-BWkUVpm3.cjs.map +0 -1
  427. package/dist/chunks/textarea-Bxqe70TW.mjs +0 -60
  428. package/dist/chunks/textarea-Bxqe70TW.mjs.map +0 -1
  429. package/dist/chunks/theme-Bwu0HKqZ.mjs.map +0 -1
  430. package/dist/chunks/theme-CBtWIFMT.cjs.map +0 -1
  431. package/dist/chunks/toast-C8JRhbSo.mjs.map +0 -1
  432. package/dist/chunks/toast-DWOwpD2F.cjs.map +0 -1
package/README.md CHANGED
@@ -1,403 +1,627 @@
1
1
  # erp-pro-ui
2
2
 
3
- Premium UI component library for ERP and SaaS applications.
3
+ Typed React 19 component library for ERP, admin, and SaaS products.
4
4
 
5
- ## Features
5
+ This package is designed to be consumed from a different project, not only inside this monorepo. It ships compiled styles, typed components, root imports, subpath imports, icons, helpers, machine-readable docs metadata, and a publishable npm package surface.
6
6
 
7
- - 🚀 **50+ Premium Components**: From basic buttons to complex data tables and charts.
8
- - 🎨 **Modern Aesthetics**: Sleek, glassmorphic, and highly interactive designs.
9
- - 📊 **Advanced Charts**: Customizable Neon Line Charts, Stacked Bar Charts, and more.
10
- - ⌨️ **Accessibility**: Built with accessibility and responsiveness in mind.
11
- - 🛠️ **Developer Friendly**: Fully typed with TypeScript and easy to integrate.
7
+ Live docs: [daniel-heydari-dev.github.io/erp-pro-ui](https://daniel-heydari-dev.github.io/erp-pro-ui/)
8
+
9
+ ## What You Get
10
+
11
+ - React 19 components for forms, overlays, navigation, data display, charts, typography, and visual effects.
12
+ - Shared theme provider and toast provider for app-level wiring.
13
+ - Flat public API with optional subpath imports for smaller consumer bundles.
14
+ - Shared icon components from one folder and one barrel export.
15
+ - Structured docs exports from `erp-pro-ui/docs` and `erp-pro-ui/catalog`.
12
16
 
13
17
  ## Installation
14
18
 
19
+ Install the package and its required React peer dependencies:
20
+
15
21
  ```bash
16
- pnpm add erp-pro-ui
17
- # or
18
- npm install erp-pro-ui
19
- # or
20
- yarn add erp-pro-ui
22
+ npm install erp-pro-ui react react-dom
21
23
  ```
22
24
 
23
- ### Peer Dependencies
24
-
25
- Ensure you have the following peer dependencies installed:
25
+ Install optional peers only if you use the components that need them:
26
26
 
27
27
  ```bash
28
- pnpm add framer-motion three @react-three/fiber @react-three/drei @tanstack/react-table recharts lucide-react
28
+ npm install framer-motion @tanstack/react-table three
29
29
  ```
30
30
 
31
- ### Font Setup (Geist)
31
+ ### Peer Dependency Guide
32
32
 
33
- Add to your HTML `<head>`:
33
+ | Package | Required | Used by |
34
+ | ----------------------- | -------- | ---------------------------------------------------------------------------------------------------- |
35
+ | `react` | Yes | All components |
36
+ | `react-dom` | Yes | All components |
37
+ | `framer-motion` | Optional | Dialog, Drawer, Toast, Carousel, AnimatedContent, GradualBlur, SpotlightCard, several visual effects |
38
+ | `@tanstack/react-table` | Optional | DataTable |
39
+ | `three` | Optional | 3D and visual effect components that depend on Three.js-backed rendering |
34
40
 
35
- ```html
36
- <link rel="preconnect" href="https://fonts.googleapis.com" />
37
- <link
38
- href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap"
39
- rel="stylesheet"
40
- />
41
+ `recharts`, `clsx`, and `tailwind-merge` are regular package dependencies and do not need to be installed separately in the consuming app.
42
+
43
+ ## Setup In Another Project
44
+
45
+ ### 1. Import the package styles once
46
+
47
+ In your global stylesheet:
48
+
49
+ ```css
50
+ @import "tailwindcss";
51
+ @import "erp-pro-ui/styles.css";
41
52
  ```
42
53
 
43
- In your Tailwind config, extend `fontFamily`:
54
+ That single import already loads the packaged colors, fonts, foundations, and generated Tailwind v4 tokens. You do not need a local Tailwind theme extension just to use the library palette.
44
55
 
45
- ```js
46
- fontFamily: {
47
- geist: ['Geist', 'sans-serif'],
48
- }
56
+ Prefer the semantic utilities and `--ds-*` tokens in new code. The older `--color-*` and `primary-*` aliases are still shipped as a migration surface, not as the preferred authoring API.
57
+
58
+ If you only want the raw design tokens without the Tailwind bridge, import the internal token layer directly instead:
59
+
60
+ ```css
61
+ @import "erp-pro-ui/tokens.css";
49
62
  ```
50
63
 
51
- ## 🚀 Quick Start
64
+ If you want just the token bridge and fonts without the rest of the library styles, import them directly instead:
52
65
 
53
66
  ```css
54
67
  @import "tailwindcss";
55
- @import "erp-pro-ui/styles.css";
68
+ @import "erp-pro-ui/colors.css";
69
+ @import "erp-pro-ui/fonts.css";
56
70
  ```
57
71
 
72
+ ### 2. Wrap the app with providers
73
+
74
+ Use `ThemeProvider` if you want the built-in light/dark theme context. Use `ToastProvider` if you want to call `useToast()` anywhere in the app.
75
+
58
76
  ```tsx
59
- import { ThemeProvider, Button, Input, Typography } from "erp-pro-ui";
77
+ import React from "react";
78
+ import ReactDOM from "react-dom/client";
60
79
 
61
- function App() {
62
- return (
80
+ import { ThemeProvider, ToastProvider } from "erp-pro-ui";
81
+
82
+ import "./styles.css";
83
+ import { App } from "./App";
84
+
85
+ ReactDOM.createRoot(document.getElementById("root")!).render(
86
+ <React.StrictMode>
63
87
  <ThemeProvider>
64
- <Typography variant="h1" gradient="ocean">
65
- Welcome to ERP Pro
66
- </Typography>
67
- <Input label="Email" placeholder="you@company.com" />
68
- <Button primary label="Get Started" />
88
+ <ToastProvider>
89
+ <App />
90
+ </ToastProvider>
69
91
  </ThemeProvider>
92
+ </React.StrictMode>,
93
+ );
94
+ ```
95
+
96
+ ### 3. Start using components
97
+
98
+ ```tsx
99
+ import { Button, Card, Input, Typography } from "erp-pro-ui";
100
+
101
+ export function App() {
102
+ return (
103
+ <Card>
104
+ <Typography variant="h2">Welcome</Typography>
105
+ <Input label="Email" placeholder="you@company.com" />
106
+ <Button primary>Continue</Button>
107
+ </Card>
70
108
  );
71
109
  }
72
110
  ```
73
111
 
74
- ## 🧱 Package Contract
112
+ ### Next.js note
75
113
 
76
- `erp-pro-ui` publishes reusable UI primitives and domain components.
114
+ If you use Next.js, import `erp-pro-ui/styles.css` from your app-level global stylesheet and place `ThemeProvider` and `ToastProvider` in your shared app provider wrapper or root layout client boundary.
77
115
 
78
- - Import `tailwindcss` in your app stylesheet, then import `erp-pro-ui/styles.css` once to load the shared tokens and theme presets.
79
- - Use root imports for convenience: `import { Button, Dialog } from 'erp-pro-ui'`
80
- - Use subpath imports for leaner consumer bundles: `import { Button } from 'erp-pro-ui/button'`
81
- - Use `erp-pro-ui/docs` when another tool, app, or script needs structured install and component metadata.
82
- - Do not import from `src/**` or internal grouped folders; those paths are implementation details and may change between releases.
83
- - Composite showcase pages are intentionally excluded from the public API. Build those in your app by composing exported primitives.
116
+ ## Colors And Fonts In Another Project
84
117
 
85
- ## 📚 Portable Docs Export
118
+ The library now ships a two-layer theme contract so another project can use the same tokens without copying theme config:
86
119
 
87
- `erp-pro-ui` now ships a machine-readable docs surface at `erp-pro-ui/docs`.
120
+ - `erp-pro-ui/tokens.css`: raw `--ds-*` tokens plus compatibility CSS variables
121
+ - `erp-pro-ui/colors.css`: Tailwind v4 `@theme` bridge that generates semantic utilities
122
+ - `erp-pro-ui/styles.css`: full package stylesheet, including fonts, tokens, bridge, foundations, and animations
88
123
 
89
- Use it when you need to power another docs site, custom CLI tooling, AI prompts,
90
- or project-specific scaffolding without reaching into the web app source.
124
+ ### Use the generated utility classes
91
125
 
92
- ```tsx
93
- import {
94
- getComponentDocByName,
95
- libraryDocs,
96
- searchComponentDocs,
97
- } from "erp-pro-ui/docs";
98
-
99
- const button = getComponentDocByName("Button");
100
- const chartComponents = searchComponentDocs("chart");
126
+ After importing `erp-pro-ui/styles.css` or `erp-pro-ui/colors.css`, you can use the semantic Tailwind v4 utilities directly:
101
127
 
102
- console.log(libraryDocs.installSteps);
103
- console.log(button?.rootImport);
104
- console.log(chartComponents.map((component) => component.name));
128
+ ```tsx
129
+ export function ThemePreview() {
130
+ return (
131
+ <section className="bg-surface text-fg border border-border rounded-2xl p-6 shadow-2 font-sans">
132
+ <h2 className="text-accent text-2xl font-semibold">
133
+ Semantic theme utilities
134
+ </h2>
135
+ <p className="text-fg-muted">
136
+ These classes come from erp-pro-ui. No local Tailwind theme extension is
137
+ required.
138
+ </p>
139
+ <div className="mt-4 flex gap-3">
140
+ <span className="bg-accent text-on-accent rounded-full px-3 py-1">
141
+ Accent
142
+ </span>
143
+ <span className="bg-accent-subtle text-accent rounded-full px-3 py-1">
144
+ Accent Subtle
145
+ </span>
146
+ <span className="bg-success-subtle text-success rounded-full px-3 py-1">
147
+ Success
148
+ </span>
149
+ </div>
150
+ </section>
151
+ );
152
+ }
105
153
  ```
106
154
 
107
- The docs bundle includes:
108
-
109
- - package-level summary and feature highlights
110
- - install steps and peer dependency guidance
111
- - quick start examples
112
- - a complete component inventory with slugs, Storybook titles, docs URLs, and supported import paths
113
- - helpers for exact component lookup and component search
155
+ ### Use the CSS variables directly
114
156
 
115
- ## 🤖 MCP Server
157
+ You can also use the readable CSS variables in plain CSS, CSS Modules, or inline styles:
116
158
 
117
- For AI-assisted workflows, use the companion MCP package:
159
+ ```css
160
+ .dashboard-shell {
161
+ background: var(--ds-color-bg-surface);
162
+ color: var(--ds-color-fg);
163
+ border: 1px solid var(--ds-color-border);
164
+ box-shadow: var(--ds-shadow-2);
165
+ font-family: var(--font-sans);
166
+ }
118
167
 
119
- ```bash
120
- npx -y erp-pro-ui-mcp-server
121
- ```
168
+ .dashboard-shell a {
169
+ color: var(--ds-color-accent);
170
+ }
122
171
 
123
- Example MCP client configuration:
172
+ .dashboard-shell .status-info {
173
+ color: var(--ds-color-info);
174
+ }
124
175
 
125
- ```json
126
- {
127
- "mcpServers": {
128
- "erp-pro-ui": {
129
- "command": "npx",
130
- "args": ["-y", "erp-pro-ui-mcp-server"]
131
- }
132
- }
176
+ .dashboard-shell .chart-series {
177
+ stroke: var(--ds-chart-6);
133
178
  }
134
179
  ```
135
180
 
136
- The server exposes tools for library overview, component listing, component search,
137
- exact component docs lookup, installation guidance, readable resource URIs, and
138
- prompt templates for component selection and integration.
139
-
140
- ## 🗂️ Internal Architecture
141
-
142
- The published API stays flat, while the source is organized by responsibility:
143
-
144
- ```text
145
- src/
146
- foundations/theme
147
- components/forms
148
- components/overlays
149
- components/data-display
150
- components/navigation
151
- components/feedback
152
- components/typography
153
- components/effects
154
- components/icons
155
- components/spinners
156
- utils
181
+ ### Chart color slots
182
+
183
+ The library now ships fifteen dedicated chart slots in both token layers:
184
+
185
+ - `--ds-chart-1` through `--ds-chart-15`
186
+ - `--color-chart-1` through `--color-chart-15`
187
+
188
+ When you pass chart colors from React, you can use any CSS color string, the CSS vars directly, or the built-in helper and shorthand token names:
189
+
190
+ ```tsx
191
+ import { BarChart, getChartColorVar } from "erp-pro-ui";
192
+
193
+ <BarChart
194
+ data={data}
195
+ categories={[
196
+ { key: "revenue", color: getChartColorVar(1) },
197
+ { key: "cost", color: "chart-6" },
198
+ { key: "profit", color: "var(--color-chart-10)" },
199
+ ]}
200
+ />;
157
201
  ```
158
202
 
159
- This keeps the codebase maintainable without forcing consumers to learn internal folder names.
160
-
161
- ## 📋 Component Reference
162
-
163
- ### Form Controls
164
-
165
- | Component | Description |
166
- | ----------------------- | ------------------------------------------------------------ |
167
- | `Button` | Primary/secondary button with size variants |
168
- | `Input` | Text input with label, validation states, and hover gradient |
169
- | `Textarea` | Multi-line text input |
170
- | `Select` | Dropdown selection |
171
- | `Checkbox` | Checkbox with label |
172
- | `Radio` | Radio button group |
173
- | `Switch` | Toggle switch |
174
- | `OTPInput` | One-time password input |
175
- | `DatePicker` | Calendar-based date picker |
176
- | `Combobox` | Searchable dropdown |
177
- | `MultiSelectCombobox` | Multi-value searchable dropdown |
178
- | `PasswordStrengthMeter` | Visual password strength indicator |
179
- | `Form` | Form wrapper with validation |
180
-
181
- ### Layout & Containers
182
-
183
- | Component | Description |
184
- | ----------- | ------------------------------------------------------------ |
185
- | `Card` | Content container card |
186
- | `Accordion` | Expandable content panels |
187
- | `Dialog` | Modal dialog with variants, presets, and 10 animation styles |
188
- | `Drawer` | Slide-out panel (left/right/top/bottom) |
189
- | `Tooltip` | Hover tooltip |
190
- | `HoverCard` | Rich content hover card |
191
- | `Calendar` | Calendar display |
192
- | `Carousel` | Content carousel/slider |
193
-
194
- ### Typography
195
-
196
- | Component | Description |
197
- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
198
- | `Typography` | Semantic text with `h1`–`h6`, `body1`, `body2`, `caption`, `overline` variants. Supports `gradient`, `align`, `weight`, `tracking`, and `italic` props. |
199
-
200
- ### Data Display
201
-
202
- | Component | Description |
203
- | -------------- | ------------------------------------------------------------------------------- |
204
- | `DataTable` | Feature-rich table with sorting, filtering, column toggles, and filter profiles |
205
- | `Chip` | Status/tag badge with `filled`, `outlined`, `ghost` variants |
206
- | `Stepper` | Multi-step progress indicator (horizontal/vertical) |
207
- | `ColorPalette` | Color swatch display |
203
+ `getChartColorVar(slot)` supports slots `1` through `15`. The chart components also normalize the shorthand `chart-6` form into the matching theme variable automatically.
208
204
 
209
- ### Charts
205
+ ### Theme variable groups
210
206
 
211
- Built on [Recharts](https://recharts.org/), the chart components provide premium data visualization:
212
-
213
- | Component | Type |
214
- | ------------------ | ----------------------------- |
215
- | `AreaChart` | Gradient-filled area chart |
216
- | `BarChart` | Horizontal/vertical bar chart |
217
- | `PieChart` | Pie and donut charts |
218
- | `NeonLineChart` | Glowing neon-style line chart |
219
- | `StackedBarChart` | Stacked bar visualization |
220
- | `ThinBreakdownBar` | Thin horizontal breakdown bar |
221
-
222
- ### Feedback
223
-
224
- | Component | Description |
225
- | ------------------------------ | --------------------------------------------------------------------------------- |
226
- | `Alert` | Banner alert with `default`, `destructive`, `success`, `warning`, `info` variants |
227
- | `ToastProvider` + `useToast()` | Toast notification system |
228
- | `Loading` | 8 loading variants: spinner, dots, pulse, bars, ring, bounce, wave, skeleton |
229
-
230
- ### Visual Effects
231
-
232
- | Component | Description |
233
- | ----------------------------- | ------------------------------------------------- |
234
- | `BackgroundGradientAnimation` | Animated gradient background with 6 preset themes |
235
- | `SpotlightCard` | Card with cursor-tracking spotlight effect |
236
- | `AnimatedContent` | Scroll-triggered entrance animations |
237
- | `GradualBlur` | Progressive blur entrance effect |
238
- | `ChromaGrid` | Chromatic grid animation |
239
- | `SplashCursor` | Interactive cursor splash effect |
240
- | `HoverBorderGradient` | Animated gradient border on hover |
241
- | `SunToMoonButton` | Animated theme toggle button |
242
- | `ASCIIText` | 3D ASCII text animation |
207
+ The token system is split into stable layers:
243
208
 
244
- ### Icons
209
+ - Internal design-system tokens: `--ds-*`
210
+ - Semantic utility aliases: `bg-surface`, `text-fg`, `border-border`, `bg-accent`, `text-on-accent`, `outline-focus`
211
+ - Compatibility color variables: `--color-primary`, `--color-background-primary`, `--color-text-primary`, and the existing `primary-50` through `primary-900` theme scale
245
212
 
246
- 30+ custom SVG icons available:
213
+ For new components, use the semantic utility layer or the `--ds-*` variables directly. Keep the compatibility aliases for migration work and external consumers that still rely on the legacy contract.
247
214
 
248
- ```tsx
249
- import { IconDashboard, IconSettings, IconUser } from "erp-pro-ui";
215
+ ### Theme switching
216
+
217
+ If you use `ThemeProvider`, the library updates `data-brand` and `data-mode` for you. It still writes the old `data-theme` attribute for compatibility, but the new architecture treats brand and mode as separate axes.
250
218
 
251
- <IconDashboard className="w-5 h-5" />;
219
+ If you do not use `ThemeProvider`, you can still switch manually in your app shell:
220
+
221
+ ```html
222
+ <html data-brand="teal" data-mode="dark"></html>
252
223
  ```
253
224
 
254
- ## 🎨 Theme System
225
+ ## Import Patterns
255
226
 
256
- Wrap your app with `ThemeProvider` for automatic dark/light mode:
227
+ Use whichever public import style fits your project.
228
+
229
+ ### Root imports
257
230
 
258
231
  ```tsx
259
- import { ThemeProvider, useThemeContext } from "erp-pro-ui";
232
+ import {
233
+ Button,
234
+ DataTable,
235
+ Dialog,
236
+ ThemeProvider,
237
+ ToastProvider,
238
+ Typography,
239
+ } from "erp-pro-ui";
240
+ ```
260
241
 
261
- // In root
262
- <ThemeProvider>
263
- <App />
264
- </ThemeProvider>;
242
+ ### Subpath imports
265
243
 
266
- // In any component
267
- const { mode, toggleMode, setMode } = useThemeContext();
244
+ ```tsx
245
+ import { Button } from "erp-pro-ui/button";
246
+ import { DataTable } from "erp-pro-ui/data-table";
247
+ import { Dialog } from "erp-pro-ui/dialog";
248
+ import { ThemeProvider } from "erp-pro-ui/theme";
249
+ import { SearchIcon } from "erp-pro-ui/icons";
250
+ import { Audio } from "erp-pro-ui/spinners";
268
251
  ```
269
252
 
270
- ## 📖 Usage Examples
253
+ ### Structured docs and catalog exports
271
254
 
272
- ### Dialog
255
+ ```tsx
256
+ import { uiCatalogItems } from "erp-pro-ui/catalog";
257
+ import {
258
+ getComponentDocByName,
259
+ libraryDocs,
260
+ searchComponentDocs,
261
+ } from "erp-pro-ui/docs";
262
+ ```
263
+
264
+ ### Utilities
273
265
 
274
266
  ```tsx
275
- import { Dialog } from "erp-pro-ui";
276
-
277
- <Dialog
278
- open={isOpen}
279
- onOpenChange={setIsOpen}
280
- title="Confirm Delete"
281
- description="This action cannot be undone."
282
- variant="destructive"
283
- preset="confirm"
284
- animation="scale"
285
- onConfirm={() => handleDelete()}
286
- />;
267
+ import {
268
+ generateUniqueKey,
269
+ mergeClassNames,
270
+ validateEmail,
271
+ } from "erp-pro-ui/utils";
287
272
  ```
288
273
 
289
- **Dialog Animations:** `fade`, `scale`, `slideUp`, `slideDown`, `slideLeft`, `slideRight`, `elastic`, `bounce`, `flip`, `zoom`
274
+ Only use the documented package exports. Do not import from `src/**` or internal folder paths.
290
275
 
291
- ### Toast
276
+ ## Complete Starter Example
277
+
278
+ This example shows the normal setup pattern in a separate app: theme provider, toast provider, input controls, status messaging, dialog usage, and shared layout components.
292
279
 
293
280
  ```tsx
294
- import { ToastProvider, useToast } from "erp-pro-ui";
281
+ import { useState } from "react";
282
+
283
+ import {
284
+ Alert,
285
+ Button,
286
+ Card,
287
+ Chip,
288
+ Dialog,
289
+ Input,
290
+ Select,
291
+ ToastProvider,
292
+ ThemeProvider,
293
+ Typography,
294
+ useToast,
295
+ } from "erp-pro-ui";
296
+
297
+ function DashboardDemo() {
298
+ const [dialogOpen, setDialogOpen] = useState(false);
299
+ const [email, setEmail] = useState("");
300
+ const { addToast } = useToast();
295
301
 
296
- // Wrap app
297
- <ToastProvider>
298
- <App />
299
- </ToastProvider>;
302
+ return (
303
+ <div className="min-h-screen bg-neutral-50 p-6 dark:bg-neutral-950">
304
+ <div className="mx-auto flex max-w-4xl flex-col gap-6">
305
+ <div className="flex items-center justify-between">
306
+ <div>
307
+ <Typography variant="h1" gradient="ocean">
308
+ ERP Pro UI Demo
309
+ </Typography>
310
+ <Typography variant="body1">
311
+ Use the same package in any React 19 project.
312
+ </Typography>
313
+ </div>
314
+ <Chip variant="filled" color="success">
315
+ Ready
316
+ </Chip>
317
+ </div>
318
+
319
+ <Alert
320
+ variant="info"
321
+ title="Shared setup"
322
+ description="ThemeProvider and ToastProvider are already wired at the app root."
323
+ />
324
+
325
+ <Card className="space-y-4 p-6">
326
+ <Typography variant="h3">Create workspace</Typography>
327
+ <Input
328
+ label="Email"
329
+ placeholder="owner@company.com"
330
+ value={email}
331
+ onChange={(event) => setEmail(event.target.value)}
332
+ />
333
+ <Select
334
+ label="Plan"
335
+ placeholder="Choose a plan"
336
+ options={[
337
+ { value: "starter", label: "Starter" },
338
+ { value: "growth", label: "Growth" },
339
+ { value: "enterprise", label: "Enterprise" },
340
+ ]}
341
+ />
342
+
343
+ <div className="flex gap-3">
344
+ <Button
345
+ primary
346
+ onClick={() => {
347
+ addToast({
348
+ type: "success",
349
+ title: "Draft saved",
350
+ message: "Workspace settings were saved locally.",
351
+ });
352
+ }}
353
+ >
354
+ Save draft
355
+ </Button>
356
+ <Button onClick={() => setDialogOpen(true)}>
357
+ Open review dialog
358
+ </Button>
359
+ </div>
360
+ </Card>
361
+
362
+ <Dialog
363
+ open={dialogOpen}
364
+ onOpenChange={setDialogOpen}
365
+ title="Review workspace"
366
+ description="Confirm that the workspace should be created."
367
+ preset="confirm"
368
+ variant="default"
369
+ onConfirm={() => {
370
+ setDialogOpen(false);
371
+ addToast({
372
+ type: "success",
373
+ title: "Workspace created",
374
+ message: "Your environment is ready to use.",
375
+ });
376
+ }}
377
+ />
378
+ </div>
379
+ </div>
380
+ );
381
+ }
300
382
 
301
- // Use anywhere
302
- const { addToast } = useToast();
303
- addToast({ type: "success", title: "Saved!", message: "All changes saved." });
383
+ export default function App() {
384
+ return (
385
+ <ThemeProvider>
386
+ <ToastProvider>
387
+ <DashboardDemo />
388
+ </ToastProvider>
389
+ </ThemeProvider>
390
+ );
391
+ }
304
392
  ```
305
393
 
306
- ### DataTable
394
+ ## Component Inventory
395
+
396
+ The tables below document the public surface you can use from another project.
397
+
398
+ ### Providers, Shared Surfaces, and Package Utilities
399
+
400
+ | Export | Public import | Notes |
401
+ | ------------------------------------------------------- | --------------------------------------- | ------------------------------------------- |
402
+ | `ThemeProvider`, `useThemeContext` | `erp-pro-ui` or `erp-pro-ui/theme` | App theme context and mode switching |
403
+ | `ToastProvider`, `ToastItem`, `useToast` | `erp-pro-ui` or `erp-pro-ui/toast` | Global toast notifications |
404
+ | `Typography` | `erp-pro-ui` or `erp-pro-ui/typography` | Semantic text system |
405
+ | all icons | `erp-pro-ui` or `erp-pro-ui/icons` | Shared React SVG icon components |
406
+ | `Audio` | `erp-pro-ui` or `erp-pro-ui/spinners` | Audio wave spinner |
407
+ | `generateUniqueKey`, `mergeClassNames`, `validateEmail` | `erp-pro-ui/utils` | Reusable package helpers |
408
+ | `libraryDocs` and helpers | `erp-pro-ui/docs` | Machine-readable install and component docs |
409
+ | `uiCatalogItems` | `erp-pro-ui/catalog` | Component catalog metadata |
410
+
411
+ ### Form Components
412
+
413
+ | Export | Subpath | Use it for |
414
+ | ----------------------- | ------------------------------------ | ----------------------------------------------------- |
415
+ | `Button` | `erp-pro-ui/button` | Primary and secondary actions |
416
+ | `Input` | `erp-pro-ui/input` | Text inputs with label, helper text, and icon support |
417
+ | `InputState` | `erp-pro-ui/input` | Input validation states |
418
+ | `Textarea` | `erp-pro-ui/textarea` | Multi-line user input |
419
+ | `Select` | `erp-pro-ui/select` | Fixed option dropdowns |
420
+ | `Checkbox` | `erp-pro-ui/checkbox` | Multi-select and boolean inputs |
421
+ | `Radio` | `erp-pro-ui/radio` | Single-choice form selections |
422
+ | `Switch` | `erp-pro-ui/switch` | Immediate on/off settings |
423
+ | `Label` | `erp-pro-ui/label` | Accessible field labels |
424
+ | `Calendar` | `erp-pro-ui/calendar` | Embedded calendar display |
425
+ | `DatePicker` | `erp-pro-ui/date-picker` | Calendar-backed date inputs |
426
+ | `Combobox` | `erp-pro-ui/combobox` | Searchable single-select control |
427
+ | `MultiSelectCombobox` | `erp-pro-ui/multi-select-combobox` | Searchable multi-value selection |
428
+ | `OTPInput` | `erp-pro-ui/otp-input` | Verification code entry |
429
+ | `PasswordStrengthMeter` | `erp-pro-ui/password-strength-meter` | Password feedback UI |
430
+ | `Form` | `erp-pro-ui/form` | Form composition wrapper |
431
+
432
+ ### Navigation, Overlays, and Feedback
433
+
434
+ | Export | Subpath | Use it for |
435
+ | ------------------------------------------------------------------------ | ----------------------- | ------------------------------------------------------- |
436
+ | `Accordion` | `erp-pro-ui/accordion` | Collapsible sections |
437
+ | `Dialog` | `erp-pro-ui/dialog` | Confirmation flows and modal content |
438
+ | `Drawer` | `erp-pro-ui/drawer` | Slide-over panels |
439
+ | `Tooltip` | `erp-pro-ui/tooltip` | Short contextual help |
440
+ | `HoverCard` | `erp-pro-ui/hover-card` | Rich hover previews |
441
+ | `Carousel` | `erp-pro-ui/carousel` | Horizontal content sliders |
442
+ | `Stepper` | `erp-pro-ui/stepper` | Multi-step workflow progress |
443
+ | `Alert` | `erp-pro-ui/alert` | Inline success, warning, info, or destructive messaging |
444
+ | `Loading` | `erp-pro-ui/loading` | Unified loading API |
445
+ | `Spinner`, `Dots`, `Pulse`, `Bars`, `Ring`, `Bounce`, `Wave`, `Skeleton` | `erp-pro-ui/loading` | Individual loading variants |
446
+ | `SkeletonComponent` | root import only | Root alias for the skeleton placeholder export |
447
+
448
+ ### Data Display And Charts
449
+
450
+ | Export | Subpath | Use it for |
451
+ | ----------------------------------------------------------------- | -------------------------- | ------------------------------------------------- |
452
+ | `Card` | `erp-pro-ui/card` | Panel and container layout |
453
+ | `Chip` | `erp-pro-ui/chip` | Tags, status pills, and labels |
454
+ | `ColorPalette` | `erp-pro-ui/color-palette` | Design token or palette presentation |
455
+ | `DataTable` | `erp-pro-ui/data-table` | Feature-rich tables with filtering and pagination |
456
+ | `FilterDropdown`, `FilterButton`, `ColumnToggle`, `FilterProfile` | `erp-pro-ui/data-table` | DataTable helper building blocks |
457
+ | `AreaChart` | `erp-pro-ui/charts` | Area chart visualizations |
458
+ | `BarChart` | `erp-pro-ui/charts` | Bar chart visualizations |
459
+ | `PieChart` | `erp-pro-ui/charts` | Pie and donut charts |
460
+ | `NeonLineChart` | `erp-pro-ui/charts` | Glowing line charts |
461
+ | `StackedBarChart` | `erp-pro-ui/charts` | Stacked comparisons |
462
+ | `ThinBreakdownBar` | `erp-pro-ui/charts` | Compact segmented metric bars |
463
+
464
+ ### Visual Effects And Text Components
465
+
466
+ | Export | Public import | Use it for |
467
+ | ----------------------------- | ------------------------------------------ | --------------------------------- |
468
+ | `AnimatedContent` | `erp-pro-ui/animated-content` | Entrance animation wrappers |
469
+ | `BackgroundGradientAnimation` | `erp-pro-ui/background-gradient-animation` | Full-section animated backgrounds |
470
+ | `BorderBeam` | root import only | Beam border effect wrapper |
471
+ | `ButtonHoverBorderGradient` | `erp-pro-ui/button-hover-border-gradient` | CTA button with animated border |
472
+ | `ChromaGrid` | `erp-pro-ui/chroma-grid` | Animated background grid |
473
+ | `GradualBlur` | `erp-pro-ui/gradual-blur` | Progressive blur reveal |
474
+ | `HoverBorderGradient` | `erp-pro-ui/hover-border-gradient` | Hover border lighting treatment |
475
+ | `SplashCursor` | `erp-pro-ui/splash-cursor` | Cursor effect overlay |
476
+ | `SpotlightCard` | `erp-pro-ui/spotlight-card` | Cursor-reactive premium card |
477
+ | `SunToMoonButton` | `erp-pro-ui/sun-to-moon-button` | Theme toggle control |
478
+ | `ASCIIText` | `erp-pro-ui/ascii-text` | Animated ASCII display text |
479
+
480
+ ## Focused Usage Examples
481
+
482
+ ### Dialog and toast flow
307
483
 
308
484
  ```tsx
309
- import { DataTable, FilterDropdown, ColumnToggle } from "erp-pro-ui";
485
+ import { Button, Dialog, ToastProvider, useToast } from "erp-pro-ui";
310
486
 
311
- <DataTable data={users} columns={columns} searchable sortable paginated />;
487
+ function DeleteButton() {
488
+ const [open, setOpen] = useState(false);
489
+ const { addToast } = useToast();
490
+
491
+ return (
492
+ <>
493
+ <Button onClick={() => setOpen(true)}>Delete record</Button>
494
+ <Dialog
495
+ open={open}
496
+ onOpenChange={setOpen}
497
+ title="Delete record"
498
+ description="This action cannot be undone."
499
+ variant="destructive"
500
+ preset="confirm"
501
+ onConfirm={() => {
502
+ setOpen(false);
503
+ addToast({ type: "success", title: "Deleted" });
504
+ }}
505
+ />
506
+ </>
507
+ );
508
+ }
312
509
  ```
313
510
 
314
- ### Background Gradient
511
+ ### Data table
315
512
 
316
513
  ```tsx
317
- import { BackgroundGradientAnimation } from "erp-pro-ui";
318
-
319
- <BackgroundGradientAnimation
320
- gradientBackgroundStart="rgb(0, 17, 82)"
321
- gradientBackgroundEnd="rgb(108, 0, 162)"
322
- firstColor="18, 113, 255"
323
- secondColor="221, 74, 255"
324
- thirdColor="100, 220, 255"
325
- size="80%"
326
- interactive
327
- >
328
- <h1>Your Content Here</h1>
329
- </BackgroundGradientAnimation>;
514
+ import { DataTable } from "erp-pro-ui";
515
+
516
+ const columns = [
517
+ { id: "name", label: "Name", visible: true },
518
+ { id: "email", label: "Email", visible: true },
519
+ { id: "role", label: "Role", visible: true },
520
+ ];
521
+
522
+ const rows = [
523
+ { name: "Ava Stone", email: "ava@company.com", role: "Admin" },
524
+ { name: "Noah Reed", email: "noah@company.com", role: "Manager" },
525
+ ];
526
+
527
+ <DataTable columns={columns} data={rows} searchPlaceholder="Search users" />;
330
528
  ```
331
529
 
332
- ## 📂 Subpath Imports
530
+ ### Charts
531
+
532
+ ```tsx
533
+ import { AreaChart, BarChart, PieChart } from "erp-pro-ui";
534
+
535
+ const revenue = [
536
+ { name: "Jan", value: 2400 },
537
+ { name: "Feb", value: 3000 },
538
+ { name: "Mar", value: 2800 },
539
+ ];
540
+
541
+ <AreaChart data={revenue} dataKey="value" xAxisKey="name" />;
542
+ <BarChart data={revenue} dataKey="value" xAxisKey="name" />;
543
+ <PieChart
544
+ data={[
545
+ { name: "ERP", value: 60 },
546
+ { name: "POS", value: 40 },
547
+ ]}
548
+ />;
549
+ ```
333
550
 
334
- For optimal bundle size, use subpath imports:
551
+ ### Icons
335
552
 
336
553
  ```tsx
337
- import { Button } from "erp-pro-ui/button";
338
- import { Dialog } from "erp-pro-ui/dialog";
339
- import { Input } from "erp-pro-ui/input";
340
- import { DataTable } from "erp-pro-ui/data-table";
341
- import { Calendar } from "erp-pro-ui/calendar";
554
+ import { CloseIcon, RefreshIcon, SearchIcon } from "erp-pro-ui/icons";
555
+
556
+ <div className="flex items-center gap-3">
557
+ <SearchIcon className="h-4 w-4" />
558
+ <RefreshIcon className="h-4 w-4" />
559
+ <CloseIcon className="h-4 w-4" />
560
+ </div>;
342
561
  ```
343
562
 
344
- Subpath exports map to real build entries in `dist/`, so the documented import paths are the supported package boundary.
563
+ ## Companion Surfaces
345
564
 
346
- ## 🧩 Composition Example
565
+ ### Structured docs bundle
347
566
 
348
- Complex pages should be assembled in the consuming app from exported primitives:
567
+ Use `erp-pro-ui/docs` if you want to build your own docs page, CLI, codegen, or AI integration.
349
568
 
350
569
  ```tsx
351
570
  import {
352
- AnimatedContent,
353
- Button,
354
- Carousel,
355
- Dialog,
356
- GradualBlur,
357
- } from "erp-pro-ui";
571
+ getComponentDocByName,
572
+ libraryDocs,
573
+ searchComponentDocs,
574
+ } from "erp-pro-ui/docs";
358
575
 
359
- function MarketingShowcase() {
360
- return (
361
- <>
362
- <GradualBlur>
363
- <h1>Design System Showcase</h1>
364
- </GradualBlur>
576
+ const docs = getComponentDocByName("Dialog");
577
+ const charts = searchComponentDocs("chart");
578
+
579
+ console.log(libraryDocs.installSteps);
580
+ console.log(docs?.subpathImport);
581
+ console.log(charts.length);
582
+ ```
365
583
 
366
- <AnimatedContent preset="scale">
367
- <Carousel items={items} variant="glass" />
368
- </AnimatedContent>
584
+ ### Catalog bundle
369
585
 
370
- <Button primary label="Open Dialog" onClick={() => setOpen(true)} />
371
- <Dialog open={open} onOpenChange={setOpen} title="Crystal Dialog" />
372
- </>
373
- );
374
- }
586
+ Use `erp-pro-ui/catalog` if you only need the component list and public slugs.
587
+
588
+ ```tsx
589
+ import { uiCatalogItems } from "erp-pro-ui/catalog";
590
+
591
+ console.log(uiCatalogItems.map((item) => item.name));
375
592
  ```
376
593
 
377
- This pattern keeps the package lightweight while still supporting richer product-specific experiences.
594
+ ### MCP server
378
595
 
379
- ## 🛠️ Development
596
+ For AI-assisted tooling and editor integrations, use the companion package:
380
597
 
381
598
  ```bash
382
- # Install dependencies
383
- pnpm install
384
-
385
- # Type check
386
- pnpm typecheck
599
+ npx -y erp-pro-ui-mcp-server
600
+ ```
387
601
 
388
- # Lint
389
- pnpm lint
602
+ Example MCP client config:
390
603
 
391
- # Run Storybook
392
- pnpm storybook
604
+ ```json
605
+ {
606
+ "mcpServers": {
607
+ "erp-pro-ui": {
608
+ "command": "npx",
609
+ "args": ["-y", "erp-pro-ui-mcp-server"]
610
+ }
611
+ }
612
+ }
393
613
  ```
394
614
 
395
- ## 🔌 Companion Packages
615
+ ## Development In This Repo
396
616
 
397
- - `erp-pro-ui`: the component library itself
398
- - `erp-pro-ui/docs`: structured docs metadata for scripts and external tools
399
- - `erp-pro-ui-mcp-server`: stdio MCP server for AI editors and agents
617
+ ```bash
618
+ pnpm install
619
+ pnpm --filter ./packages/ui build
620
+ pnpm --filter ./packages/ui typecheck
621
+ pnpm --filter ./packages/ui lint
622
+ pnpm storybook
623
+ ```
400
624
 
401
- ## 📄 License
625
+ ## License
402
626
 
403
627
  MIT