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.
- package/README.md +512 -288
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.mjs +1 -1
- package/dist/alert.cjs +1 -1
- package/dist/alert.mjs +1 -1
- package/dist/ascii-text.cjs +1 -1
- package/dist/ascii-text.mjs +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.mjs +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.mjs +1 -1
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.mjs +1 -1
- package/dist/catalog.cjs +12 -0
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.ts +21 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.mjs +12 -0
- package/dist/catalog.mjs.map +1 -1
- package/dist/charts.cjs +5 -1
- package/dist/charts.mjs +2 -2
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.mjs +1 -1
- package/dist/chip.cjs +1 -1
- package/dist/chip.mjs +1 -1
- package/dist/chroma-grid.cjs +1 -1
- package/dist/chroma-grid.mjs +1 -1
- package/dist/chunks/{accordion-C_0oGZkZ.mjs → accordion-Cbt-SJhj.mjs} +4 -4
- package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
- package/dist/chunks/{accordion-BZ5hyz0_.cjs → accordion-pfJR8YYA.cjs} +4 -4
- package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
- package/dist/chunks/{alert-DeVa-NR1.mjs → alert-CtdLy4Hv.mjs} +6 -6
- package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
- package/dist/chunks/{alert-BdBDWqBN.cjs → alert-Dvz1GoL5.cjs} +6 -6
- package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
- package/dist/chunks/{ascii-text-BzQCLfya.mjs → ascii-text-C5tyNsR3.mjs} +32 -5
- package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
- package/dist/chunks/{ascii-text-D6lVHWph.cjs → ascii-text-DlmArZXh.cjs} +32 -5
- package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
- package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -1
- package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -1
- package/dist/chunks/{button-CmNEMp_O.mjs → button-B0Lhj0AS.mjs} +3 -3
- package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
- package/dist/chunks/{button-BH1eUjae.cjs → button-CZL6kFzT.cjs} +3 -3
- package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
- package/dist/chunks/{calendar-xrGmvukr.cjs → calendar-Cpp_Rc7T.cjs} +58 -17
- package/dist/chunks/calendar-Cpp_Rc7T.cjs.map +1 -0
- package/dist/chunks/{calendar-BarcG6x_.mjs → calendar-DrCgT_pj.mjs} +58 -17
- package/dist/chunks/calendar-DrCgT_pj.mjs.map +1 -0
- package/dist/chunks/{card-DZGM4zLx.cjs → card-C5_tFK6Q.cjs} +2 -2
- package/dist/chunks/card-C5_tFK6Q.cjs.map +1 -0
- package/dist/chunks/{card-CzstAQYy.mjs → card-Dh8wNv8N.mjs} +2 -2
- package/dist/chunks/card-Dh8wNv8N.mjs.map +1 -0
- package/dist/chunks/{carousel-BJ3nm2bw.mjs → carousel-BYwqI4cA.mjs} +3 -3
- package/dist/chunks/{carousel-47Eiyzwg.cjs.map → carousel-BYwqI4cA.mjs.map} +1 -1
- package/dist/chunks/{carousel-47Eiyzwg.cjs → carousel-C1338X8h.cjs} +3 -3
- package/dist/chunks/{carousel-BJ3nm2bw.mjs.map → carousel-C1338X8h.cjs.map} +1 -1
- package/dist/chunks/charts-BYvM4TMG.mjs +886 -0
- package/dist/chunks/charts-BYvM4TMG.mjs.map +1 -0
- package/dist/chunks/charts-DbxyHtlX.cjs +947 -0
- package/dist/chunks/charts-DbxyHtlX.cjs.map +1 -0
- package/dist/chunks/{checkbox-DQmZwRTt.cjs → checkbox-CxOcjoGP.cjs} +8 -8
- package/dist/chunks/checkbox-CxOcjoGP.cjs.map +1 -0
- package/dist/chunks/{checkbox-B3eIojWs.mjs → checkbox-Pr49U9F1.mjs} +8 -8
- package/dist/chunks/checkbox-Pr49U9F1.mjs.map +1 -0
- package/dist/chunks/{chip-BH6wzwat.cjs → chip-B4ol1yPk.cjs} +12 -12
- package/dist/chunks/chip-B4ol1yPk.cjs.map +1 -0
- package/dist/chunks/{chip-cZ7-HmWw.mjs → chip-DdnBLdpl.mjs} +12 -12
- package/dist/chunks/chip-DdnBLdpl.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-CC_fFzxO.mjs → chroma-grid-BAo6V5A7.mjs} +10 -10
- package/dist/chunks/chroma-grid-BAo6V5A7.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-DtsqM4LW.cjs → chroma-grid-CIk0dsNS.cjs} +10 -10
- package/dist/chunks/chroma-grid-CIk0dsNS.cjs.map +1 -0
- package/dist/chunks/color-palette-2TuEMkAn.cjs +754 -0
- package/dist/chunks/color-palette-2TuEMkAn.cjs.map +1 -0
- package/dist/chunks/color-palette-euKQMWlV.mjs +748 -0
- package/dist/chunks/color-palette-euKQMWlV.mjs.map +1 -0
- package/dist/chunks/{combobox-mAvOcg-E.cjs → combobox-CwGubKTt.cjs} +56 -32
- package/dist/chunks/combobox-CwGubKTt.cjs.map +1 -0
- package/dist/chunks/combobox-DrFmkI0F.mjs +132 -0
- package/dist/chunks/combobox-DrFmkI0F.mjs.map +1 -0
- package/dist/chunks/{data-table-Dp0t_I_z.mjs → data-table-Bo80m7qV.mjs} +197 -292
- package/dist/chunks/data-table-Bo80m7qV.mjs.map +1 -0
- package/dist/chunks/{data-table-BRcGhJDf.cjs → data-table-W1sK5tkL.cjs} +197 -292
- package/dist/chunks/data-table-W1sK5tkL.cjs.map +1 -0
- package/dist/chunks/date-picker-CNPORxhv.mjs +205 -0
- package/dist/chunks/date-picker-CNPORxhv.mjs.map +1 -0
- package/dist/chunks/date-picker-CZo68Fkl.cjs +211 -0
- package/dist/chunks/date-picker-CZo68Fkl.cjs.map +1 -0
- package/dist/chunks/{dialog-Cbuf8V0g.cjs → dialog-CYFiWN8M.cjs} +20 -20
- package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
- package/dist/chunks/{dialog-C6nxSfIl.mjs → dialog-DUWnV9tN.mjs} +20 -20
- package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
- package/dist/chunks/{drawer-Dn0u8Sck.cjs → drawer-CLjsYdxN.cjs} +39 -22
- package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
- package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
- package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
- package/dist/chunks/{form-TwlDrshv.mjs → form-B2vcaHwh.mjs} +4 -4
- package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
- package/dist/chunks/{form-DcEuk721.cjs → form-CzH9GQc6.cjs} +4 -4
- package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
- package/dist/chunks/{gradual-blur-2jVhPcND.cjs → gradual-blur-B9GoY8o1.cjs} +1 -1
- package/dist/chunks/{gradual-blur-2jVhPcND.cjs.map → gradual-blur-B9GoY8o1.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-jTzKCmAV.mjs → gradual-blur-Bl3dOMEz.mjs} +1 -1
- package/dist/chunks/{gradual-blur-jTzKCmAV.mjs.map → gradual-blur-Bl3dOMEz.mjs.map} +1 -1
- package/dist/chunks/{hover-card-KjWMnvt_.cjs → hover-card-v0QwmVBU.cjs} +9 -4
- package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
- package/dist/chunks/{hover-card-DwTVfjgN.mjs → hover-card-xqwpmZNm.mjs} +9 -4
- package/dist/chunks/{hover-card-KjWMnvt_.cjs.map → hover-card-xqwpmZNm.mjs.map} +1 -1
- package/dist/chunks/{icons-DYkpqWYG.cjs → icons-BxIzP2jd.cjs} +131 -8
- package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
- package/dist/chunks/{icons-CrM6pFkv.mjs → icons-DuumN7z-.mjs} +108 -9
- package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
- package/dist/chunks/input-BWM6G7jq.cjs +117 -0
- package/dist/chunks/input-BWM6G7jq.cjs.map +1 -0
- package/dist/chunks/input-Bt_r_B_c.mjs +105 -0
- package/dist/chunks/input-Bt_r_B_c.mjs.map +1 -0
- package/dist/chunks/{label-EciNc4hO.cjs → label-BWPEGVam.cjs} +1 -1
- package/dist/chunks/{label-EciNc4hO.cjs.map → label-BWPEGVam.cjs.map} +1 -1
- package/dist/chunks/{label-JZn7PmtR.mjs → label-KPA-yYOF.mjs} +1 -1
- package/dist/chunks/{label-JZn7PmtR.mjs.map → label-KPA-yYOF.mjs.map} +1 -1
- package/dist/chunks/{loading-DPNa_X3c.mjs → loading-S1TdIrbB.mjs} +2 -2
- package/dist/chunks/{loading-DPNa_X3c.mjs.map → loading-S1TdIrbB.mjs.map} +1 -1
- package/dist/chunks/{loading-Cqgps3nf.cjs → loading-q7IEg56I.cjs} +2 -2
- package/dist/chunks/{loading-Cqgps3nf.cjs.map → loading-q7IEg56I.cjs.map} +1 -1
- package/dist/chunks/multi-select-combobox-D46M-AN9.mjs +132 -0
- package/dist/chunks/multi-select-combobox-D46M-AN9.mjs.map +1 -0
- package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs +139 -0
- package/dist/chunks/multi-select-combobox-dS6bJE_e.cjs.map +1 -0
- package/dist/chunks/{otp-input-DaQDfI9C.cjs → otp-input-DSW9Ca_D.cjs} +13 -14
- package/dist/chunks/otp-input-DSW9Ca_D.cjs.map +1 -0
- package/dist/chunks/{otp-input-CNungc1j.mjs → otp-input-DeAi4nJ_.mjs} +13 -14
- package/dist/chunks/otp-input-DeAi4nJ_.mjs.map +1 -0
- package/dist/chunks/{overlay-BfUR77DT.cjs → overlay-DWNTyQzK.cjs} +1 -1
- package/dist/chunks/{overlay-BfUR77DT.cjs.map → overlay-DWNTyQzK.cjs.map} +1 -1
- package/dist/chunks/{overlay-CpdakhXI.mjs → overlay-TycCIFOu.mjs} +1 -1
- package/dist/chunks/{overlay-CpdakhXI.mjs.map → overlay-TycCIFOu.mjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-xtMqhhFg.mjs → password-strength-meter-CbNSBuh_.mjs} +10 -10
- package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
- package/dist/chunks/{password-strength-meter-u4YI00zE.cjs → password-strength-meter-DxMV6GAs.cjs} +10 -10
- package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
- package/dist/chunks/progress-bar-B9sy7WBT.mjs +89 -0
- package/dist/chunks/progress-bar-B9sy7WBT.mjs.map +1 -0
- package/dist/chunks/progress-bar-BdvQtpm3.cjs +96 -0
- package/dist/chunks/progress-bar-BdvQtpm3.cjs.map +1 -0
- package/dist/chunks/{radio-C-fPZgSY.mjs → radio-C9w_CoiY.mjs} +9 -9
- package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
- package/dist/chunks/{radio-mCgvEhOR.cjs → radio-jMHDvaMY.cjs} +9 -9
- package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
- package/dist/chunks/select-B8UQ6Uq5.mjs +170 -0
- package/dist/chunks/select-B8UQ6Uq5.mjs.map +1 -0
- package/dist/chunks/select-CCUSMvfS.cjs +176 -0
- package/dist/chunks/select-CCUSMvfS.cjs.map +1 -0
- package/dist/chunks/{skeleton-D1S4RyeL.mjs → skeleton-BhYWOp0Q.mjs} +1 -1
- package/dist/chunks/{skeleton-D1S4RyeL.mjs.map → skeleton-BhYWOp0Q.mjs.map} +1 -1
- package/dist/chunks/{skeleton-C-NHrM-w.cjs → skeleton-DTXpHYYB.cjs} +1 -1
- package/dist/chunks/{skeleton-C-NHrM-w.cjs.map → skeleton-DTXpHYYB.cjs.map} +1 -1
- package/dist/chunks/{spinners-hf553hP9.mjs → spinners-BBCWD2gw.mjs} +2 -2
- package/dist/chunks/{spinners-hf553hP9.mjs.map → spinners-BBCWD2gw.mjs.map} +1 -1
- package/dist/chunks/{spinners-CU3bLaoo.cjs → spinners-BL4ERCCw.cjs} +2 -2
- package/dist/chunks/{spinners-CU3bLaoo.cjs.map → spinners-BL4ERCCw.cjs.map} +1 -1
- package/dist/chunks/{splash-cursor-Dpzl_YXx.cjs → splash-cursor-BVSmbcIX.cjs} +9 -8
- package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
- package/dist/chunks/{splash-cursor-9BsoQZl0.mjs → splash-cursor-rSrTnawZ.mjs} +9 -8
- package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
- package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs → spotlight-card-BpZLMOp6.mjs} +1 -1
- package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs.map → spotlight-card-BpZLMOp6.mjs.map} +1 -1
- package/dist/chunks/{spotlight-card-SUhrgstF.cjs → spotlight-card-DS1dy1W3.cjs} +1 -1
- package/dist/chunks/{spotlight-card-SUhrgstF.cjs.map → spotlight-card-DS1dy1W3.cjs.map} +1 -1
- package/dist/chunks/stepper-D6qQbZdg.cjs +642 -0
- package/dist/chunks/stepper-D6qQbZdg.cjs.map +1 -0
- package/dist/chunks/stepper-DUknuW2E.mjs +618 -0
- package/dist/chunks/stepper-DUknuW2E.mjs.map +1 -0
- package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs → sun-to-moon-button-B2Aje05o.mjs} +3 -3
- package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs.map → sun-to-moon-button-B2Aje05o.mjs.map} +1 -1
- package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs → sun-to-moon-button-BmFwRBye.cjs} +3 -3
- package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs.map → sun-to-moon-button-BmFwRBye.cjs.map} +1 -1
- package/dist/chunks/{switch-y8oWcyLp.cjs → switch-C5otDb4c.cjs} +3 -3
- package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
- package/dist/chunks/{switch-DYLavKgf.mjs → switch-DOVl_i_s.mjs} +3 -3
- package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
- package/dist/chunks/textarea-Blky_fLK.mjs +57 -0
- package/dist/chunks/textarea-Blky_fLK.mjs.map +1 -0
- package/dist/chunks/textarea-ok_NlE2p.cjs +63 -0
- package/dist/chunks/textarea-ok_NlE2p.cjs.map +1 -0
- package/dist/chunks/{theme-CBtWIFMT.cjs → theme-7DWLxJK_.cjs} +4 -2
- package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
- package/dist/chunks/{theme-Bwu0HKqZ.mjs → theme-BceKeYhw.mjs} +4 -2
- package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
- package/dist/chunks/{toast-C8JRhbSo.mjs → toast-CvfP7PUP.mjs} +20 -20
- package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
- package/dist/chunks/{toast-DWOwpD2F.cjs → toast-Ds7_19Ap.cjs} +20 -20
- package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
- package/dist/chunks/{tooltip-YtA_66_1.mjs → tooltip-efHETBo1.mjs} +1 -1
- package/dist/chunks/{tooltip-YtA_66_1.mjs.map → tooltip-efHETBo1.mjs.map} +1 -1
- package/dist/chunks/{tooltip-BHXNmXsa.cjs → tooltip-nkIqViGk.cjs} +1 -1
- package/dist/chunks/{tooltip-BHXNmXsa.cjs.map → tooltip-nkIqViGk.cjs.map} +1 -1
- package/dist/chunks/{typography-BzprBnQc.mjs → typography-CLu6Hx9j.mjs} +7 -3
- package/dist/chunks/{typography-BzprBnQc.mjs.map → typography-CLu6Hx9j.mjs.map} +1 -1
- package/dist/chunks/{typography-3wSx67DZ.cjs → typography-DaLu9tty.cjs} +7 -3
- package/dist/chunks/{typography-3wSx67DZ.cjs.map → typography-DaLu9tty.cjs.map} +1 -1
- package/dist/color-palette.cjs +1 -1
- package/dist/color-palette.mjs +1 -1
- package/dist/colors.css +123 -185
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.mjs +1 -1
- package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -1
- package/dist/components/data-display/charts/BarChart.d.ts +1 -0
- package/dist/components/data-display/charts/BarChart.d.ts.map +1 -1
- package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -1
- package/dist/components/data-display/charts/PieChart.d.ts +18 -2
- package/dist/components/data-display/charts/PieChart.d.ts.map +1 -1
- package/dist/components/data-display/charts/PositiveNegativeBarChart.d.ts +21 -0
- package/dist/components/data-display/charts/PositiveNegativeBarChart.d.ts.map +1 -0
- package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -1
- package/dist/components/data-display/charts/ThinBreakdownBar.d.ts +3 -0
- package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
- package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
- package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
- package/dist/components/data-display/charts/chartStyles.d.ts +24 -0
- package/dist/components/data-display/charts/chartStyles.d.ts.map +1 -0
- package/dist/components/data-display/charts/index.d.ts +4 -0
- package/dist/components/data-display/charts/index.d.ts.map +1 -1
- package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
- package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTable.d.ts +17 -10
- package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
- package/dist/components/data-display/data-table/index.d.ts +1 -1
- package/dist/components/data-display/data-table/index.d.ts.map +1 -1
- package/dist/components/data-display/index.d.ts +1 -0
- package/dist/components/data-display/index.d.ts.map +1 -1
- package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
- package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
- package/dist/components/data-display/progress-bar/index.d.ts +3 -0
- package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
- package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -1
- package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -1
- package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -1
- package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -1
- package/dist/components/forms/calendar/Calendar.d.ts.map +1 -1
- package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/forms/input/Input.d.ts.map +1 -1
- package/dist/components/forms/input/types.d.ts +5 -0
- package/dist/components/forms/input/types.d.ts.map +1 -1
- package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -1
- package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -1
- package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -1
- package/dist/components/forms/select/Select.d.ts.map +1 -1
- package/dist/components/forms/select/types.d.ts +9 -1
- package/dist/components/forms/select/types.d.ts.map +1 -1
- package/dist/components/forms/textarea/Textarea.d.ts.map +1 -1
- package/dist/components/icons/ColumnsIcon.d.ts +9 -0
- package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
- package/dist/components/icons/MailIcon.d.ts +9 -0
- package/dist/components/icons/MailIcon.d.ts.map +1 -0
- package/dist/components/icons/PlayIcon.d.ts +9 -0
- package/dist/components/icons/PlayIcon.d.ts.map +1 -0
- package/dist/components/icons/ZapIcon.d.ts +9 -0
- package/dist/components/icons/ZapIcon.d.ts.map +1 -0
- package/dist/components/icons/index.d.ts +4 -0
- package/dist/components/icons/index.d.ts.map +1 -1
- package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -1
- package/dist/components/navigation/stepper/Stepper1.d.ts +4 -0
- package/dist/components/navigation/stepper/Stepper1.d.ts.map +1 -0
- package/dist/components/navigation/stepper/Stepper2.d.ts +5 -0
- package/dist/components/navigation/stepper/Stepper2.d.ts.map +1 -0
- package/dist/components/navigation/stepper/index.d.ts +4 -1
- package/dist/components/navigation/stepper/index.d.ts.map +1 -1
- package/dist/components/navigation/stepper/types.d.ts +85 -0
- package/dist/components/navigation/stepper/types.d.ts.map +1 -1
- package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -1
- package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -1
- package/dist/components/typography/Typography.d.ts.map +1 -1
- package/dist/data-table.cjs +1 -1
- package/dist/data-table.mjs +1 -1
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.mjs +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.mjs +1 -1
- package/dist/docs.cjs +60 -4
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.ts +59 -9
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.mjs +60 -4
- package/dist/docs.mjs.map +1 -1
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.mjs +1 -1
- package/dist/fonts.css +5 -0
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +1 -1
- package/dist/foundation.css +10 -3
- package/dist/foundations/theme/ThemeProvider.d.ts +1 -0
- package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/gradual-blur.cjs +1 -1
- package/dist/gradual-blur.mjs +1 -1
- package/dist/hover-card.cjs +1 -1
- package/dist/hover-card.mjs +1 -1
- package/dist/icons.cjs +5 -1
- package/dist/icons.mjs +2 -2
- package/dist/index.cjs +56 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +44 -43
- package/dist/index.mjs.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.mjs +1 -1
- package/dist/label.cjs +1 -1
- package/dist/label.mjs +1 -1
- package/dist/loading.cjs +1 -1
- package/dist/loading.mjs +1 -1
- package/dist/multi-select-combobox.cjs +1 -1
- package/dist/multi-select-combobox.mjs +1 -1
- package/dist/otp-input.cjs +1 -1
- package/dist/otp-input.mjs +1 -1
- package/dist/password-strength-meter.cjs +1 -1
- package/dist/password-strength-meter.mjs +1 -1
- package/dist/progress-bar.cjs +3 -0
- package/dist/progress-bar.d.ts +2 -0
- package/dist/progress-bar.mjs +2 -0
- package/dist/radio.cjs +1 -1
- package/dist/radio.mjs +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.mjs +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.mjs +1 -1
- package/dist/spinners.cjs +1 -1
- package/dist/spinners.mjs +1 -1
- package/dist/splash-cursor.cjs +1 -1
- package/dist/splash-cursor.mjs +1 -1
- package/dist/spotlight-card.cjs +1 -1
- package/dist/spotlight-card.mjs +1 -1
- package/dist/stepper.cjs +5 -1
- package/dist/stepper.mjs +2 -2
- package/dist/sun-to-moon-button.cjs +1 -1
- package/dist/sun-to-moon-button.mjs +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.mjs +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.mjs +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.mjs +1 -1
- package/dist/toast.cjs +1 -1
- package/dist/toast.mjs +1 -1
- package/dist/tokens.css +601 -0
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.mjs +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.mjs +1 -1
- package/package.json +20 -6
- package/dist/chunks/accordion-BZ5hyz0_.cjs.map +0 -1
- package/dist/chunks/accordion-C_0oGZkZ.mjs.map +0 -1
- package/dist/chunks/alert-BdBDWqBN.cjs.map +0 -1
- package/dist/chunks/alert-DeVa-NR1.mjs.map +0 -1
- package/dist/chunks/ascii-text-BzQCLfya.mjs.map +0 -1
- package/dist/chunks/ascii-text-D6lVHWph.cjs.map +0 -1
- package/dist/chunks/button-BH1eUjae.cjs.map +0 -1
- package/dist/chunks/button-CmNEMp_O.mjs.map +0 -1
- package/dist/chunks/calendar-BarcG6x_.mjs.map +0 -1
- package/dist/chunks/calendar-xrGmvukr.cjs.map +0 -1
- package/dist/chunks/card-CzstAQYy.mjs.map +0 -1
- package/dist/chunks/card-DZGM4zLx.cjs.map +0 -1
- package/dist/chunks/charts-Bynf6x07.mjs +0 -448
- package/dist/chunks/charts-Bynf6x07.mjs.map +0 -1
- package/dist/chunks/charts-UYl7Ecqv.cjs +0 -485
- package/dist/chunks/charts-UYl7Ecqv.cjs.map +0 -1
- package/dist/chunks/checkbox-B3eIojWs.mjs.map +0 -1
- package/dist/chunks/checkbox-DQmZwRTt.cjs.map +0 -1
- package/dist/chunks/chip-BH6wzwat.cjs.map +0 -1
- package/dist/chunks/chip-cZ7-HmWw.mjs.map +0 -1
- package/dist/chunks/chroma-grid-CC_fFzxO.mjs.map +0 -1
- package/dist/chunks/chroma-grid-DtsqM4LW.cjs.map +0 -1
- package/dist/chunks/color-palette-Cz7vqbil.cjs +0 -1156
- package/dist/chunks/color-palette-Cz7vqbil.cjs.map +0 -1
- package/dist/chunks/color-palette-yadpDCUw.mjs +0 -1150
- package/dist/chunks/color-palette-yadpDCUw.mjs.map +0 -1
- package/dist/chunks/combobox-B9Nzlhu3.mjs +0 -108
- package/dist/chunks/combobox-B9Nzlhu3.mjs.map +0 -1
- package/dist/chunks/combobox-mAvOcg-E.cjs.map +0 -1
- package/dist/chunks/data-table-BRcGhJDf.cjs.map +0 -1
- package/dist/chunks/data-table-Dp0t_I_z.mjs.map +0 -1
- package/dist/chunks/date-picker-BWBkr6LG.mjs +0 -112
- package/dist/chunks/date-picker-BWBkr6LG.mjs.map +0 -1
- package/dist/chunks/date-picker-DooielHi.cjs +0 -118
- package/dist/chunks/date-picker-DooielHi.cjs.map +0 -1
- package/dist/chunks/dialog-C6nxSfIl.mjs.map +0 -1
- package/dist/chunks/dialog-Cbuf8V0g.cjs.map +0 -1
- package/dist/chunks/drawer-DIuvgqTA.mjs +0 -105
- package/dist/chunks/drawer-DIuvgqTA.mjs.map +0 -1
- package/dist/chunks/drawer-Dn0u8Sck.cjs.map +0 -1
- package/dist/chunks/form-DcEuk721.cjs.map +0 -1
- package/dist/chunks/form-TwlDrshv.mjs.map +0 -1
- package/dist/chunks/hover-card-DwTVfjgN.mjs.map +0 -1
- package/dist/chunks/icons-CrM6pFkv.mjs.map +0 -1
- package/dist/chunks/icons-DYkpqWYG.cjs.map +0 -1
- package/dist/chunks/input-ChhwdNGk.mjs +0 -87
- package/dist/chunks/input-ChhwdNGk.mjs.map +0 -1
- package/dist/chunks/input-CoRHoZkB.cjs +0 -99
- package/dist/chunks/input-CoRHoZkB.cjs.map +0 -1
- package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs +0 -108
- package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs +0 -115
- package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs.map +0 -1
- package/dist/chunks/otp-input-CNungc1j.mjs.map +0 -1
- package/dist/chunks/otp-input-DaQDfI9C.cjs.map +0 -1
- package/dist/chunks/password-strength-meter-u4YI00zE.cjs.map +0 -1
- package/dist/chunks/password-strength-meter-xtMqhhFg.mjs.map +0 -1
- package/dist/chunks/radio-C-fPZgSY.mjs.map +0 -1
- package/dist/chunks/radio-mCgvEhOR.cjs.map +0 -1
- package/dist/chunks/select-BB-pOzI2.mjs +0 -116
- package/dist/chunks/select-BB-pOzI2.mjs.map +0 -1
- package/dist/chunks/select-BwelAQc1.cjs +0 -122
- package/dist/chunks/select-BwelAQc1.cjs.map +0 -1
- package/dist/chunks/splash-cursor-9BsoQZl0.mjs.map +0 -1
- package/dist/chunks/splash-cursor-Dpzl_YXx.cjs.map +0 -1
- package/dist/chunks/stepper-BDz6PkjV.cjs +0 -267
- package/dist/chunks/stepper-BDz6PkjV.cjs.map +0 -1
- package/dist/chunks/stepper-uz8iRzlY.mjs +0 -261
- package/dist/chunks/stepper-uz8iRzlY.mjs.map +0 -1
- package/dist/chunks/switch-DYLavKgf.mjs.map +0 -1
- package/dist/chunks/switch-y8oWcyLp.cjs.map +0 -1
- package/dist/chunks/textarea-BWkUVpm3.cjs +0 -66
- package/dist/chunks/textarea-BWkUVpm3.cjs.map +0 -1
- package/dist/chunks/textarea-Bxqe70TW.mjs +0 -60
- package/dist/chunks/textarea-Bxqe70TW.mjs.map +0 -1
- package/dist/chunks/theme-Bwu0HKqZ.mjs.map +0 -1
- package/dist/chunks/theme-CBtWIFMT.cjs.map +0 -1
- package/dist/chunks/toast-C8JRhbSo.mjs.map +0 -1
- 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
|
-
|
|
3
|
+
Typed React 19 component library for ERP, admin, and SaaS products.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
28
|
+
npm install framer-motion @tanstack/react-table three
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### Peer Dependency Guide
|
|
32
32
|
|
|
33
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
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/
|
|
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
|
|
77
|
+
import React from "react";
|
|
78
|
+
import ReactDOM from "react-dom/client";
|
|
60
79
|
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
<
|
|
65
|
-
|
|
66
|
-
</
|
|
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
|
-
|
|
112
|
+
### Next.js note
|
|
75
113
|
|
|
76
|
-
`erp-pro-ui`
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
90
|
-
or project-specific scaffolding without reaching into the web app source.
|
|
124
|
+
### Use the generated utility classes
|
|
91
125
|
|
|
92
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
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
|
-
|
|
157
|
+
You can also use the readable CSS variables in plain CSS, CSS Modules, or inline styles:
|
|
116
158
|
|
|
117
|
-
|
|
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
|
-
|
|
120
|
-
|
|
121
|
-
|
|
168
|
+
.dashboard-shell a {
|
|
169
|
+
color: var(--ds-color-accent);
|
|
170
|
+
}
|
|
122
171
|
|
|
123
|
-
|
|
172
|
+
.dashboard-shell .status-info {
|
|
173
|
+
color: var(--ds-color-info);
|
|
174
|
+
}
|
|
124
175
|
|
|
125
|
-
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
205
|
+
### Theme variable groups
|
|
210
206
|
|
|
211
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
249
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
225
|
+
## Import Patterns
|
|
255
226
|
|
|
256
|
-
|
|
227
|
+
Use whichever public import style fits your project.
|
|
228
|
+
|
|
229
|
+
### Root imports
|
|
257
230
|
|
|
258
231
|
```tsx
|
|
259
|
-
import {
|
|
232
|
+
import {
|
|
233
|
+
Button,
|
|
234
|
+
DataTable,
|
|
235
|
+
Dialog,
|
|
236
|
+
ThemeProvider,
|
|
237
|
+
ToastProvider,
|
|
238
|
+
Typography,
|
|
239
|
+
} from "erp-pro-ui";
|
|
240
|
+
```
|
|
260
241
|
|
|
261
|
-
|
|
262
|
-
<ThemeProvider>
|
|
263
|
-
<App />
|
|
264
|
-
</ThemeProvider>;
|
|
242
|
+
### Subpath imports
|
|
265
243
|
|
|
266
|
-
|
|
267
|
-
|
|
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
|
-
|
|
253
|
+
### Structured docs and catalog exports
|
|
271
254
|
|
|
272
|
-
|
|
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 {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
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
|
-
|
|
274
|
+
Only use the documented package exports. Do not import from `src/**` or internal folder paths.
|
|
290
275
|
|
|
291
|
-
|
|
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 {
|
|
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
|
-
|
|
297
|
-
<
|
|
298
|
-
|
|
299
|
-
|
|
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
|
-
|
|
302
|
-
|
|
303
|
-
|
|
383
|
+
export default function App() {
|
|
384
|
+
return (
|
|
385
|
+
<ThemeProvider>
|
|
386
|
+
<ToastProvider>
|
|
387
|
+
<DashboardDemo />
|
|
388
|
+
</ToastProvider>
|
|
389
|
+
</ThemeProvider>
|
|
390
|
+
);
|
|
391
|
+
}
|
|
304
392
|
```
|
|
305
393
|
|
|
306
|
-
|
|
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 {
|
|
485
|
+
import { Button, Dialog, ToastProvider, useToast } from "erp-pro-ui";
|
|
310
486
|
|
|
311
|
-
|
|
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
|
-
###
|
|
511
|
+
### Data table
|
|
315
512
|
|
|
316
513
|
```tsx
|
|
317
|
-
import {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
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
|
-
|
|
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
|
-
|
|
551
|
+
### Icons
|
|
335
552
|
|
|
336
553
|
```tsx
|
|
337
|
-
import {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
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
|
-
|
|
563
|
+
## Companion Surfaces
|
|
345
564
|
|
|
346
|
-
|
|
565
|
+
### Structured docs bundle
|
|
347
566
|
|
|
348
|
-
|
|
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
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
GradualBlur,
|
|
357
|
-
} from "erp-pro-ui";
|
|
571
|
+
getComponentDocByName,
|
|
572
|
+
libraryDocs,
|
|
573
|
+
searchComponentDocs,
|
|
574
|
+
} from "erp-pro-ui/docs";
|
|
358
575
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
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
|
-
|
|
367
|
-
<Carousel items={items} variant="glass" />
|
|
368
|
-
</AnimatedContent>
|
|
584
|
+
### Catalog bundle
|
|
369
585
|
|
|
370
|
-
|
|
371
|
-
|
|
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
|
-
|
|
594
|
+
### MCP server
|
|
378
595
|
|
|
379
|
-
|
|
596
|
+
For AI-assisted tooling and editor integrations, use the companion package:
|
|
380
597
|
|
|
381
598
|
```bash
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
# Type check
|
|
386
|
-
pnpm typecheck
|
|
599
|
+
npx -y erp-pro-ui-mcp-server
|
|
600
|
+
```
|
|
387
601
|
|
|
388
|
-
|
|
389
|
-
pnpm lint
|
|
602
|
+
Example MCP client config:
|
|
390
603
|
|
|
391
|
-
|
|
392
|
-
|
|
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
|
-
##
|
|
615
|
+
## Development In This Repo
|
|
396
616
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
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
|
-
##
|
|
625
|
+
## License
|
|
402
626
|
|
|
403
627
|
MIT
|