basuicn 0.2.6 → 0.2.8
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 +220 -96
- package/README_CLI.md +46 -44
- package/dist/assets/index-1YAQdTE0.css +2 -0
- package/dist/assets/index-BsQ6nn74.js +237 -0
- package/dist/index.html +4 -22
- package/dist/ui-cli.cjs +1 -1
- package/dist/ui-cli.js +124 -0
- package/package.json +106 -104
- package/registry.json +32 -83
- package/scripts/build-cli.mjs +12 -12
- package/scripts/bump-version.mjs +22 -0
- package/scripts/generate-theme-css.ts +74 -74
- package/scripts/set-version.mjs +31 -0
- package/scripts/ui-cli.ts +1 -1
- package/dist/assets/abap-CglpPUUh.js +0 -1
- package/dist/assets/actionscript-3-CGv72Q9E.js +0 -1
- package/dist/assets/ada-CfxXaXwr.js +0 -1
- package/dist/assets/andromeeda-DXsn6mTE.js +0 -1
- package/dist/assets/angular-html-Bc8jBW13.js +0 -1
- package/dist/assets/angular-ts-BKEiR2gl.js +0 -1
- package/dist/assets/apache-D5xAQKSB.js +0 -1
- package/dist/assets/apex-qgfedJV2.js +0 -1
- package/dist/assets/apl-akXtgiiz.js +0 -1
- package/dist/assets/applescript-DqumQxTt.js +0 -1
- package/dist/assets/ara-Ditv3ow6.js +0 -1
- package/dist/assets/asciidoc-DL8QwiT7.js +0 -1
- package/dist/assets/asm-K6TMxl3o.js +0 -1
- package/dist/assets/astro-CN0Tv6yD.js +0 -1
- package/dist/assets/aurora-x-DGv-xZaa.js +0 -1
- package/dist/assets/awk-CYSfQSDT.js +0 -1
- package/dist/assets/ayu-dark-DGBaJbpH.js +0 -1
- package/dist/assets/ayu-light-BQrGPVs2.js +0 -1
- package/dist/assets/ayu-mirage-Do-5o2VL.js +0 -1
- package/dist/assets/ballerina-BE-8n54s.js +0 -1
- package/dist/assets/base-80a1f760-BubTTHfk.js +0 -1
- package/dist/assets/bat-B1zTc1QZ.js +0 -1
- package/dist/assets/beancount-DhObrvif.js +0 -1
- package/dist/assets/berry-Cnbvthv1.js +0 -1
- package/dist/assets/bibtex-pp5SrwZy.js +0 -1
- package/dist/assets/bicep-BL6eYxbs.js +0 -1
- package/dist/assets/bird2-D57-fQHo.js +0 -1
- package/dist/assets/blade-e8vwYS05.js +0 -1
- package/dist/assets/bsl-B0twaj2j.js +0 -1
- package/dist/assets/c-BbKTZcBW.js +0 -1
- package/dist/assets/c3-BHTco5Hb.js +0 -1
- package/dist/assets/cadence-CoPxW0qb.js +0 -1
- package/dist/assets/cairo-DASKFAWI.js +0 -1
- package/dist/assets/catppuccin-frappe-9fYwMJCf.js +0 -1
- package/dist/assets/catppuccin-latte-BUiKH1yZ.js +0 -1
- package/dist/assets/catppuccin-macchiato-ZmO2e0M_.js +0 -1
- package/dist/assets/catppuccin-mocha-CFwbXQfO.js +0 -1
- package/dist/assets/chunk-BEqpzyXh.js +0 -1
- package/dist/assets/clarity-DVUGm1xP.js +0 -1
- package/dist/assets/clojure-BgXJG6FG.js +0 -1
- package/dist/assets/cmake-CZndsvm6.js +0 -1
- package/dist/assets/cobol-DYVFfDXp.js +0 -1
- package/dist/assets/codeowners-Dd7a447M.js +0 -1
- package/dist/assets/codeql-XJR6llG-.js +0 -1
- package/dist/assets/coffee--RG78j0v.js +0 -1
- package/dist/assets/common-lisp-BOMbLvgT.js +0 -1
- package/dist/assets/consoleHook-59e792cb-3dE1G69s.js +0 -2
- package/dist/assets/coq-DnhmQYDa.js +0 -1
- package/dist/assets/cpp-B8wbpQ1o.js +0 -1
- package/dist/assets/crystal-2t0qtInQ.js +0 -1
- package/dist/assets/csharp-BdEyRqBm.js +0 -1
- package/dist/assets/css-BGJ_Me92.js +0 -1
- package/dist/assets/csv-CXchYFbz.js +0 -1
- package/dist/assets/cue-D7YpBZvd.js +0 -1
- package/dist/assets/cypher-XIm1N8YJ.js +0 -1
- package/dist/assets/d-DvB0pbZH.js +0 -1
- package/dist/assets/dark-plus-BUdpMFIA.js +0 -1
- package/dist/assets/dart-CJ0nYDsz.js +0 -1
- package/dist/assets/dax-CEynWJsU.js +0 -1
- package/dist/assets/desktop-Dk-YiYS_.js +0 -1
- package/dist/assets/diff-abLZ-xM1.js +0 -1
- package/dist/assets/docker-BT48KsRJ.js +0 -1
- package/dist/assets/dotenv-NOMQQbM0.js +0 -1
- package/dist/assets/dracula-BUW0ZyNO.js +0 -1
- package/dist/assets/dracula-soft-BMjAt1_u.js +0 -1
- package/dist/assets/dream-maker-D26TP1Q3.js +0 -1
- package/dist/assets/edge-CxTqP9J2.js +0 -1
- package/dist/assets/elixir-rfdqmTwN.js +0 -1
- package/dist/assets/elm-b1gwuH2v.js +0 -1
- package/dist/assets/emacs-lisp-CgQmnPzZ.js +0 -1
- package/dist/assets/erb-BzQ154zj.js +0 -1
- package/dist/assets/erlang-DnbJbitJ.js +0 -1
- package/dist/assets/everforest-dark-hC6a272f.js +0 -1
- package/dist/assets/everforest-light-BTpbYY5G.js +0 -1
- package/dist/assets/fennel-DWOL-Ewx.js +0 -1
- package/dist/assets/fish-CQPQq0pQ.js +0 -1
- package/dist/assets/fluent-BYdsr2M8.js +0 -1
- package/dist/assets/fortran-fixed-form-Bse4XUyD.js +0 -1
- package/dist/assets/fortran-free-form-C_EtY4F9.js +0 -1
- package/dist/assets/fsharp-Dy8OnZ0O.js +0 -1
- package/dist/assets/gdresource-BD_7yRHA.js +0 -1
- package/dist/assets/gdscript-CH_tD-VB.js +0 -1
- package/dist/assets/gdshader-BemFblFP.js +0 -1
- package/dist/assets/genie-hCPg_eq7.js +0 -1
- package/dist/assets/gherkin-CO0ypD1P.js +0 -1
- package/dist/assets/git-commit-CIMjlyHf.js +0 -1
- package/dist/assets/git-rebase-BhLC-wcM.js +0 -1
- package/dist/assets/github-dark-cA72fqmI.js +0 -1
- package/dist/assets/github-dark-default-DiYTFvY5.js +0 -1
- package/dist/assets/github-dark-dimmed-D-uBHzyG.js +0 -1
- package/dist/assets/github-dark-high-contrast-BrUSkckI.js +0 -1
- package/dist/assets/github-light-default-BT-6Vf7C.js +0 -1
- package/dist/assets/github-light-high-contrast-DqmEyTTc.js +0 -1
- package/dist/assets/github-light-piFPqU8R.js +0 -1
- package/dist/assets/gleam-CWJA_H5i.js +0 -1
- package/dist/assets/glimmer-js-UABHyGyr.js +0 -1
- package/dist/assets/glimmer-ts-BZodzUJU.js +0 -1
- package/dist/assets/glsl-DB4OjpDf.js +0 -1
- package/dist/assets/gn-nlTwLSjP.js +0 -1
- package/dist/assets/gnuplot-wYV0MbPl.js +0 -1
- package/dist/assets/go-Dhd8RnZp.js +0 -1
- package/dist/assets/graphql-CjkeIubW.js +0 -1
- package/dist/assets/groovy-BusafOA8.js +0 -1
- package/dist/assets/gruvbox-dark-hard-BrrZYoPF.js +0 -1
- package/dist/assets/gruvbox-dark-medium-DsxcLuUs.js +0 -1
- package/dist/assets/gruvbox-dark-soft-DQXOs_GH.js +0 -1
- package/dist/assets/gruvbox-light-hard-CtHwj_cB.js +0 -1
- package/dist/assets/gruvbox-light-medium-CPJMdgXQ.js +0 -1
- package/dist/assets/gruvbox-light-soft-C4Xh9Hc-.js +0 -1
- package/dist/assets/hack-hTulK3E0.js +0 -1
- package/dist/assets/haml-0xmzGOI8.js +0 -1
- package/dist/assets/handlebars-BXRDjB0q.js +0 -1
- package/dist/assets/haskell-CaDqJkn4.js +0 -1
- package/dist/assets/haxe-Dxg-8_J7.js +0 -1
- package/dist/assets/hcl-Bjg-rMJ0.js +0 -1
- package/dist/assets/hjson-BMbeOOMg.js +0 -1
- package/dist/assets/hlsl-D-cuwCFV.js +0 -1
- package/dist/assets/horizon-BofYY9of.js +0 -1
- package/dist/assets/horizon-bright-BtJSJLk4.js +0 -1
- package/dist/assets/houston-BIBYxFpQ.js +0 -1
- package/dist/assets/html-DNHpMnNu.js +0 -1
- package/dist/assets/html-derivative-BBCc_afp.js +0 -1
- package/dist/assets/http-BJnSZ0fu.js +0 -1
- package/dist/assets/hurl-DVkxBugG.js +0 -1
- package/dist/assets/hxml-CGx66ebi.js +0 -1
- package/dist/assets/hy-Cye3Jt7O.js +0 -1
- package/dist/assets/imba-CjkQtgD2.js +0 -1
- package/dist/assets/index-599aeaf7-tfuZHJ9A.js +0 -16
- package/dist/assets/index-DMOps9TG.js +0 -1893
- package/dist/assets/index-DReVoGMp.css +0 -1
- package/dist/assets/ini-BvMtfDNl.js +0 -1
- package/dist/assets/java-D2XAnJB0.js +0 -1
- package/dist/assets/javascript-X-FQYNvg.js +0 -1
- package/dist/assets/jinja-BnJYnQiG.js +0 -1
- package/dist/assets/jison-DnA7sY80.js +0 -1
- package/dist/assets/json-SC38HrRr.js +0 -1
- package/dist/assets/json5-BCxDPjxU.js +0 -1
- package/dist/assets/jsonc-BV8VFjqO.js +0 -1
- package/dist/assets/jsonl-DHrr7c-M.js +0 -1
- package/dist/assets/jsonnet-xURar8mu.js +0 -1
- package/dist/assets/jssm-DtoLUQAt.js +0 -1
- package/dist/assets/jsx-bsCPoRSN.js +0 -1
- package/dist/assets/julia-Dk81kxcu.js +0 -1
- package/dist/assets/just-DvZye5TV.js +0 -1
- package/dist/assets/kanagawa-dragon-COwlYgQB.js +0 -1
- package/dist/assets/kanagawa-lotus-GZWqyq_E.js +0 -1
- package/dist/assets/kanagawa-wave-CP4uw3DX.js +0 -1
- package/dist/assets/kdl-DGo2N7N5.js +0 -1
- package/dist/assets/kotlin-Cm4W8Bbs.js +0 -1
- package/dist/assets/kusto-DNFwIuzY.js +0 -1
- package/dist/assets/laserwave-DfABGYsD.js +0 -1
- package/dist/assets/latex-D3SwBEWn.js +0 -1
- package/dist/assets/lean-D-8a6Wwv.js +0 -1
- package/dist/assets/less-B-qZzFKw.js +0 -1
- package/dist/assets/light-plus-DS_rmE1N.js +0 -1
- package/dist/assets/liquid-CVass2H-.js +0 -1
- package/dist/assets/llvm-Ch-k6TUk.js +0 -1
- package/dist/assets/log-BGwbCG2S.js +0 -1
- package/dist/assets/logo-DHGHbFWy.js +0 -1
- package/dist/assets/lua-D_mthnvY.js +0 -1
- package/dist/assets/luau-qsvm_nYh.js +0 -1
- package/dist/assets/make-Dlfjp_Q8.js +0 -1
- package/dist/assets/markdown-COh4ruD_.js +0 -1
- package/dist/assets/marko-LZp-7Vlz.js +0 -1
- package/dist/assets/material-theme-Ccrl1jie.js +0 -1
- package/dist/assets/material-theme-darker-CcOH0iHe.js +0 -1
- package/dist/assets/material-theme-lighter-DoKpC7NM.js +0 -1
- package/dist/assets/material-theme-ocean-BcvBZHgH.js +0 -1
- package/dist/assets/material-theme-palenight-DIL4EAzl.js +0 -1
- package/dist/assets/matlab-CBqMuw7w.js +0 -1
- package/dist/assets/mdc-BWMWBj66.js +0 -1
- package/dist/assets/mdx-BjoJxHxW.js +0 -1
- package/dist/assets/mermaid-DjAh2yR5.js +0 -1
- package/dist/assets/min-dark-CbwghdE5.js +0 -1
- package/dist/assets/min-light-_F39d_94.js +0 -1
- package/dist/assets/mipsasm-DA1H0O78.js +0 -1
- package/dist/assets/mojo-BVgjRjTn.js +0 -1
- package/dist/assets/monokai-CxgvaWkX.js +0 -1
- package/dist/assets/moonbit-tKY94ZOM.js +0 -1
- package/dist/assets/move-B5WspEjG.js +0 -1
- package/dist/assets/narrat-CDPRStf_.js +0 -1
- package/dist/assets/nextflow-D6ub5x6I.js +0 -1
- package/dist/assets/nextflow-groovy-DC2pAw1t.js +0 -1
- package/dist/assets/nginx-tinol6SS.js +0 -1
- package/dist/assets/night-owl-CCydx7ZR.js +0 -1
- package/dist/assets/night-owl-light-CLM7UUPY.js +0 -1
- package/dist/assets/nim-B62YiABd.js +0 -1
- package/dist/assets/nix-DXFN4IwW.js +0 -1
- package/dist/assets/node-C92mwFMz.js +0 -4
- package/dist/assets/nord-CiCWZ1de.js +0 -1
- package/dist/assets/nushell-Ck9o2qOx.js +0 -1
- package/dist/assets/objective-c-4koxci9E.js +0 -1
- package/dist/assets/objective-cpp-BPFAgSN9.js +0 -1
- package/dist/assets/ocaml-BdlBLhZV.js +0 -1
- package/dist/assets/odin-BcGOLCqZ.js +0 -1
- package/dist/assets/one-dark-pro-DEMdTgiO.js +0 -1
- package/dist/assets/one-light-Cmpe9X1u.js +0 -1
- package/dist/assets/openscad-DBveSHYE.js +0 -1
- package/dist/assets/pascal-DxOVE99u.js +0 -1
- package/dist/assets/perl-Di890ZVN.js +0 -1
- package/dist/assets/php-BE50NddE.js +0 -1
- package/dist/assets/pkl-pIvtf7Vu.js +0 -1
- package/dist/assets/plastic-Dvdf8qVN.js +0 -1
- package/dist/assets/plsql-d50MFTFK.js +0 -1
- package/dist/assets/po-CboxWwYg.js +0 -1
- package/dist/assets/poimandres-DHgQGH4M.js +0 -1
- package/dist/assets/polar-DNp7Oek8.js +0 -1
- package/dist/assets/postcss-LpmI6XQv.js +0 -1
- package/dist/assets/powerquery-BNCl8Uwz.js +0 -1
- package/dist/assets/powershell-CZ9J0XuS.js +0 -1
- package/dist/assets/prisma-AELUiJCl.js +0 -1
- package/dist/assets/prolog-BlqwejRD.js +0 -1
- package/dist/assets/proto-DRQC3swD.js +0 -1
- package/dist/assets/pug-DGP7PTk-.js +0 -1
- package/dist/assets/puppet-DBKR8MlH.js +0 -1
- package/dist/assets/purescript-DItLzxZS.js +0 -1
- package/dist/assets/python-D9t_ETu8.js +0 -1
- package/dist/assets/qml-BBpLsqsj.js +0 -1
- package/dist/assets/qmldir-DP_KD1nk.js +0 -1
- package/dist/assets/qss-CL02opOd.js +0 -1
- package/dist/assets/r-BL7rt_9D.js +0 -1
- package/dist/assets/racket-K0frLTWj.js +0 -1
- package/dist/assets/raku-DwgLlPg9.js +0 -1
- package/dist/assets/razor-CeWBotJS.js +0 -1
- package/dist/assets/red-DzDu-aXc.js +0 -1
- package/dist/assets/reg-B_y3c7di.js +0 -1
- package/dist/assets/regexp-Dd73s7V-.js +0 -1
- package/dist/assets/rel-CT65ywJp.js +0 -1
- package/dist/assets/riscv-Qv5W2vIg.js +0 -1
- package/dist/assets/ron-cRHu9zPp.js +0 -1
- package/dist/assets/rose-pine-DFmTJHIJ.js +0 -1
- package/dist/assets/rose-pine-dawn-YIuK9wUm.js +0 -1
- package/dist/assets/rose-pine-moon-BYEHfkUB.js +0 -1
- package/dist/assets/rosmsg-_L1z4wrx.js +0 -1
- package/dist/assets/rst-CKr96H10.js +0 -1
- package/dist/assets/ruby-B7TsannQ.js +0 -1
- package/dist/assets/runtime-Dva4yzBQ.js +0 -1
- package/dist/assets/rust-BA5wQ_EY.js +0 -1
- package/dist/assets/sas-C_sF_r8a.js +0 -1
- package/dist/assets/sass-sd__ov8V.js +0 -1
- package/dist/assets/scala--cVG4U7H.js +0 -1
- package/dist/assets/scheme-D6Q1O-kY.js +0 -1
- package/dist/assets/scss-B16LvjsL.js +0 -1
- package/dist/assets/sdbl-jB0DUrL_.js +0 -1
- package/dist/assets/shaderlab-uUHiM5Mm.js +0 -1
- package/dist/assets/shellscript-dnyLKRin.js +0 -1
- package/dist/assets/shellsession-DTlo_aKR.js +0 -1
- package/dist/assets/slack-dark-DHhAlQBa.js +0 -1
- package/dist/assets/slack-ochin-PZXbcZaN.js +0 -1
- package/dist/assets/smalltalk-C7VkdTlv.js +0 -1
- package/dist/assets/snazzy-light-CPc_Qts9.js +0 -1
- package/dist/assets/solarized-dark-DCCfKtTh.js +0 -1
- package/dist/assets/solarized-light-B84T-R9X.js +0 -1
- package/dist/assets/solidity-DVsDPpDS.js +0 -1
- package/dist/assets/soy-CYe5idz8.js +0 -1
- package/dist/assets/sparql-D5zsvcbT.js +0 -1
- package/dist/assets/splunk-A-BwP6Va.js +0 -1
- package/dist/assets/sql-D-E0nBNJ.js +0 -1
- package/dist/assets/ssh-config-CFPv6mTy.js +0 -1
- package/dist/assets/stata-uX6s6LU7.js +0 -1
- package/dist/assets/stylus-CUf3IESt.js +0 -1
- package/dist/assets/surrealql-GkyIuwxY.js +0 -1
- package/dist/assets/svelte-CfnJqTwW.js +0 -1
- package/dist/assets/swift-CSiiYB_Q.js +0 -1
- package/dist/assets/synthwave-84-uJp1j2Jd.js +0 -1
- package/dist/assets/system-verilog-rMjKy-O9.js +0 -1
- package/dist/assets/systemd-R-KDM4-t.js +0 -1
- package/dist/assets/talonscript-D666vCtm.js +0 -1
- package/dist/assets/tasl-68cbBocU.js +0 -1
- package/dist/assets/tcl-Y39dJ_pX.js +0 -1
- package/dist/assets/templ-D1EOUGk9.js +0 -1
- package/dist/assets/terraform-BF7wAo-b.js +0 -1
- package/dist/assets/tex-DJNezBXL.js +0 -1
- package/dist/assets/tokyo-night-EeABtN82.js +0 -1
- package/dist/assets/toml-BrMFN1JF.js +0 -1
- package/dist/assets/ts-tags-B6yMAMBr.js +0 -1
- package/dist/assets/tsv-Dp2l5v7f.js +0 -1
- package/dist/assets/tsx-BOLo_Ogf.js +0 -1
- package/dist/assets/turtle-_N1aDtpV.js +0 -1
- package/dist/assets/twig-BI3vVzh2.js +0 -1
- package/dist/assets/typescript-kRJFfHtG.js +0 -1
- package/dist/assets/typespec-b80CR7oU.js +0 -1
- package/dist/assets/typst-DP_izaNK.js +0 -1
- package/dist/assets/utils-52664384-CNFmSnPR.js +0 -6
- package/dist/assets/v-CdNC_Wok.js +0 -1
- package/dist/assets/vala-Bu4pYkLC.js +0 -1
- package/dist/assets/vb-u84IyWSS.js +0 -1
- package/dist/assets/verilog-BC33pi7Z.js +0 -1
- package/dist/assets/vesper-7-XtS0Kg.js +0 -1
- package/dist/assets/vhdl-BBxTOQe0.js +0 -1
- package/dist/assets/viml-X_r-ivXA.js +0 -1
- package/dist/assets/vitesse-black-DRdlY-cW.js +0 -1
- package/dist/assets/vitesse-dark-Bz0hOFHJ.js +0 -1
- package/dist/assets/vitesse-light-7kCLd0yn.js +0 -1
- package/dist/assets/vue-B2GeWsQX.js +0 -1
- package/dist/assets/vue-html-DIRaMPNP.js +0 -1
- package/dist/assets/vue-vine-CfdXDvVv.js +0 -1
- package/dist/assets/vyper-E7qIwMXy.js +0 -1
- package/dist/assets/wasm-C18OEcCL.js +0 -1
- package/dist/assets/wasm-CfqNvg3Z.js +0 -1
- package/dist/assets/wenyan-siXAC4el.js +0 -1
- package/dist/assets/wgsl-BJQt8Uld.js +0 -1
- package/dist/assets/wikitext-Ci0ePJmf.js +0 -1
- package/dist/assets/wit-BdDJ7geN.js +0 -1
- package/dist/assets/wolfram-Bi-O1IUM.js +0 -1
- package/dist/assets/xml-CFID48H0.js +0 -1
- package/dist/assets/xsl-BK4ngHMJ.js +0 -1
- package/dist/assets/yaml-D6lFkv0K.js +0 -1
- package/dist/assets/zenscript-CnkrxCBw.js +0 -1
- package/dist/assets/zig-CgMsxF9-.js +0 -1
package/dist/index.html
CHANGED
|
@@ -1,29 +1,11 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
1
|
<html lang="en">
|
|
3
2
|
<head>
|
|
4
3
|
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/
|
|
4
|
+
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
|
6
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Mục đích: Đọc localStorage và áp dụng class "dark" lên <html> ngay lập tức
|
|
11
|
-
để tránh hiện tượng nhấp nháy màu khi F5 lại trang.
|
|
12
|
-
-->
|
|
13
|
-
<script>
|
|
14
|
-
(function () {
|
|
15
|
-
try {
|
|
16
|
-
var theme = localStorage.getItem('theme');
|
|
17
|
-
if (theme === 'dark') {
|
|
18
|
-
document.documentElement.classList.add('dark');
|
|
19
|
-
}
|
|
20
|
-
} catch (e) {}
|
|
21
|
-
})();
|
|
22
|
-
</script>
|
|
23
|
-
<script type="module" crossorigin src="./assets/index-DMOps9TG.js"></script>
|
|
24
|
-
<link rel="modulepreload" crossorigin href="./assets/chunk-BEqpzyXh.js">
|
|
25
|
-
<link rel="modulepreload" crossorigin href="./assets/utils-52664384-CNFmSnPR.js">
|
|
26
|
-
<link rel="stylesheet" crossorigin href="./assets/index-DReVoGMp.css">
|
|
6
|
+
<title>ui_lib</title>
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-BsQ6nn74.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/index-1YAQdTE0.css">
|
|
27
9
|
</head>
|
|
28
10
|
<body>
|
|
29
11
|
<div id="root"></div>
|
package/dist/ui-cli.cjs
CHANGED
|
@@ -27,7 +27,7 @@ var import_fs = __toESM(require("fs"), 1);
|
|
|
27
27
|
var import_path = __toESM(require("path"), 1);
|
|
28
28
|
var import_child_process = require("child_process");
|
|
29
29
|
var import_readline = __toESM(require("readline"), 1);
|
|
30
|
-
var VERSION = "0.2.
|
|
30
|
+
var VERSION = "0.2.8";
|
|
31
31
|
var REGISTRY_LOCAL = "./registry.json";
|
|
32
32
|
var REGISTRY_REMOTE = "https://raw.githubusercontent.com/Basuicn/basuicn-core/main/registry.json";
|
|
33
33
|
var c = {
|
package/dist/ui-cli.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// scripts/ui-cli.ts
|
|
4
|
+
import fs from "fs";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import { execSync } from "child_process";
|
|
7
|
+
var REGISTRY_LOCAL = "./registry.json";
|
|
8
|
+
var REGISTRY_REMOTE = "https://raw.githubusercontent.com/huy14032003/ui-component/main/registry.json";
|
|
9
|
+
var log = (msg) => console.log(`[BASE-CUS-UI] ${msg}`);
|
|
10
|
+
var error = (msg) => console.error(`[BASE-CUS-UI] ERROR: ${msg}`);
|
|
11
|
+
var getTargetProjectDir = () => process.cwd();
|
|
12
|
+
var getRegistry = async (isLocal) => {
|
|
13
|
+
if (isLocal && fs.existsSync(REGISTRY_LOCAL)) {
|
|
14
|
+
log("S\u1EED d\u1EE5ng Registry n\u1ED9i b\u1ED9...");
|
|
15
|
+
return JSON.parse(fs.readFileSync(REGISTRY_LOCAL, "utf-8"));
|
|
16
|
+
}
|
|
17
|
+
log("\u0110ang t\u1EA3i Registry t\u1EEB m\xE1y ch\u1EE7 t\u1EEB xa...");
|
|
18
|
+
try {
|
|
19
|
+
const response = await fetch(REGISTRY_REMOTE);
|
|
20
|
+
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
|
|
21
|
+
return await response.json();
|
|
22
|
+
} catch (err) {
|
|
23
|
+
if (isLocal) {
|
|
24
|
+
error(`Kh\xF4ng t\xECm th\u1EA5y registry.json n\u1ED9i b\u1ED9 v\xE0 kh\xF4ng th\u1EC3 t\u1EA3i t\u1EEB xa: ${err.message}`);
|
|
25
|
+
} else {
|
|
26
|
+
error(`Kh\xF4ng th\u1EC3 t\u1EA3i Registry t\u1EEB GitHub: ${err.message}. H\xE3y ki\u1EC3m tra k\u1EBFt n\u1ED1i m\u1EA1ng.`);
|
|
27
|
+
}
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var installNpmPackages = (packages, cwd) => {
|
|
32
|
+
if (packages.length === 0) return;
|
|
33
|
+
const pkgJsonPath = path.join(cwd, "package.json");
|
|
34
|
+
let toInstall = packages;
|
|
35
|
+
if (fs.existsSync(pkgJsonPath)) {
|
|
36
|
+
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
|
|
37
|
+
const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
38
|
+
toInstall = packages.filter((p) => !allDeps[p]);
|
|
39
|
+
}
|
|
40
|
+
if (toInstall.length === 0) return;
|
|
41
|
+
log(`\u0110ang c\xE0i \u0111\u1EB7t c\xE1c g\xF3i npm: ${toInstall.join(", ")}...`);
|
|
42
|
+
try {
|
|
43
|
+
execSync(`npm install ${toInstall.join(" ")} --save`, { stdio: "inherit", cwd });
|
|
44
|
+
} catch (err) {
|
|
45
|
+
error("L\u1ED7i khi c\xE0i \u0111\u1EB7t c\xE1c g\xF3i npm.");
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var ensureCore = (registry, cwd) => {
|
|
49
|
+
const core = registry.core;
|
|
50
|
+
if (!core) return;
|
|
51
|
+
installNpmPackages(core.dependencies, cwd);
|
|
52
|
+
core.files.forEach((file) => {
|
|
53
|
+
const targetPath = path.join(cwd, file.path);
|
|
54
|
+
const targetDir = path.dirname(targetPath);
|
|
55
|
+
if (!fs.existsSync(targetDir)) {
|
|
56
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
57
|
+
}
|
|
58
|
+
if (!fs.existsSync(targetPath)) {
|
|
59
|
+
fs.writeFileSync(targetPath, file.content);
|
|
60
|
+
log(`\u0110\xE3 kh\u1EDFi t\u1EA1o file h\u1EC7 th\u1ED1ng: ${file.path}`);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
var addComponent = (name, registry, cwd, added = /* @__PURE__ */ new Set()) => {
|
|
65
|
+
if (added.has(name)) return;
|
|
66
|
+
added.add(name);
|
|
67
|
+
const component = registry.components[name];
|
|
68
|
+
if (!component) {
|
|
69
|
+
error(`Component "${name}" kh\xF4ng t\u1ED3n t\u1EA1i trong danh s\xE1ch.`);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
log(`\u0110ang th\xEAm component: ${name}...`);
|
|
73
|
+
ensureCore(registry, cwd);
|
|
74
|
+
installNpmPackages(component.dependencies, cwd);
|
|
75
|
+
if (component.internalDependencies) {
|
|
76
|
+
component.internalDependencies.forEach((dep) => {
|
|
77
|
+
if (registry.components[dep]) {
|
|
78
|
+
addComponent(dep, registry, cwd, added);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
component.files.forEach((file) => {
|
|
83
|
+
const targetPath = path.join(cwd, file.path);
|
|
84
|
+
const targetDir = path.dirname(targetPath);
|
|
85
|
+
if (!fs.existsSync(targetDir)) {
|
|
86
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
87
|
+
}
|
|
88
|
+
if (fs.existsSync(targetPath)) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
fs.writeFileSync(targetPath, file.content);
|
|
92
|
+
log(`\u0110\xE3 t\u1EA1o: ${file.path}`);
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
var main = async () => {
|
|
96
|
+
const args = process.argv.slice(2);
|
|
97
|
+
const isLocal = args.includes("--local");
|
|
98
|
+
const command = args.find((a) => !a.startsWith("--"));
|
|
99
|
+
const componentNames = args.filter((a) => a !== command && !a.startsWith("--"));
|
|
100
|
+
const cwd = getTargetProjectDir();
|
|
101
|
+
const registry = await getRegistry(isLocal);
|
|
102
|
+
if (command === "add") {
|
|
103
|
+
if (componentNames.length === 0) {
|
|
104
|
+
error("S\u1EED d\u1EE5ng: npx base-cus-ui add <t\xEAn-component>");
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
for (const name of componentNames) {
|
|
108
|
+
addComponent(name, registry, cwd);
|
|
109
|
+
}
|
|
110
|
+
log("T\u1EA5t c\u1EA3 component \u0111\xE3 \u0111\u01B0\u1EE3c th\xEAm th\xE0nh c\xF4ng!");
|
|
111
|
+
} else if (command === "list") {
|
|
112
|
+
log("Danh s\xE1ch component c\xF3 s\u1EB5n:");
|
|
113
|
+
Object.keys(registry.components).forEach((k) => console.log(` - ${k}`));
|
|
114
|
+
} else if (command === "init") {
|
|
115
|
+
ensureCore(registry, cwd);
|
|
116
|
+
log("Kh\u1EDFi t\u1EA1o ho\xE0n t\u1EA5t.");
|
|
117
|
+
} else if (command === "tailwind") {
|
|
118
|
+
console.log("\n--- SAO CH\xC9P V\xC0O tailwind.config.ts / tailwind.config.js ---\n");
|
|
119
|
+
console.log("// Xem trong README_CLI.md \u0111\u1EC3 bi\u1EBFt chi ti\u1EBFt c\u1EA5u h\xECnh");
|
|
120
|
+
} else {
|
|
121
|
+
log("Ch\xE0o m\u1EEBng \u0111\u1EBFn v\u1EDBi BASE-CUS-UI. C\xE1c l\u1EC7nh h\u1ED7 tr\u1EE3: init, add, list, tailwind.");
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
main();
|
package/package.json
CHANGED
|
@@ -1,104 +1,106 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "basuicn",
|
|
3
|
-
"private": false,
|
|
4
|
-
"version": "0.2.
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"basuicn": "./dist/ui-cli.cjs"
|
|
8
|
-
},
|
|
9
|
-
"files": [
|
|
10
|
-
"dist",
|
|
11
|
-
"registry.json",
|
|
12
|
-
"scripts",
|
|
13
|
-
"README_CLI.md"
|
|
14
|
-
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"test
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@storybook/addon-
|
|
43
|
-
"@storybook/addon-
|
|
44
|
-
"@storybook/
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
50
|
-
"@testing-library/
|
|
51
|
-
"@
|
|
52
|
-
"@
|
|
53
|
-
"@types/
|
|
54
|
-
"@types/
|
|
55
|
-
"@types/
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"@
|
|
59
|
-
"@vitest/
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"eslint
|
|
68
|
-
"eslint-plugin-
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"react
|
|
77
|
-
"react-
|
|
78
|
-
"react-
|
|
79
|
-
"react-
|
|
80
|
-
"react-
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"rehype-
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"recharts": "^
|
|
103
|
-
|
|
104
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "basuicn",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.2.8",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"basuicn": "./dist/ui-cli.cjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"registry.json",
|
|
12
|
+
"scripts",
|
|
13
|
+
"README_CLI.md"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"setup-hooks": "git config core.hooksPath .githooks",
|
|
17
|
+
"version:set": "node scripts/set-version.mjs",
|
|
18
|
+
"dev": "vite",
|
|
19
|
+
"build": "tsc -b && vite build",
|
|
20
|
+
"build:cli": "node scripts/build-cli.mjs",
|
|
21
|
+
"lint": "eslint .",
|
|
22
|
+
"preview": "vite preview",
|
|
23
|
+
"test": "vitest",
|
|
24
|
+
"test:ui": "vitest --ui",
|
|
25
|
+
"test:coverage": "vitest run --coverage",
|
|
26
|
+
"registry:build": "npx -y tsx scripts/build-registry.ts",
|
|
27
|
+
"theme:sync": "npx -y tsx scripts/generate-theme-css.ts",
|
|
28
|
+
"ui:add": "npx -y tsx scripts/ui-cli.ts add",
|
|
29
|
+
"storybook": "storybook dev -p 6006",
|
|
30
|
+
"build-storybook": "storybook build"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@babel/core": "^7.29.0",
|
|
34
|
+
"@base-ui/react": "^1.3.0",
|
|
35
|
+
"@chromatic-com/storybook": "^5.1.1",
|
|
36
|
+
"@codesandbox/sandpack-react": "^2.20.0",
|
|
37
|
+
"@eslint/js": "^9.39.4",
|
|
38
|
+
"@fontsource-variable/geist": "^5.2.8",
|
|
39
|
+
"@hookform/resolvers": "^5.2.2",
|
|
40
|
+
"@monaco-editor/react": "^4.7.0",
|
|
41
|
+
"@rolldown/plugin-babel": "^0.2.1",
|
|
42
|
+
"@storybook/addon-a11y": "^10.3.4",
|
|
43
|
+
"@storybook/addon-docs": "^10.3.4",
|
|
44
|
+
"@storybook/addon-onboarding": "^10.3.4",
|
|
45
|
+
"@storybook/addon-vitest": "^10.3.4",
|
|
46
|
+
"@storybook/react-vite": "^10.3.4",
|
|
47
|
+
"@tailwindcss/vite": "^4.2.2",
|
|
48
|
+
"@tanstack/react-table": "^8.21.3",
|
|
49
|
+
"@tanstack/react-virtual": "^3.13.23",
|
|
50
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
51
|
+
"@testing-library/react": "^16.3.2",
|
|
52
|
+
"@testing-library/user-event": "^14.6.1",
|
|
53
|
+
"@types/babel__core": "^7.20.5",
|
|
54
|
+
"@types/hast": "^3.0.4",
|
|
55
|
+
"@types/node": "^24.12.0",
|
|
56
|
+
"@types/react": "^19.2.14",
|
|
57
|
+
"@types/react-dom": "^19.2.3",
|
|
58
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
59
|
+
"@vitest/browser-playwright": "^4.1.2",
|
|
60
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
61
|
+
"@vitest/ui": "^4.1.2",
|
|
62
|
+
"autoprefixer": "^10.4.27",
|
|
63
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
64
|
+
"clsx": "^2.1.1",
|
|
65
|
+
"date-fns": "^4.1.0",
|
|
66
|
+
"dayjs": "^1.11.20",
|
|
67
|
+
"eslint": "^9.39.4",
|
|
68
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
69
|
+
"eslint-plugin-react-refresh": "^0.5.2",
|
|
70
|
+
"eslint-plugin-storybook": "^10.3.4",
|
|
71
|
+
"globals": "^17.4.0",
|
|
72
|
+
"jsdom": "^29.0.1",
|
|
73
|
+
"lucide-react": "^0.577.0",
|
|
74
|
+
"playwright": "^1.59.1",
|
|
75
|
+
"postcss": "^8.5.8",
|
|
76
|
+
"react": "^19.2.4",
|
|
77
|
+
"react-day-picker": "^9.14.0",
|
|
78
|
+
"react-dom": "^19.2.4",
|
|
79
|
+
"react-hook-form": "^7.72.0",
|
|
80
|
+
"react-live": "^4.1.8",
|
|
81
|
+
"react-resizable-panels": "^4.8.0",
|
|
82
|
+
"react-router-dom": "^7.13.2",
|
|
83
|
+
"rehype-parse": "^9.0.1",
|
|
84
|
+
"rehype-pretty-code": "^0.14.3",
|
|
85
|
+
"rehype-react": "^8.0.0",
|
|
86
|
+
"shiki": "^4.0.2",
|
|
87
|
+
"sonner": "^2.0.7",
|
|
88
|
+
"storybook": "^10.3.4",
|
|
89
|
+
"tailwind-merge": "^3.5.0",
|
|
90
|
+
"tailwind-variants": "^3.2.2",
|
|
91
|
+
"tailwindcss": "^4.2.2",
|
|
92
|
+
"tailwindcss-animate": "^1.0.7",
|
|
93
|
+
"tw-animate-css": "^1.4.0",
|
|
94
|
+
"typescript": "~5.9.3",
|
|
95
|
+
"typescript-eslint": "^8.57.0",
|
|
96
|
+
"unified": "^11.0.5",
|
|
97
|
+
"vite": "^8.0.1",
|
|
98
|
+
"vitest": "^4.1.2",
|
|
99
|
+
"zod": "^4.3.6"
|
|
100
|
+
},
|
|
101
|
+
"dependencies": {
|
|
102
|
+
"@recharts/devtools": "^0.0.11",
|
|
103
|
+
"keen-slider": "^6.8.6",
|
|
104
|
+
"recharts": "^3.8.1"
|
|
105
|
+
}
|
|
106
|
+
}
|