{"_id":"@a3s-lab/ui","_rev":"4-310e1614e3bf9520a14feb280b18aa8e","name":"@a3s-lab/ui","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@a3s-lab/ui","version":"0.2.0","keywords":["components","component library","component system","design system","a3s","ui","ui kit","shadcn","shadcn/ui","tailwind","tailwindcss","css","html","jinja","nunjucks"],"author":{"url":"https://github.com/A3S-Lab","name":"A3S Lab"},"license":"MIT","_id":"@a3s-lab/ui@0.2.0","maintainers":[{"name":"linzhixiao","email":"18770221825@163.com"}],"contributors":[{"url":"https://github.com/hunvreus","name":"Ronan Berder"}],"homepage":"https://a3s-lab.github.io/UI/installation.html","bugs":{"url":"https://github.com/A3S-Lab/UI/issues"},"dist":{"shasum":"83362e3e042c714f27ef81e3484df0bedf526391","tarball":"https://registry.npmjs.org/@a3s-lab/ui/-/ui-0.2.0.tgz","fileCount":165,"integrity":"sha512-CkPoWvnFT8vPyoK/sUTuF2BrA3AmRY5y0SDHfGfkPONPsUyc0cVTgGMluqEw1AoMKAdMASktU7CZ7Di8aq2ljA==","signatures":[{"sig":"MEUCIQDp2bj3uenliyqruHBbagHCHYOoagI5uNmhxwnsuUnCJAIgSjol1LSlVpz04+iVxU6uWu79fkd0VUlxU+etzULkI3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7129428},"main":"dist/a3s-ui.css","type":"module","style":"dist/a3s-ui.css","exports":{".":"./dist/a3s-ui.css","./a3s":"./dist/basecoat-a3s.css","./all":"./dist/js/all.js","./cdn":"./dist/a3s-ui.cdn.css","./css":"./dist/a3s-ui.css","./base":"./dist/basecoat-base.css","./luma":"./dist/basecoat-luma.css","./lyra":"./dist/basecoat-lyra.css","./maia":"./dist/basecoat-maia.css","./mira":"./dist/basecoat-mira.css","./nova":"./dist/basecoat-nova.css","./rhea":"./dist/basecoat-rhea.css","./sera":"./dist/basecoat-sera.css","./tabs":"./dist/js/tabs.js","./vega":"./dist/basecoat-vega.css","./chart":"./dist/js/chart.js","./range":"./dist/js/range.js","./toast":"./dist/js/toast.js","./compat":"./dist/basecoat-compat.css","./drawer":"./dist/js/drawer.js","./select":"./dist/js/select.js","./a3s.css":"./dist/basecoat-a3s.css","./all.css":"./dist/basecoat.all.css","./all.min":"./dist/js/all.min.js","./cdn.css":"./dist/a3s-ui.cdn.css","./cdn.min":"./dist/a3s-ui.cdn.min.css","./command":"./dist/js/command.js","./popover":"./dist/js/popover.js","./runtime":"./dist/js/runtime.js","./sidebar":"./dist/js/sidebar.js","./base.css":"./dist/basecoat-base.css","./basecoat":"./dist/js/basecoat.js","./combobox":"./dist/js/combobox.js","./luma.css":"./dist/basecoat-luma.css","./lyra.css":"./dist/basecoat-lyra.css","./maia.css":"./dist/basecoat-maia.css","./mira.css":"./dist/basecoat-mira.css","./nova.css":"./dist/basecoat-nova.css","./rhea.css":"./dist/basecoat-rhea.css","./sera.css":"./dist/basecoat-sera.css","./styles/*":"./dist/styles/*.css","./tabs.min":"./dist/js/tabs.min.js","./vega.css":"./dist/basecoat-vega.css","./accordion":"./dist/js/accordion.js","./chart.min":"./dist/js/chart.min.js","./range.min":"./dist/js/range.min.js","./toast.min":"./dist/js/toast.min.js","./a3s-ui.css":"./dist/a3s-ui.css","./compat.css":"./dist/basecoat-compat.css","./components":"./dist/basecoat-components.css","./drawer.min":"./dist/js/drawer.min.js","./select.min":"./dist/js/select.min.js","./split-pane":"./dist/js/split-pane.js","./styles/a3s":"./dist/styles/a3s.css","./cdn.min.css":"./dist/a3s-ui.cdn.min.css","./command.min":"./dist/js/command.min.js","./popover.min":"./dist/js/popover.min.js","./runtime.min":"./dist/js/runtime.min.js","./sidebar.min":"./dist/js/sidebar.min.js","./styles/luma":"./dist/styles/luma.css","./styles/lyra":"./dist/styles/lyra.css","./styles/maia":"./dist/styles/maia.css","./styles/mira":"./dist/styles/mira.css","./styles/nova":"./dist/styles/nova.css","./styles/rhea":"./dist/styles/rhea.css","./styles/sera":"./dist/styles/sera.css","./styles/vega":"./dist/styles/vega.css","./base.cdn.css":"./dist/basecoat-base.cdn.css","./basecoat.min":"./dist/js/basecoat.min.js","./combobox.min":"./dist/js/combobox.min.js","./components/*":"./dist/components/*.css","./package.json":"./package.json","./styles/*.css":"./dist/styles/*.css","./accordion.min":"./dist/js/accordion.min.js","./base/base.css":"./dist/base/base.css","./dropdown-menu":"./dist/js/dropdown-menu.js","./a3s-ui.cdn.css":"./dist/a3s-ui.cdn.css","./compat.cdn.css":"./dist/basecoat-compat.cdn.css","./components.css":"./dist/basecoat-components.css","./split-pane.min":"./dist/js/split-pane.min.js","./styles/a3s.css":"./dist/styles/a3s.css","./components/*.css":"./dist/components/*.css","./compat/legacy.css":"./dist/compat/legacy.css","./dropdown-menu.min":"./dist/js/dropdown-menu.min.js","./templates/jinja/*":"./templates/jinja/*","./a3s-ui.cdn.min.css":"./dist/a3s-ui.cdn.min.css","./styles/style-*.css":"./dist/styles/*.css","./templates/nunjucks/*":"./templates/nunjucks/*","./styles/style-luma.css":"./dist/styles/luma.css","./styles/style-lyra.css":"./dist/styles/lyra.css","./styles/style-maia.css":"./dist/styles/maia.css","./styles/style-mira.css":"./dist/styles/mira.css","./styles/style-nova.css":"./dist/styles/nova.css","./styles/style-rhea.css":"./dist/styles/rhea.css","./styles/style-sera.css":"./dist/styles/sera.css","./styles/style-vega.css":"./dist/styles/vega.css"},"scripts":{"build":"node ./scripts/build.js","prepack":"node ./scripts/build.js","prepare":"node ./scripts/build.js","docs:dev":"npm run build && npm --prefix site run dev","docs:build":"npm run build && npm --prefix site clean-install --registry=https://registry.npmjs.org/ --replace-registry-host=never --progress=false && npm --prefix site run build && npm --prefix site run check:site","test:visual":"npm run build && playwright test --config playwright.config.ts","docs:preview":"npm run docs:build && npm --prefix site run preview","test:e2e:a3s":"npm run docs:build && node ./scripts/run-a3s-e2e.mjs","check:package":"node ./scripts/check-package.mjs","release:check":"npm run build && npm run check:package && npm run docs:build && npm run test:e2e:a3s:check","prepublishOnly":"npm run build && npm run check:package","test:e2e:a3s:check":"node ./scripts/run-a3s-e2e.mjs --check-only","test:visual:update":"npm run build && playwright test --config playwright.config.ts --update-snapshots"},"_npmUser":{"name":"linzhixiao","email":"18770221825@163.com"},"repository":{"url":"git+https://github.com/A3S-Lab/UI.git","type":"git"},"_npmVersion":"11.9.0","description":"A framework-agnostic design system for A3S applications and agent workspaces","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"terser":"^5.42.0","prettier":"^3.5.3","tailwindcss":"^4.1.17","@playwright/test":"1.61.1","@tailwindcss/cli":"^4.1.17"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.0_1786097495592_0.3608034284766377","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@a3s-lab/ui","version":"0.2.1","keywords":["components","component library","component system","design system","a3s","ui","ui kit","shadcn","shadcn/ui","tailwind","tailwindcss","css","html","jinja","nunjucks"],"author":{"url":"https://github.com/A3S-Lab","name":"A3S Lab"},"license":"MIT","_id":"@a3s-lab/ui@0.2.1","maintainers":[{"name":"linzhixiao","email":"18770221825@163.com"}],"contributors":[{"url":"https://github.com/hunvreus","name":"Ronan Berder"}],"homepage":"https://a3s-lab.github.io/UI/installation.html","bugs":{"url":"https://github.com/A3S-Lab/UI/issues"},"dist":{"shasum":"7b5d1a69bd03b04f71509a316cbe2c5e9cce5c01","tarball":"https://registry.npmjs.org/@a3s-lab/ui/-/ui-0.2.1.tgz","fileCount":165,"integrity":"sha512-hvn9vRqkkh+aNSkSRjW3EwDHjPz9/uxTpvYLWQFzSElKYPZRPm6ZHUQsQJ08McdcyOXOn8eBUvRERWs7mW6cFw==","signatures":[{"sig":"MEQCIBOfIbJyidg6MQ5aLJcW71t+4j4p0KJ4UdW+Sa05e2LvAiAA0R3TwCEscacstvvjIUJpk7H1IMHNED31B8jGTPp+kA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7131490},"main":"dist/a3s-ui.css","type":"module","style":"dist/a3s-ui.css","exports":{".":"./dist/a3s-ui.css","./a3s":"./dist/basecoat-a3s.css","./all":"./dist/js/all.js","./cdn":"./dist/a3s-ui.cdn.css","./css":"./dist/a3s-ui.css","./base":"./dist/basecoat-base.css","./luma":"./dist/basecoat-luma.css","./lyra":"./dist/basecoat-lyra.css","./maia":"./dist/basecoat-maia.css","./mira":"./dist/basecoat-mira.css","./nova":"./dist/basecoat-nova.css","./rhea":"./dist/basecoat-rhea.css","./sera":"./dist/basecoat-sera.css","./tabs":"./dist/js/tabs.js","./vega":"./dist/basecoat-vega.css","./chart":"./dist/js/chart.js","./range":"./dist/js/range.js","./toast":"./dist/js/toast.js","./compat":"./dist/basecoat-compat.css","./drawer":"./dist/js/drawer.js","./select":"./dist/js/select.js","./a3s.css":"./dist/basecoat-a3s.css","./all.css":"./dist/basecoat.all.css","./all.min":"./dist/js/all.min.js","./cdn.css":"./dist/a3s-ui.cdn.css","./cdn.min":"./dist/a3s-ui.cdn.min.css","./command":"./dist/js/command.js","./popover":"./dist/js/popover.js","./runtime":"./dist/js/runtime.js","./sidebar":"./dist/js/sidebar.js","./base.css":"./dist/basecoat-base.css","./basecoat":"./dist/js/basecoat.js","./combobox":"./dist/js/combobox.js","./luma.css":"./dist/basecoat-luma.css","./lyra.css":"./dist/basecoat-lyra.css","./maia.css":"./dist/basecoat-maia.css","./mira.css":"./dist/basecoat-mira.css","./nova.css":"./dist/basecoat-nova.css","./rhea.css":"./dist/basecoat-rhea.css","./sera.css":"./dist/basecoat-sera.css","./styles/*":"./dist/styles/*.css","./tabs.min":"./dist/js/tabs.min.js","./vega.css":"./dist/basecoat-vega.css","./accordion":"./dist/js/accordion.js","./chart.min":"./dist/js/chart.min.js","./range.min":"./dist/js/range.min.js","./toast.min":"./dist/js/toast.min.js","./a3s-ui.css":"./dist/a3s-ui.css","./compat.css":"./dist/basecoat-compat.css","./components":"./dist/basecoat-components.css","./drawer.min":"./dist/js/drawer.min.js","./select.min":"./dist/js/select.min.js","./split-pane":"./dist/js/split-pane.js","./styles/a3s":"./dist/styles/a3s.css","./cdn.min.css":"./dist/a3s-ui.cdn.min.css","./command.min":"./dist/js/command.min.js","./popover.min":"./dist/js/popover.min.js","./runtime.min":"./dist/js/runtime.min.js","./sidebar.min":"./dist/js/sidebar.min.js","./styles/luma":"./dist/styles/luma.css","./styles/lyra":"./dist/styles/lyra.css","./styles/maia":"./dist/styles/maia.css","./styles/mira":"./dist/styles/mira.css","./styles/nova":"./dist/styles/nova.css","./styles/rhea":"./dist/styles/rhea.css","./styles/sera":"./dist/styles/sera.css","./styles/vega":"./dist/styles/vega.css","./base.cdn.css":"./dist/basecoat-base.cdn.css","./basecoat.min":"./dist/js/basecoat.min.js","./combobox.min":"./dist/js/combobox.min.js","./components/*":"./dist/components/*.css","./package.json":"./package.json","./styles/*.css":"./dist/styles/*.css","./accordion.min":"./dist/js/accordion.min.js","./base/base.css":"./dist/base/base.css","./dropdown-menu":"./dist/js/dropdown-menu.js","./a3s-ui.cdn.css":"./dist/a3s-ui.cdn.css","./compat.cdn.css":"./dist/basecoat-compat.cdn.css","./components.css":"./dist/basecoat-components.css","./split-pane.min":"./dist/js/split-pane.min.js","./styles/a3s.css":"./dist/styles/a3s.css","./components/*.css":"./dist/components/*.css","./compat/legacy.css":"./dist/compat/legacy.css","./dropdown-menu.min":"./dist/js/dropdown-menu.min.js","./templates/jinja/*":"./templates/jinja/*","./a3s-ui.cdn.min.css":"./dist/a3s-ui.cdn.min.css","./styles/style-*.css":"./dist/styles/*.css","./templates/nunjucks/*":"./templates/nunjucks/*","./styles/style-luma.css":"./dist/styles/luma.css","./styles/style-lyra.css":"./dist/styles/lyra.css","./styles/style-maia.css":"./dist/styles/maia.css","./styles/style-mira.css":"./dist/styles/mira.css","./styles/style-nova.css":"./dist/styles/nova.css","./styles/style-rhea.css":"./dist/styles/rhea.css","./styles/style-sera.css":"./dist/styles/sera.css","./styles/style-vega.css":"./dist/styles/vega.css"},"scripts":{"build":"node ./scripts/build.js","prepack":"node ./scripts/build.js","prepare":"node ./scripts/build.js","docs:dev":"npm run build && npm --prefix site run dev","docs:build":"npm run build && npm --prefix site clean-install --registry=https://registry.npmjs.org/ --replace-registry-host=never --progress=false && npm --prefix site run build && npm --prefix site run check:site","test:visual":"npm run build && playwright test --config playwright.config.ts","docs:preview":"npm run docs:build && npm --prefix site run preview","test:e2e:a3s":"npm run docs:build && node ./scripts/run-a3s-e2e.mjs","check:package":"node ./scripts/check-package.mjs","release:check":"npm run build && npm run check:package && npm run docs:build && npm run test:e2e:a3s:check","prepublishOnly":"npm run build && npm run check:package","test:e2e:a3s:check":"node ./scripts/run-a3s-e2e.mjs --check-only","test:visual:update":"npm run build && playwright test --config playwright.config.ts --update-snapshots"},"_npmUser":{"name":"linzhixiao","email":"18770221825@163.com"},"repository":{"url":"git+https://github.com/A3S-Lab/UI.git","type":"git"},"_npmVersion":"11.9.0","description":"A framework-agnostic design system for A3S applications and agent workspaces","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"terser":"^5.42.0","prettier":"^3.5.3","tailwindcss":"^4.1.17","@playwright/test":"1.61.1","@tailwindcss/cli":"^4.1.17"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.1_1786168264921_0.9515365244560379","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@a3s-lab/ui","version":"0.3.0","keywords":["components","component library","component system","design system","a3s","ui","ui kit","shadcn","shadcn/ui","tailwind","tailwindcss","css","html","jinja","nunjucks"],"author":{"url":"https://github.com/A3S-Lab","name":"A3S Lab"},"license":"MIT","_id":"@a3s-lab/ui@0.3.0","maintainers":[{"name":"linzhixiao","email":"18770221825@163.com"}],"contributors":[{"url":"https://github.com/hunvreus","name":"Ronan Berder"}],"homepage":"https://a3s-lab.github.io/UI/installation.html","bugs":{"url":"https://github.com/A3S-Lab/UI/issues"},"dist":{"shasum":"5fc0294fd1303c581c804da21f267c67f7ff8991","tarball":"https://registry.npmjs.org/@a3s-lab/ui/-/ui-0.3.0.tgz","fileCount":178,"integrity":"sha512-mVMx9GXXri97waz0YT/U3hI4KLXBUXZecOEpMLSe9zoT5MfmT0/J7H5Mt1JfkcPMI7Ge2fFhk/OcsdJJiFnYFA==","signatures":[{"sig":"MEUCIQDzIYXgMCsvefoZ+aj1o9tHd+Q8rWhelUdECcQMYXOiogIgUoizI9AUaqr6bARlnu2Md5xAShOT5lmeAg1a2DDieVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7986377},"main":"dist/a3s-ui.css","type":"module","style":"dist/a3s-ui.css","exports":{".":"./dist/a3s-ui.css","./a3s":"./dist/basecoat-a3s.css","./all":"./dist/js/all.js","./cdn":"./dist/a3s-ui.cdn.css","./css":"./dist/a3s-ui.css","./base":"./dist/basecoat-base.css","./luma":"./dist/basecoat-luma.css","./lyra":"./dist/basecoat-lyra.css","./maia":"./dist/basecoat-maia.css","./mira":"./dist/basecoat-mira.css","./nova":"./dist/basecoat-nova.css","./rhea":"./dist/basecoat-rhea.css","./sera":"./dist/basecoat-sera.css","./tabs":"./dist/js/tabs.js","./tree":"./dist/js/tree.js","./vega":"./dist/basecoat-vega.css","./chart":"./dist/js/chart.js","./range":"./dist/js/range.js","./toast":"./dist/js/toast.js","./compat":"./dist/basecoat-compat.css","./drawer":"./dist/js/drawer.js","./select":"./dist/js/select.js","./a3s.css":"./dist/basecoat-a3s.css","./all.css":"./dist/basecoat.all.css","./all.min":"./dist/js/all.min.js","./cdn.css":"./dist/a3s-ui.cdn.css","./cdn.min":"./dist/a3s-ui.cdn.min.css","./command":"./dist/js/command.js","./popover":"./dist/js/popover.js","./runtime":"./dist/js/runtime.js","./sidebar":"./dist/js/sidebar.js","./base.css":"./dist/basecoat-base.css","./basecoat":"./dist/js/basecoat.js","./combobox":"./dist/js/combobox.js","./luma.css":"./dist/basecoat-luma.css","./lyra.css":"./dist/basecoat-lyra.css","./maia.css":"./dist/basecoat-maia.css","./mira.css":"./dist/basecoat-mira.css","./nova.css":"./dist/basecoat-nova.css","./rhea.css":"./dist/basecoat-rhea.css","./sera.css":"./dist/basecoat-sera.css","./styles/*":"./dist/styles/*.css","./tabs.min":"./dist/js/tabs.min.js","./tree.min":"./dist/js/tree.min.js","./vega.css":"./dist/basecoat-vega.css","./accordion":"./dist/js/accordion.js","./chart.min":"./dist/js/chart.min.js","./range.min":"./dist/js/range.min.js","./toast.min":"./dist/js/toast.min.js","./a3s-ui.css":"./dist/a3s-ui.css","./compat.css":"./dist/basecoat-compat.css","./components":"./dist/basecoat-components.css","./drawer.min":"./dist/js/drawer.min.js","./select.min":"./dist/js/select.min.js","./split-pane":"./dist/js/split-pane.js","./styles/a3s":"./dist/styles/a3s.css","./cdn.min.css":"./dist/a3s-ui.cdn.min.css","./code-editor":"./dist/js/code-editor.js","./command.min":"./dist/js/command.min.js","./popover.min":"./dist/js/popover.min.js","./runtime.min":"./dist/js/runtime.min.js","./sidebar.min":"./dist/js/sidebar.min.js","./styles/luma":"./dist/styles/luma.css","./styles/lyra":"./dist/styles/lyra.css","./styles/maia":"./dist/styles/maia.css","./styles/mira":"./dist/styles/mira.css","./styles/nova":"./dist/styles/nova.css","./styles/rhea":"./dist/styles/rhea.css","./styles/sera":"./dist/styles/sera.css","./styles/vega":"./dist/styles/vega.css","./base.cdn.css":"./dist/basecoat-base.cdn.css","./basecoat.min":"./dist/js/basecoat.min.js","./combobox.min":"./dist/js/combobox.min.js","./components/*":"./dist/components/*.css","./package.json":"./package.json","./styles/*.css":"./dist/styles/*.css","./accordion.min":"./dist/js/accordion.min.js","./base/base.css":"./dist/base/base.css","./dropdown-menu":"./dist/js/dropdown-menu.js","./a3s-ui.cdn.css":"./dist/a3s-ui.cdn.css","./compat.cdn.css":"./dist/basecoat-compat.cdn.css","./components.css":"./dist/basecoat-components.css","./split-pane.min":"./dist/js/split-pane.min.js","./styles/a3s.css":"./dist/styles/a3s.css","./code-editor.min":"./dist/js/code-editor.min.js","./components/*.css":"./dist/components/*.css","./compat/legacy.css":"./dist/compat/legacy.css","./dropdown-menu.min":"./dist/js/dropdown-menu.min.js","./templates/jinja/*":"./templates/jinja/*","./a3s-ui.cdn.min.css":"./dist/a3s-ui.cdn.min.css","./styles/style-*.css":"./dist/styles/*.css","./templates/nunjucks/*":"./templates/nunjucks/*","./styles/style-luma.css":"./dist/styles/luma.css","./styles/style-lyra.css":"./dist/styles/lyra.css","./styles/style-maia.css":"./dist/styles/maia.css","./styles/style-mira.css":"./dist/styles/mira.css","./styles/style-nova.css":"./dist/styles/nova.css","./styles/style-rhea.css":"./dist/styles/rhea.css","./styles/style-sera.css":"./dist/styles/sera.css","./styles/style-vega.css":"./dist/styles/vega.css"},"scripts":{"build":"node ./scripts/build.js","prepack":"node ./scripts/build.js","prepare":"node ./scripts/build.js","docs:dev":"npm run build && npm --prefix site run dev","docs:build":"npm run build && npm --prefix site clean-install --registry=https://registry.npmjs.org/ --replace-registry-host=never --progress=false && npm --prefix site run build && npm --prefix site run check:site","test:visual":"npm run build && playwright test --config playwright.config.ts","docs:preview":"npm run docs:build && npm --prefix site run preview","test:e2e:a3s":"npm run docs:build && node ./scripts/run-a3s-e2e.mjs","check:package":"node ./scripts/check-package.mjs","release:check":"npm run build && npm run check:package && npm run docs:build && npm run test:e2e:a3s:check","prepublishOnly":"npm run build && npm run check:package","test:e2e:a3s:check":"node ./scripts/run-a3s-e2e.mjs --check-only","test:visual:update":"npm run build && playwright test --config playwright.config.ts --update-snapshots"},"_npmUser":{"name":"linzhixiao","email":"18770221825@163.com"},"repository":{"url":"git+https://github.com/A3S-Lab/UI.git","type":"git"},"_npmVersion":"11.9.0","description":"A framework-agnostic design system for A3S applications and agent workspaces","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"terser":"^5.42.0","prettier":"^3.5.3","tailwindcss":"^4.1.17","@playwright/test":"1.61.1","@tailwindcss/cli":"^4.1.17"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.3.0_1786539782467_0.2747958647623663","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@a3s-lab/ui","version":"0.4.0","description":"A framework-agnostic design system for A3S applications and agent workspaces","author":{"name":"A3S Lab","url":"https://github.com/A3S-Lab"},"contributors":[{"name":"Ronan Berder","url":"https://github.com/hunvreus"}],"license":"MIT","type":"module","main":"dist/a3s-ui.css","style":"dist/a3s-ui.css","publishConfig":{"access":"public","provenance":true,"registry":"https://registry.npmjs.org/"},"bin":{"a3s-form":"dist/form/cli.js","a3s-ui-form":"dist/form/cli.js"},"keywords":["components","component library","component system","design system","a3s","ui","ui kit","shadcn","shadcn/ui","tailwind","tailwindcss","css","html","jinja","nunjucks"],"repository":{"type":"git","url":"git+https://github.com/A3S-Lab/UI.git"},"bugs":{"url":"https://github.com/A3S-Lab/UI/issues"},"homepage":"https://a3s-lab.github.io/UI/installation.html","exports":{".":"./dist/a3s-ui.css","./css":"./dist/a3s-ui.css","./a3s-ui.css":"./dist/a3s-ui.css","./cdn":"./dist/a3s-ui.cdn.css","./cdn.css":"./dist/a3s-ui.cdn.css","./cdn.min":"./dist/a3s-ui.cdn.min.css","./cdn.min.css":"./dist/a3s-ui.cdn.min.css","./a3s-ui.cdn.css":"./dist/a3s-ui.cdn.css","./a3s-ui.cdn.min.css":"./dist/a3s-ui.cdn.min.css","./a3s":"./dist/basecoat-a3s.css","./a3s.css":"./dist/basecoat-a3s.css","./basecoat":"./dist/js/basecoat.js","./basecoat.min":"./dist/js/basecoat.min.js","./runtime":"./dist/js/runtime.js","./runtime.min":"./dist/js/runtime.min.js","./ai":{"types":"./dist/ai/runtime.d.ts","import":"./dist/ai/runtime.js"},"./manifest":{"types":"./dist/ai/manifest.d.ts","import":"./dist/ai/manifest.js"},"./components.json":"./dist/ai/components.json","./a3s-test":"./dist/ai/a3s-test.acl","./a3s-test/selectors":{"types":"./dist/ai/a3s-test/selectors.d.ts","import":"./dist/ai/a3s-test/selectors.js"},"./react":{"types":"./dist/frameworks/react.d.ts","import":"./dist/frameworks/react.js"},"./vue":{"types":"./dist/frameworks/vue.d.ts","import":"./dist/frameworks/vue.js"},"./tiptap/react":{"types":"./dist/integrations/tiptap/react.d.ts","import":"./dist/integrations/tiptap/react.js"},"./tiptap/vue":{"types":"./dist/integrations/tiptap/vue.d.ts","import":"./dist/integrations/tiptap/vue.js"},"./dockview":{"types":"./dist/integrations/dockview/shared.d.ts","import":"./dist/integrations/dockview/shared.js"},"./dockview/react":{"types":"./dist/integrations/dockview/react.d.ts","import":"./dist/integrations/dockview/react.js"},"./dockview/vue":{"types":"./dist/integrations/dockview/vue.d.ts","import":"./dist/integrations/dockview/vue.js"},"./dockview/css":"./dist/integrations/dockview/a3s.css","./dockview/a3s.css":"./dist/integrations/dockview/a3s.css","./form":{"types":"./dist/form/index.d.ts","import":"./dist/form/index.js"},"./form/core":{"types":"./dist/form/core.d.ts","import":"./dist/form/core.js"},"./form/cloud":{"types":"./dist/form/cloud.d.ts","import":"./dist/form/cloud.js"},"./form/react":{"types":"./dist/form/react.d.ts","import":"./dist/form/react.js"},"./form/react-hooks":{"types":"./dist/form/react-hooks.d.ts","import":"./dist/form/react-hooks.js"},"./form/vue":{"types":"./dist/form/vue.d.ts","import":"./dist/form/vue.js"},"./form/vue-hooks":{"types":"./dist/form/vue-hooks.d.ts","import":"./dist/form/vue-hooks.js"},"./form/web-component":{"types":"./dist/form/web-component.d.ts","import":"./dist/form/web-component.js"},"./form/compiler.worker.js":"./dist/form/workers/compiler.worker.js","./form/wasm/sha256.wasm":"./dist/form/wasm/sha256.wasm","./form/wasm/form-core.wasm":"./dist/form/wasm/form-core.wasm","./form/styles.css":"./dist/form/styles.css","./form/a3s-ui.css":"./dist/form/a3s-ui.css","./all":"./dist/js/all.js","./all.min":"./dist/js/all.min.js","./accordion":"./dist/js/accordion.js","./accordion.min":"./dist/js/accordion.min.js","./agent-composer":"./dist/js/agent-composer.js","./agent-composer.min":"./dist/js/agent-composer.min.js","./app-shell":"./dist/js/app-shell.js","./app-shell.min":"./dist/js/app-shell.min.js","./back-to-bottom":"./dist/js/back-to-bottom.js","./back-to-bottom.min":"./dist/js/back-to-bottom.min.js","./bulk-action-bar":"./dist/js/bulk-action-bar.js","./bulk-action-bar.min":"./dist/js/bulk-action-bar.min.js","./chart":"./dist/js/chart.js","./chart.min":"./dist/js/chart.min.js","./code-editor":"./dist/js/code-editor.js","./code-editor.min":"./dist/js/code-editor.min.js","./code-graph":"./dist/js/code-graph.js","./code-graph.min":"./dist/js/code-graph.min.js","./combobox":"./dist/js/combobox.js","./combobox.min":"./dist/js/combobox.min.js","./context-menu":"./dist/js/context-menu.js","./context-menu.min":"./dist/js/context-menu.min.js","./copy-button":"./dist/js/copy-button.js","./copy-button.min":"./dist/js/copy-button.min.js","./command":"./dist/js/command.js","./command.min":"./dist/js/command.min.js","./data-grid":"./dist/js/data-grid.js","./data-grid.min":"./dist/js/data-grid.min.js","./device-simulator":"./dist/js/device-simulator.js","./device-simulator.min":"./dist/js/device-simulator.min.js","./dropdown-menu":"./dist/js/dropdown-menu.js","./dropdown-menu.min":"./dist/js/dropdown-menu.min.js","./drawer":"./dist/js/drawer.js","./drawer.min":"./dist/js/drawer.min.js","./editable-text":"./dist/js/editable-text.js","./editable-text.min":"./dist/js/editable-text.min.js","./emoji-picker":"./dist/js/emoji-picker.js","./emoji-picker.min":"./dist/js/emoji-picker.min.js","./filter-bar":"./dist/js/filter-bar.js","./filter-bar.min":"./dist/js/filter-bar.min.js","./file-explorer":"./dist/js/file-explorer.js","./file-explorer.min":"./dist/js/file-explorer.min.js","./file-manager":"./dist/js/file-manager.js","./file-manager.min":"./dist/js/file-manager.min.js","./floating-panel":"./dist/js/floating-panel.js","./floating-panel.min":"./dist/js/floating-panel.min.js","./hotkey-input":"./dist/js/hotkey-input.js","./hotkey-input.min":"./dist/js/hotkey-input.min.js","./image-viewer":"./dist/js/image-viewer.js","./image-viewer.min":"./dist/js/image-viewer.min.js","./input-group":"./dist/js/input-group.js","./input-group.min":"./dist/js/input-group.min.js","./knowledge-library":"./dist/js/knowledge-library.js","./knowledge-library.min":"./dist/js/knowledge-library.min.js","./popover":"./dist/js/popover.js","./popover.min":"./dist/js/popover.min.js","./range":"./dist/js/range.js","./range.min":"./dist/js/range.min.js","./sortable-list":"./dist/js/sortable-list.js","./sortable-list.min":"./dist/js/sortable-list.min.js","./split-pane":"./dist/js/split-pane.js","./split-pane.min":"./dist/js/split-pane.min.js","./streaming-text":"./dist/js/streaming-text.js","./streaming-text.min":"./dist/js/streaming-text.min.js","./select":"./dist/js/select.js","./select.min":"./dist/js/select.min.js","./sidebar":"./dist/js/sidebar.js","./sidebar.min":"./dist/js/sidebar.min.js","./tabs":"./dist/js/tabs.js","./tabs.min":"./dist/js/tabs.min.js","./table-of-contents":"./dist/js/table-of-contents.js","./table-of-contents.min":"./dist/js/table-of-contents.min.js","./task-workspace":"./dist/js/task-workspace.js","./task-workspace.min":"./dist/js/task-workspace.min.js","./tool-call":"./dist/js/tool-call.js","./tool-call.min":"./dist/js/tool-call.min.js","./tool-call-timeline":"./dist/js/tool-call-timeline.js","./tool-call-timeline.min":"./dist/js/tool-call-timeline.min.js","./tree":"./dist/js/tree.js","./tree.min":"./dist/js/tree.min.js","./toast":"./dist/js/toast.js","./toast.min":"./dist/js/toast.min.js","./all.css":"./dist/basecoat.all.css","./base":"./dist/basecoat-base.css","./base.css":"./dist/basecoat-base.css","./base.cdn.css":"./dist/basecoat-base.cdn.css","./compat":"./dist/basecoat-compat.css","./compat.css":"./dist/basecoat-compat.css","./compat.cdn.css":"./dist/basecoat-compat.cdn.css","./compat/legacy.css":"./dist/compat/legacy.css","./components":"./dist/basecoat-components.css","./components.css":"./dist/basecoat-components.css","./components/*":"./dist/components/*.css","./components/*.css":"./dist/components/*.css","./base/base.css":"./dist/base/base.css","./styles/a3s":"./dist/styles/a3s.css","./styles/a3s.css":"./dist/styles/a3s.css","./vega":"./dist/basecoat-vega.css","./vega.css":"./dist/basecoat-vega.css","./nova":"./dist/basecoat-nova.css","./nova.css":"./dist/basecoat-nova.css","./maia":"./dist/basecoat-maia.css","./maia.css":"./dist/basecoat-maia.css","./lyra":"./dist/basecoat-lyra.css","./lyra.css":"./dist/basecoat-lyra.css","./mira":"./dist/basecoat-mira.css","./mira.css":"./dist/basecoat-mira.css","./luma":"./dist/basecoat-luma.css","./luma.css":"./dist/basecoat-luma.css","./sera":"./dist/basecoat-sera.css","./sera.css":"./dist/basecoat-sera.css","./rhea":"./dist/basecoat-rhea.css","./rhea.css":"./dist/basecoat-rhea.css","./styles/vega":"./dist/styles/vega.css","./styles/nova":"./dist/styles/nova.css","./styles/maia":"./dist/styles/maia.css","./styles/lyra":"./dist/styles/lyra.css","./styles/mira":"./dist/styles/mira.css","./styles/luma":"./dist/styles/luma.css","./styles/sera":"./dist/styles/sera.css","./styles/rhea":"./dist/styles/rhea.css","./styles/*":"./dist/styles/*.css","./styles/*.css":"./dist/styles/*.css","./package.json":"./package.json","./styles/style-vega.css":"./dist/styles/vega.css","./styles/style-nova.css":"./dist/styles/nova.css","./styles/style-maia.css":"./dist/styles/maia.css","./styles/style-lyra.css":"./dist/styles/lyra.css","./styles/style-mira.css":"./dist/styles/mira.css","./styles/style-luma.css":"./dist/styles/luma.css","./styles/style-sera.css":"./dist/styles/sera.css","./styles/style-rhea.css":"./dist/styles/rhea.css","./styles/style-*.css":"./dist/styles/*.css","./templates/nunjucks/*":"./templates/nunjucks/*","./templates/jinja/*":"./templates/jinja/*"},"scripts":{"build":"node ./scripts/build.js && node ./modules/form/scripts/build.mjs && tsc -p ./modules/form/tsconfig.build.json","check:coverage":"node ./scripts/check-reference-coverage.mjs","check:coverage:strict":"node ./scripts/check-reference-coverage.mjs --strict","generate:component-contracts":"node ./scripts/generate-component-contracts.mjs","check:component-contracts":"node ./scripts/generate-component-contracts.mjs --check","generate:surface-contracts":"node ./scripts/generate-surface-contracts.mjs","check:surface-contracts":"node ./scripts/generate-surface-contracts.mjs --check","generate:playground-component-contracts":"node ./scripts/generate-playground-component-contracts.mjs","check:playground-component-contracts":"node ./scripts/generate-playground-component-contracts.mjs --check","check:framework-docs":"node ./scripts/generate-framework-docs.mjs --check","check:boundaries":"node ./tests/reference-boundaries.mjs","prepare":"npm run build","prepack":"npm run build","prepublishOnly":"npm run build && npm run check:package","check:package":"node ./scripts/check-package.mjs","check:frameworks":"node ./tests/framework-adapters.mjs","release:check":"npm run check:coverage:strict && npm run check:component-contracts && npm run check:surface-contracts && npm run check:playground-component-contracts && npm run check:framework-docs && npm run check:boundaries && npm run form:check && npm run check:package && npm run check:frameworks && npm run docs:build && npm run test:e2e:a3s:check","form:build":"node ./modules/form/scripts/build.mjs && tsc -p ./modules/form/tsconfig.build.json","form:wasm:build":"node ./modules/form/scripts/build-wasm.mjs && node ./modules/form/scripts/build-core-wasm.mjs","form:core:wasm:build":"node ./modules/form/scripts/build-core-wasm.mjs","form:wasm:benchmark":"node ./modules/form/scripts/benchmark-wasm.mjs","form:typecheck":"tsc -p ./modules/form/tsconfig.json --noEmit","form:lint":"cd modules/form && ../../node_modules/.bin/biome check .","form:test":"cd modules/form && rstest run","form:test:coverage":"cd modules/form && rstest run --coverage --testTimeout 30000 --pool.maxWorkers 4","form:test:cli":"node ./modules/form/scripts/smoke-cli.mjs","form:test:package-entrypoints":"node ./modules/form/scripts/check-package-entrypoints.mjs","form:test:performance":"node ./modules/form/scripts/benchmark-runtime.mjs","form:test:embedding":"node ./modules/form/scripts/check-embedding.mjs","form:check":"npm run form:lint && npm run form:typecheck && npm run form:test:coverage && npm run build && npm run form:test:package-entrypoints && npm run form:test:performance && npm run form:test:embedding && npm run form:test:cli","docs:build":"npm run build && npm --prefix site clean-install --registry=https://registry.npmjs.org/ --replace-registry-host=never --progress=false && npm --prefix site run build && npm --prefix site run check:site","docs:dev":"npm run build && npm --prefix site run dev","docs:preview":"npm run docs:build && npm --prefix site run preview","test:e2e:a3s":"npm run docs:build && node ./scripts/run-a3s-e2e.mjs","test:e2e:a3s:check":"node ./scripts/run-a3s-e2e.mjs --check-only","test:visual":"npm run build && playwright test --config playwright.config.ts","test:components:semantic":"npm run build && playwright test visual-tests/component-ai-contracts.visual.spec.ts --config playwright.config.ts --project desktop-1280","test:visual:update":"npm run build && playwright test --config playwright.config.ts --update-snapshots"},"peerDependencies":{"@tiptap/core":">=3.27.3","@tiptap/extension-placeholder":">=3.27.3","@tiptap/markdown":">=3.27.3","@tiptap/pm":">=3.27.3","@tiptap/react":">=3.27.3","@tiptap/starter-kit":">=3.27.3","@tiptap/vue-3":">=3.27.3","dockview":">=8.1.0 <9","dockview-react":">=8.1.0 <9","dockview-vue":">=8.1.0 <9","react":">=18.2.0","react-dom":">=18.2.0","react-hook-form":">=7.85.0 <8","vue":">=3.4.0"},"peerDependenciesMeta":{"@tiptap/core":{"optional":true},"@tiptap/extension-placeholder":{"optional":true},"@tiptap/markdown":{"optional":true},"@tiptap/pm":{"optional":true},"@tiptap/react":{"optional":true},"@tiptap/starter-kit":{"optional":true},"@tiptap/vue-3":{"optional":true},"dockview":{"optional":true},"dockview-react":{"optional":true},"dockview-vue":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-hook-form":{"optional":true},"vue":{"optional":true}},"devDependencies":{"@biomejs/biome":"^2.4.15","@playwright/test":"1.61.1","@rsbuild/core":"^2.1.9","@rsbuild/plugin-react":"^2.1.0","@rstest/core":"^0.10.6","@rstest/coverage-v8":"^0.10.6","@tailwindcss/cli":"^4.1.17","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"^3.30.1","@tiptap/extension-placeholder":"^3.30.1","@tiptap/markdown":"^3.30.1","@tiptap/pm":"^3.30.1","@tiptap/react":"^3.30.1","@tiptap/starter-kit":"^3.30.1","@tiptap/vue-3":"^3.30.1","@types/node":"^24.13.3","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","dockview":"8.1.0","dockview-react":"8.1.0","dockview-vue":"8.1.0","esbuild":"^0.28.2","happy-dom":"^20.10.6","parse5":"^7.3.0","postcss":"^8.5.25","prettier":"^3.5.3","react":"^19.2.8","react-dom":"^19.2.8","react-hook-form":"^7.85.0","tailwindcss":"^4.1.17","terser":"^5.42.0","typescript":"^6.0.3","vue":"^3.5.28"},"_id":"@a3s-lab/ui@0.4.0","_nodeVersion":"26.8.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-a20cuLP9nB/G6RvJXfS2Nc0luCyQyn6/iCUV03lkvL7Rps5i24lI3Z0GukkTY0VTI2rsOkfzdkzUstNmtHdPFg==","shasum":"b687f69457979d9649a5dc3ecaab38a5a6941fcf","tarball":"https://registry.npmjs.org/@a3s-lab/ui/-/ui-0.4.0.tgz","fileCount":537,"unpackedSize":26337915,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCi1iEITZifEuZ4/WX7JHonEat5yPrLfwrKkjKjzbz6ggIgc4kmLbV5HKc6TJpSY4zRfI8IPhT8qp8/yN7w70PU41Q="}]},"_npmUser":{"name":"linzhixiao","email":"18770221825@163.com"},"directories":{},"maintainers":[{"name":"linzhixiao","email":"18770221825@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui_0.4.0_1789054962857_0.15318136396452853"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-07T10:11:35.358Z","modified":"2026-09-10T15:42:43.316Z","0.2.0":"2026-08-07T10:11:35.814Z","0.2.1":"2026-08-08T05:51:05.096Z","0.3.0":"2026-08-12T13:03:02.658Z","0.4.0":"2026-09-10T15:42:43.153Z"},"bugs":{"url":"https://github.com/A3S-Lab/UI/issues"},"author":{"name":"A3S Lab","url":"https://github.com/A3S-Lab"},"license":"MIT","homepage":"https://a3s-lab.github.io/UI/installation.html","keywords":["components","component library","component system","design system","a3s","ui","ui kit","shadcn","shadcn/ui","tailwind","tailwindcss","css","html","jinja","nunjucks"],"repository":{"type":"git","url":"git+https://github.com/A3S-Lab/UI.git"},"description":"A framework-agnostic design system for A3S applications and agent workspaces","contributors":[{"name":"Ronan Berder","url":"https://github.com/hunvreus"}],"maintainers":[{"name":"linzhixiao","email":"18770221825@163.com"}],"readme":"<p align=\"center\">\n  <img src=\"./assets/readme/hero.svg\" alt=\"A3S UI — one design system for every A3S surface\" width=\"1200\">\n</p>\n\n\n<p align=\"center\">\n  <strong>Language / 语言:</strong>\n  <a href=\"README.md\">English</a> ·\n  <a href=\"README.zh-CN.md\">中文</a>\n</p>\n\n<p align=\"center\">\n  用于任务工作区、文档工具和操作控制台的与框架无关的设计系统。\n</p>\n\n<p align=\"center\">\n  <a href=\"https://a3s-lab.github.io/UI/\"><img alt=\"Documentation in Simplified Chinese\" src=\"https://img.shields.io/badge/docs-简体中文-315fc4?style=flat-square\"></a>\n  <a href=\"https://a3s-lab.github.io/UI/en/\"><img alt=\"Documentation in English\" src=\"https://img.shields.io/badge/docs-English-5f6875?style=flat-square\"></a>\n  <a href=\"https://a3s-lab.github.io/UI/playground.html\"><img alt=\"A3S UI Playground\" src=\"https://img.shields.io/badge/try-Playground-2864e8?style=flat-square\"></a>\n  <a href=\"https://github.com/A3S-Lab/UI/actions/workflows/pages.yml\"><img alt=\"GitHub Pages deployment\" src=\"https://img.shields.io/github/actions/workflow/status/A3S-Lab/UI/pages.yml?branch=main&style=flat-square&label=pages\"></a>\n  <a href=\"./LICENSE.md\"><img alt=\"MIT license\" src=\"https://img.shields.io/badge/license-MIT-28a978?style=flat-square\"></a>\n</p>\n\n## 一种视觉语言，从控件到工作台\n\nA3S UI 将 A3S Office 中精炼的交互模式转变为可重用的语义 HTML。它结合了 Tailwind CSS v4、本机浏览器元素和小型普通 JavaScript 控制器，无需 React、Radix 或框架运行时。\n\n该系统现在公开了 116 个公共组件合约。 86 个通用组件涵盖控件、导航、内容、覆盖和产品结构，而 30 个组件 Harness 则对编码代理的任务、对话、执行、审查、证据、文件导航、知识管理、编辑、终端、日志和设备预览工作流程进行分组。\n\n<p align=\"center\">\n  <a href=\"https://a3s-lab.github.io/UI/\"><img src=\"./assets/readme/docs-home.png\" alt=\"A3S UI Chinese documentation homepage with the Office Workbench component specimen\" width=\"1280\"></a>\n</p>\n\n## 从三步开始\n\n从 npm 安装公共包：\n\n```bash\nnpm install @a3s-lab/ui\n```\n\n加载 Tailwind 和完整的 A3S 包：\n\n```css\n@import \"tailwindcss\";\n@import \"@a3s-lab/ui\";\n```\n\n不运行 Tailwind 的应用程序可以改为加载预编译包：\n\n```css\n@import \"@a3s-lab/ui/cdn.css\";\n```\n\n仅当界面使用交互式组合时才导入运行时：\n\n```js\nimport \"@a3s-lab/ui/all\";\n```\n\n然后用语义标记组成界面：\n\n```html\n<header class=\"workspace-header\">\n  <div data-workspace-identity>\n    <h1>Production gateway</h1>\n    <span>Configuration saved</span>\n  </div>\n  <div data-workspace-actions>\n    <button type=\"button\" class=\"btn\">Deploy</button>\n  </div>\n</header>\n```\n\n请参阅 [installation guide](https://a3s-lab.github.io/UI/installation.html) 了解拆分 CSS 导入、控制器级 JavaScript 导入和服务器渲染模板。\n\n## 组件系列\n\n|家庭|包含图案|\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|输入和行动|按钮、按钮组、批量操作栏、复制按钮、可编辑文本、表单、字段、输入、输入组、热键输入、文本区域和标签 |\n|选择和搜索|本机选择、选择、组合框、过滤器栏、日期选择器、色样、图像选择、表情符号选择器、复选框、单选按钮组、开关和滑块 |\n|导航 |活动栏、面包屑导航、返回底部、选项卡、分页、侧边栏和目录 |\n|覆盖|警报对话框、对话框、抽屉式菜单、下拉菜单、上下文菜单、弹出框、浮动面板、图像查看器、命令和工具提示 |\n|反馈和状态 |警报、徽章、状态徽章、空、进度、骨架、旋转器、流文本和 Toast |\n|数据与内容|手风琴、可折叠、头像、图标、文件类型图标、图像、卡片、项目、Kbd、Markdown 表面、荧光笔、代码差异、代码段、图表、属性列表、数据网格、表格、可排序列表、步进器、时间轴和树 |\n|布局和工作空间|应用程序外壳、应用程序页面、目录、设置行、品牌锁定、工作区标题、工具栏、功能区、设置布局、资源卡、拆分窗格、任务窗格和状态栏 |\n|线束|任务启动、任务工作区、代理编写器、代理成绩单、代理工作台、上下文选择器、消息状态、消息附件、消息引用、后续建议、任务计划、计划步骤、任务队列、批准请求、执行项目、检查点、工具调用、工具调用时间线、工具结果、更改审核、执行证据、工件卡、文件资源管理器、文件管理器、知识库、3D 代码图、代码编辑器、终端、日志查看器、和设备模拟器|\n|公用事业 |滚动区域和主题切换器 |\n\n可选的 Dockview 集成位于语义清单旁边，并添加了 Dock 工作区、网格视图、拆分视图和窗格视图，而无需更改 116 个组件的数量。它为本机 TypeScript、React 和 Vue 重新导出完整的 Dockview 8.1 MIT 表面，然后添加 A3S 主题令牌、版本化布局持久性和 Edge Group 安全布局重置。\n\n集成的 [Form system](https://a3s-lab.github.io/UI/components/form-system/) 添加了确定性 Form Core、可视化设计器、受控渲染器、持久交互合约、云主机适配器、CLI、Web 组件、React Hook Form 集成和本机 Vue 可组合项。它的指南和交互式示例直接位于 A3S UI 组件目录中。\n\n每个组件指南都包含实时预览、最低限度使用、公共参数、状态和变体以及可访问性注释。预览阶段派生正确的控件、内容、覆盖或工作区布局，而手机和平板电脑模式在独立的 CSS 视口中运行，因此响应式媒体查询使用选定的宽度。浏览[complete component catalog](https://a3s-lab.github.io/UI/components/)。\n\n## 设计基础\n\nA3S 主题是一个完整的设计系统，而不是叠加在不相关控件上的调色板：\n\n- **颜色** — 白色和近乎黑色的产品表面，虹膜焦点稀少，A3S 品牌蓝色，以及保留的语义状态。\n- **排版** — 应用程序优先的层次结构，具有密集的标签和可读的长格式文档。\n- **间距** — 控件、面板、工具栏和文档画布的一致节奏。\n- **形状和高度** - 限制半径、边界和阴影，以保留信息密度。\n- **运动** — 简短、有目的的过渡，具有减少运动的支持。\n- **辅助功能** — 语义元素、显式 ARIA 状态、键盘交互、RTL 感知布局和浅色/深色主题。\n\n## 应用规模模式和利用\n\n任务应用层是 A3S UI 与纯原始套件的不同之处：\n\n```text\nApp Shell\n├── Activity Bar\n├── Workspace Header\n├── App Page\n│   ├── Catalog\n│   └── Settings Layout + Setting Row\n├── Resource Card + Split Pane + Task Pane\n└── Status Bar\n\nHarness\n├── Task Start + Task Workspace\n├── Agent Composer + Agent Transcript + Agent Workbench\n├── Task Plan + Plan Step + Task Queue\n├── Approval Request + Execution Item + Tool Call\n├── Change Review + Execution Evidence + Artifact Card + Checkpoint\n└── File Explorer + Code Editor + Terminal + Log Viewer + Device Simulator\n\nDockview integration\n├── Dock Workspace + Tabs + Tab Groups + Edge Groups\n├── Floating Groups + Popout Windows + maximize/restore\n├── Save/restore + custom state + complete event API\n└── Grid View + Split View + Pane View\n```\n\n这些模式是独立可重用的，但它们的令牌和布局契约旨在组成文档编辑器、任务工作区和可观察性控制台。默认任务几何结构使用 248 像素导航区域、760 像素阅读列、320-380 像素可选检查器、36 像素控件和 44 像素粗指针目标。响应式导航成为 768 像素以下的包含式抽屉；检查员变为低于 900 像素的覆盖层和低于 520 像素的底部抽屉。\n\n设备模拟器在缩放的手机、平板电脑和桌面硬件外壳内保留精确的 iframe 视口尺寸，然后为受信任的 `a3s-webview` 主机公开结构化的本机预览边界。\n\n双语模式指南涵盖任务工作区、新任务、功能目录、设置中心、项目和自动化。应用程序继续拥有存储库、终端、浏览器、传输、调度、持久性和策略逻辑。\n\n独立的 [Playground](https://a3s-lab.github.io/UI/playground.html) 是双语、任务优先的 A3S 产品应用程序，而不是组件展示或可停靠 IDE。其规范的 `/playground` 路线系列将持久任务和项目会话、基于 TipTap 的编辑器、模型和工作量控制、工作空间参考、后续队列、权限审查、工具调用证据、Finder 风格的本地文件、代码和 Office/PDF 工作台、知识、内存、屏幕截图主导的灵感工作流程、扩展、自动化和生产设置结合在一个连贯的桌面和紧凑屏幕流程中。旧版 `/app` URL 仍然是路由别名。 Playground 位于文档章节层次结构之外。\n\n## 文档语言和版本\n\n该文档网站使用与 A3S Code 网站相同的 Rspress、React 和 TypeScript 堆栈。默认语言为简体中文；每个发布的版本还提供英文文档。当前的每个组件和 Harness 集成指南都通过一个持久选项卡集来呈现 HTML、React 和 Vue，其中包含框架正确的安装、所需的导入、突出显示的可复制示例以及公共合约具有行为的匹配挂钩或可组合项。\n\n|版本 | 简体中文 |英语 |\n| -------- | ------------------------------------------------------ | -------------------------------------------------------------------- |\n| `next` | [Default documentation](https://a3s-lab.github.io/UI/) | [English documentation](https://a3s-lab.github.io/UI/en/) |\n| `v0.4.0` | [Stable Chinese](https://a3s-lab.github.io/UI/v0.4.0/) | [Stable English](https://a3s-lab.github.io/UI/v0.4.0/en/) |\n| `v0.3.0` | [Stable Chinese](https://a3s-lab.github.io/UI/v0.3.0/) | [Stable English](https://a3s-lab.github.io/UI/v0.3.0/en/) |\n| `v0.2.0` | [Stable Chinese](https://a3s-lab.github.io/UI/v0.2.0/) | [Stable English](https://a3s-lab.github.io/UI/v0.2.0/en/) |\n| `v0.1.0` | [Stable Chinese](https://a3s-lab.github.io/UI/v0.1.0/) | [Stable English](https://a3s-lab.github.io/UI/v0.1.0/en/) |\n\n只要目标树中存在该路由，语言和版本切换就会保留当前页面。\n\n## 包入口点\n\n|进口|目的|\n| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| `@a3s-lab/ui` |完整的默认 A3S CSS 捆绑包 |\n| `@a3s-lab/ui/base` |没有视觉样式的令牌、实用程序和结构组件 CSS |\n| `@a3s-lab/ui/components/{name}.css` |一个组件的结构CSS |\n| `@a3s-lab/ui/styles/a3s.css` |用于分割导入构建的 A3S 视觉基础 |\n| `@a3s-lab/ui/runtime` |共享生命周期和控制器注册表|\n| `@a3s-lab/ui/all` |共享运行时加上所有自动初始化控制器（图表 | 除外）\n| `@a3s-lab/ui/{controller}` |一个 JavaScript 控制器，例如 `app-shell`、`task-workspace`、`tabs`、`split-pane`、`code-editor` 或 `device-simulator` |\n| `@a3s-lab/ui/manifest` |所有 116 个公共组件的机器可读元数据 |\n| `@a3s-lab/ui/components.json` | JSON 组件选择器、部件、操作、状态和测试选择器 |\n| `@a3s-lab/ui/ai` | DOM 注释、发现、选择器和快照助手 |\n| `@a3s-lab/ui/a3s-test` |准备运行的确定性工作流程示例 |\n| `@a3s-lab/ui/a3s-test/selectors` |组件、部分、操作、就绪和状态选择器助手 |\n| `@a3s-lab/ui/react` |可选的瘦 React 适配器和类型化控制器挂钩； React 仍然是对等依赖 |\n| `@a3s-lab/ui/vue` |可选的瘦 Vue 适配器和类型化控制器可组合项； Vue 仍然是对等依赖 |\n| `@a3s-lab/ui/dockview` |完整的本机 Dockview、Gridview、Splitview 和 Paneview API 以及 A3S 主题和持久性 |\n| `@a3s-lab/ui/dockview/react` |完整的 React Dockview API 以及布局和视图挂钩 |\n| `@a3s-lab/ui/dockview/vue` |完整的 Vue 3 Dockview API 以及匹配的可组合项 |\n| `@a3s-lab/ui/dockview/css` | Dockview 基础 CSS 和 A3S 浅色/深色主题变量 |\n| `@a3s-lab/ui/form` |表单文档、编译器、设计器、渲染器、适配器和集成合约 |\n| `@a3s-lab/ui/form/core` |独立于框架的编译、规则、验证、补丁、区域设置目录和无头状态 |\n| `@a3s-lab/ui/form/react` | React Designer、Renderer、文件上传、签名、数据源和检查器控件 |\n| `@a3s-lab/ui/form/react-hooks` | React Hook Form 兼容`useA3SForm`、解析器、字段数组、订阅和渲染器绑定 |\n| `@a3s-lab/ui/form/vue` | Vue 3 设计器和渲染器适配器 |\n| `@a3s-lab/ui/form/vue-hooks` | Native Vue `useA3SForm`、字段、字段数组、上下文、验证和渲染器可组合项 |\n| `@a3s-lab/ui/form/web-component` |框架中立的 `<a3s-form-designer>` 和 `<a3s-form-renderer>` 自定义元素 |\n| `@a3s-lab/ui/form/cloud` |类型A3S Cloud主机适配器|\n| `@a3s-lab/ui/form/a3s-ui.css` | A3S UI plus 产品界面的表单布局和交互样式 |\n| `@a3s-lab/ui/templates/*` |用于服务器渲染应用程序的 Nunjucks 和 Jinja 模板 |\n\n公共运行时命名空间是`window.a3sUI`。旧版运行时别名仍可用于兼容性。\n\n可选的语义运行时用 `data-a3s-components` 注释匹配的根，用 `data-a3s-parts` 注释部分，用 `data-a3s-part-owners` 注释精确的部分所有权，用 `data-a3s-state` 注释当前状态。它不会取代应用程序行为或引入框架运行时。请参阅双语 [Integration guide](https://a3s-lab.github.io/UI/integration.html) 了解本机 HTML、React、Vue 和确定性测试示例。\n\nReact 和 Vue 还公开了 `useA3SLocale`、`useA3STheme` 和 `useA3SMotion`。这些钩子和可组合项与原生 HTML 遵循相同的根 `lang`、`dir`、`data-theme`、`.dark` 和媒体查询约定；翻译资源、持久性和服务器协商仍然由应用程序拥有。\n\n运行时还会在视觉视口内保持打开的 `[data-popover]` 曲面。下拉菜单、弹出窗口、选择和组合框共享碰撞翻转、可用高度受限、实时滚动/调整大小定位和逻辑 RTL 对齐。\n\n## 发展\n\n```bash\nnpm ci\nnpm ci --prefix site\nnpm run build\nnpm run check:coverage:strict\nnpm run check:framework-docs\nnpm run check:boundaries\nnpm run check:package\nnpm run docs:build\nnpm run test:e2e:a3s:check\nnpx playwright install chromium\nnpm run test:visual\n```\n\n使用 `npm run docs:dev` 在本地运行文档站点。静态构建写入`site/doc_build`并从`main`部署到GitHub Pages。\n\n使用 `npm run test:e2e:a3s` 运行特定于组件和特定于路由的浏览器套件。报告的缺陷类保留为页面级A3S Test回归，包含操作状态断言、屏幕截图、控制台输出和页面错误证据。默认情况下，场景连续运行，因此状态预览保持确定性；仅当浏览器适配器有足够的隔离能力时才设置`A3S_TEST_MAX_PARALLEL`。该命令期望 `PATH` 上有 `a3s-test`；当本地适配器需要显式路径时，使用 `A3S_TEST_BIN`、`A3S_TEST_BROWSER_DRIVER` 和 `A3S_TEST_BROWSER_EXECUTABLE`。\n\n发布合同目前将 116 个公共组件、94 个 Playground 导出以及 20 个 Harness 或 Playground 表面映射到 230 个实质性 PRD。检查的 ACL 库存和证据总数位于`product-requirements/README.md`。 `npm run test:e2e:a3s:check` 在浏览器运行之前拒绝丢失、重复、浅、陈旧或无效的映射；机器可读索引位于`product-requirements/`下。\n\n视觉检查使用具有特定于平台的桌面和紧凑基线的 Playwright。每个公共组件路由还具有组件根几何结构和状态契约以及浏览器诊断覆盖范围。设置`A3S_UI_VISUAL_CHROMIUM_EXECUTABLE`以重用系统Chromium安装，并在默认本地端口被占用时设置`A3S_UI_VISUAL_PORT`；这些检查故意不属于 CI 的一部分。\n\n## 血统和许可\n\nA3S UI 建立在由 [Ronan Berder](https://github.com/hunvreus) 创建的 [Basecoat](https://github.com/hunvreus/basecoat) 的基础上，并保留其对 [shadcn/ui](https://ui.shadcn.com/) 视觉语言的语义 HTML 解释。 A3S 主题和工作台组件扩展了 A3S 产品的基础。\n\n在[MIT License](./LICENSE.md)下发布。\n","readmeFilename":"README.zh-CN.md"}