[{"data":1,"prerenderedAt":249},["ShallowReactive",2],{"docs-page-pkg-\u002Fpkg":3,"docs-nav-pkg":139},{"id":4,"title":5,"body":6,"description":130,"extension":131,"meta":132,"navigation":133,"path":134,"section":135,"seo":136,"stem":137,"__hash__":138},"pkg\u002Fpkg\u002Findex.md","Overview",{"type":7,"value":8,"toc":124},"minimark",[9,13,16,21,74,78,85,88,115],[10,11,12],"p",{},"Packages are what we share across products: runtime crates and unstyled interface components.",[10,14,15],{},"Keep a package when two products would otherwise copy the same rule. Document the public surface first. Internals can move. The contract should not. Version by behaviour, not by file count. If it only serves one app, it stays in that app.",[17,18,20],"h2",{"id":19},"libraries","Libraries",[22,23,24,33,40,47,63],"ul",{},[25,26,27,32],"li",{},[28,29,31],"a",{"href":30},"\u002Fpkg\u002Fapi","Api"," — HTTP methods, registered on the gateway.",[25,34,35,39],{},[28,36,38],{"href":37},"\u002Fpkg\u002Fauth","Auth"," — first-party JWTs and the browser session.",[25,41,42,46],{},[28,43,45],{"href":44},"\u002Fpkg\u002Fblob","Blob"," — one bucket, workspace key prefixes.",[25,48,49,53,54,58,59,62],{},[28,50,52],{"href":51},"\u002Fpkg\u002Fchannels","Channels"," — one Redis bus. ",[55,56,57],"code",{},"ch.pub"," appends the stream. The channels process stores it. ",[55,60,61],{},"ch.sub"," reads one group.",[25,64,65,69,70,73],{},[28,66,68],{"href":67},"\u002Fpkg\u002Fdb","Db"," — one Postgres database per service, opened with ",[55,71,72],{},"kalt_db::open",".",[17,75,77],{"id":76},"components","Components",[10,79,80,84],{},[28,81,83],{"href":82},"\u002Fpkg\u002Fsidebar","Sidebar"," is the glass panel on the left and the right of each app.",[10,86,87],{},"Unstyled interface components: accessible parts, scoped CSS, and short CSS transitions instead of animation libraries.",[10,89,90,91,94,95,98,99,102,103,106,107,110,111,73],{},"Use the primitives from ",[55,92,93],{},"components\u002Fui\u002Fbase",". They auto-import as ",[55,96,97],{},"Ui…"," names. Assemble the parts in a page, then style the open and closed states with ",[55,100,101],{},"data-open",", ",[55,104,105],{},"data-starting-style",", and ",[55,108,109],{},"data-ending-style",". Start with ",[28,112,114],{"href":113},"\u002Fpkg\u002Faccordion","Accordion",[22,116,117],{},[25,118,119,123],{},[28,120,122],{"href":121},"\u002Fpkg\u002Fplot","Plot"," — interactive 3D cube for momentum and velocity, features, and organization.",{"title":125,"searchDepth":126,"depth":126,"links":127},"",2,[128,129],{"id":19,"depth":126,"text":20},{"id":76,"depth":126,"text":77},"Shared packages for Kalt products","md",{},true,"\u002Fpkg","Start",{"title":5,"description":130},"pkg\u002Findex","bIEG2klSs1SYYtb3B9LiyhknveaoQ5dH81U0CqFqUFg",[140,141,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,202,205,208,209,212,215,218,221,224,227,230,231,234,237,240,243,245,246,247,248],{"path":134,"title":5,"section":135},{"path":113,"title":114,"section":77},{"path":143,"title":144,"section":77},"\u002Fpkg\u002Falert-dialog","Alert Dialog",{"path":146,"title":147,"section":77},"\u002Fpkg\u002Fautocomplete","Autocomplete",{"path":149,"title":150,"section":77},"\u002Fpkg\u002Favatar","Avatar",{"path":152,"title":153,"section":77},"\u002Fpkg\u002Fbutton","Button",{"path":155,"title":156,"section":77},"\u002Fpkg\u002Fcheckbox","Checkbox",{"path":158,"title":159,"section":77},"\u002Fpkg\u002Fcheckbox-group","Checkbox Group",{"path":161,"title":162,"section":77},"\u002Fpkg\u002Fcollapsible","Collapsible",{"path":164,"title":165,"section":77},"\u002Fpkg\u002Fcombobox","Combobox",{"path":167,"title":168,"section":77},"\u002Fpkg\u002Fcontext-menu","Context Menu",{"path":170,"title":171,"section":77},"\u002Fpkg\u002Fdialog","Dialog",{"path":173,"title":174,"section":77},"\u002Fpkg\u002Fdrawer","Drawer",{"path":176,"title":177,"section":77},"\u002Fpkg\u002Ffield","Field",{"path":179,"title":180,"section":77},"\u002Fpkg\u002Ffieldset","Fieldset",{"path":182,"title":183,"section":77},"\u002Fpkg\u002Fform","Form",{"path":185,"title":186,"section":77},"\u002Fpkg\u002Ficon-picker","Icon picker",{"path":188,"title":189,"section":77},"\u002Fpkg\u002Finput","Input",{"path":191,"title":192,"section":77},"\u002Fpkg\u002Fmenu","Menu",{"path":194,"title":195,"section":77},"\u002Fpkg\u002Fmenubar","Menubar",{"path":197,"title":198,"section":77},"\u002Fpkg\u002Fmeter","Meter",{"path":200,"title":201,"section":77},"\u002Fpkg\u002Fnavigation-menu","Navigation Menu",{"path":203,"title":204,"section":77},"\u002Fpkg\u002Fnumber-field","Number Field",{"path":206,"title":207,"section":77},"\u002Fpkg\u002Fotp-field","OTP Field",{"path":121,"title":122,"section":77},{"path":210,"title":211,"section":77},"\u002Fpkg\u002Fpopover","Popover",{"path":213,"title":214,"section":77},"\u002Fpkg\u002Fpreview-card","Preview Card",{"path":216,"title":217,"section":77},"\u002Fpkg\u002Fprogress","Progress",{"path":219,"title":220,"section":77},"\u002Fpkg\u002Fradio-group","Radio Group",{"path":222,"title":223,"section":77},"\u002Fpkg\u002Fscroll-area","Scroll Area",{"path":225,"title":226,"section":77},"\u002Fpkg\u002Fselect","Select",{"path":228,"title":229,"section":77},"\u002Fpkg\u002Fseparator","Separator",{"path":82,"title":83,"section":77},{"path":232,"title":233,"section":77},"\u002Fpkg\u002Fslider","Slider",{"path":235,"title":236,"section":77},"\u002Fpkg\u002Fswitch","Switch",{"path":238,"title":239,"section":77},"\u002Fpkg\u002Ftabs","Tabs",{"path":241,"title":242,"section":77},"\u002Fpkg\u002Ftoast","Toast",{"path":30,"title":31,"section":244},"Runtime",{"path":37,"title":38,"section":244},{"path":44,"title":45,"section":244},{"path":51,"title":52,"section":244},{"path":67,"title":68,"section":244},1791043753453]