[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"i-simple-icons:github":3,"i-lucide:arrow-right":8,"doc-\u002Fdocs":10,"docs-sidebar":160,"doc-surround-\u002Fdocs":185},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"id":11,"title":12,"body":13,"description":150,"extension":151,"group":152,"groupOrder":153,"meta":154,"navTitle":12,"navigation":155,"order":153,"path":156,"seo":157,"stem":158,"__hash__":159},"docs\u002Fdocs\u002Findex.md","Introduction",{"type":14,"value":15,"toc":143},"minimark",[16,20,33,57,62,71,74,78,88,110,114],[17,18,12],"h1",{"id":19},"introduction",[21,22,23,27,28,32],"p",{},[24,25,26],"strong",{},"webmcpui"," is a framework-agnostic, WebMCP-native web component library. Phase 1 ships form primitives — shared behavior (form association, validation, WebMCP exposure, theming) lives in a ",[29,30,31],"code",{},"WmcpFormControl"," base class, and each element is a thin subclass that supplies its control and specifics.",[21,34,35,36,39,40,39,43,39,46,39,49,52,53,56],{},"Shipped so far: ",[29,37,38],{},"\u003Cwmcp-input>",", ",[29,41,42],{},"\u003Cwmcp-textarea>",[29,44,45],{},"\u003Cwmcp-select>",[29,47,48],{},"\u003Cwmcp-checkbox>",[29,50,51],{},"\u003Cwmcp-radio>"," \u002F ",[29,54,55],{},"\u003Cwmcp-radio-group>",".",[58,59,61],"h2",{"id":60},"why-it-exists","Why it exists",[21,63,64,65,70],{},"The same form a person fills in by typing, an agent should be able to fill by calling a tool. webmcpui's elements are proper, accessible, form-associated controls first — and, when you opt in, they also register imperative ",[66,67,69],"a",{"href":68},"\u002Fdocs\u002Fwebmcp","WebMCP"," tools an agent can discover and call.",[21,72,73],{},"It's all additive and feature-detected: with no agent present (the common case today), the WebMCP layer is a complete no-op, so your inputs are always good form controls.",[58,75,77],{"id":76},"one-source-of-truth-two-channels","One source of truth, two channels",[21,79,80,81,87],{},"Vanilla custom elements built with ",[66,82,86],{"href":83,"rel":84},"https:\u002F\u002Flit.dev",[85],"nofollow","Lit",", distributed two ways:",[89,90,91,103],"ul",{},[92,93,94,95,98,99,102],"li",{},"an ",[24,96,97],{},"ESM package"," for build tools (",[29,100,101],{},"@webmcpui\u002Fcore","), and",[92,104,105,106,109],{},"a single-file ",[24,107,108],{},"CDN bundle"," for no-build environments (Webflow, WordPress, plain HTML).",[58,111,113],{"id":112},"next-steps","Next steps",[89,115,116,123,130,136],{},[92,117,118,122],{},[66,119,121],{"href":120},"\u002Fdocs\u002Finstallation","Installation"," — add it to your project, with or without a build step.",[92,124,125,129],{},[66,126,128],{"href":127},"\u002Fdocs\u002Fvalidation","Validation"," — bring any Standard Schema validator.",[92,131,132,135],{},[66,133,134],{"href":68},"WebMCP exposure"," — how elements become agent tools.",[92,137,138,142],{},[66,139,141],{"href":140},"\u002Fdocs\u002Ftesting","Testing"," — exercise exposure with the fake agent.",{"title":144,"searchDepth":145,"depth":145,"links":146},"",2,[147,148,149],{"id":60,"depth":145,"text":61},{"id":76,"depth":145,"text":77},{"id":112,"depth":145,"text":113},"Agent-aware web components for the WebMCP era — framework-agnostic form primitives with Standard Schema validation.","md","Getting started",1,{},true,"\u002Fdocs",{"title":12,"description":150},"docs\u002Findex","lL_pSQ9Fnos4RgsE6VwUJppWOml_RwwYpDRPPgdn56Y",[161,166,169,173,177,180,181,182,183,184],{"path":162,"title":48,"navTitle":163,"group":164,"order":165,"groupOrder":145},"\u002Fdocs\u002Felements\u002Fcheckbox","Checkbox","Elements",4,{"path":167,"title":38,"navTitle":168,"group":164,"order":153,"groupOrder":145},"\u002Fdocs\u002Felements\u002Finput","Input",{"path":170,"title":55,"navTitle":171,"group":164,"order":172,"groupOrder":145},"\u002Fdocs\u002Felements\u002Fradio","Radio group",5,{"path":174,"title":45,"navTitle":175,"group":164,"order":176,"groupOrder":145},"\u002Fdocs\u002Felements\u002Fselect","Select",3,{"path":178,"title":42,"navTitle":179,"group":164,"order":145,"groupOrder":145},"\u002Fdocs\u002Felements\u002Ftextarea","Textarea",{"path":156,"title":12,"navTitle":12,"group":152,"order":153,"groupOrder":153},{"path":120,"title":121,"navTitle":121,"group":152,"order":145,"groupOrder":153},{"path":140,"title":141,"navTitle":141,"group":152,"order":172,"groupOrder":153},{"path":127,"title":128,"navTitle":128,"group":152,"order":176,"groupOrder":153},{"path":68,"title":134,"navTitle":134,"group":152,"order":165,"groupOrder":153},[186,187],null,{"title":48,"path":162,"stem":188,"navTitle":163,"children":-1},"docs\u002Felements\u002Fcheckbox",1781416228861]