[{"data":1,"prerenderedAt":1033},["ShallowReactive",2],{"navigation":3,"$fd9cvft0wf4ga":464,"\u002Fdocs\u002Ftypeset":477,"surround-\u002Fdocs\u002Ftypeset":1030},[4],{"title":5,"path":6,"stem":7,"children":8,"page":18},"Docs","\u002Fdocs","docs",[9,294,320,338,344,361,387,400],{"title":10,"path":11,"stem":12,"children":13,"new":18,"type":293},"Components","\u002Fdocs\u002Fcomponents","docs\u002F02.components",[14,20,24,28,32,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289],{"title":15,"path":16,"stem":17,"new":18,"type":19,"children":-1},"Accordion","\u002Fdocs\u002Fcomponents\u002Faccordion","docs\u002Fcomponents\u002Faccordion",false,"component",{"title":21,"path":22,"stem":23,"new":18,"type":19,"children":-1},"Alert","\u002Fdocs\u002Fcomponents\u002Falert","docs\u002Fcomponents\u002Falert",{"title":25,"path":26,"stem":27,"new":18,"type":19,"children":-1},"Alert Dialog","\u002Fdocs\u002Fcomponents\u002Falert-dialog","docs\u002Fcomponents\u002Falert-dialog",{"title":29,"path":30,"stem":31,"new":18,"type":19,"children":-1},"Aspect Ratio","\u002Fdocs\u002Fcomponents\u002Faspect-ratio","docs\u002Fcomponents\u002Faspect-ratio",{"title":33,"path":34,"stem":35,"new":36,"type":19,"children":-1},"Attachment","\u002Fdocs\u002Fcomponents\u002Fattachment","docs\u002Fcomponents\u002Fattachment",true,{"title":38,"path":39,"stem":40,"new":18,"type":19,"children":-1},"Avatar","\u002Fdocs\u002Fcomponents\u002Favatar","docs\u002Fcomponents\u002Favatar",{"title":42,"path":43,"stem":44,"new":18,"type":19,"children":-1},"Badge","\u002Fdocs\u002Fcomponents\u002Fbadge","docs\u002Fcomponents\u002Fbadge",{"title":46,"path":47,"stem":48,"new":18,"type":19,"children":-1},"Breadcrumb","\u002Fdocs\u002Fcomponents\u002Fbreadcrumb","docs\u002Fcomponents\u002Fbreadcrumb",{"title":50,"path":51,"stem":52,"new":36,"type":19,"children":-1},"Bubble","\u002Fdocs\u002Fcomponents\u002Fbubble","docs\u002Fcomponents\u002Fbubble",{"title":54,"path":55,"stem":56,"new":18,"type":19,"children":-1},"Button","\u002Fdocs\u002Fcomponents\u002Fbutton","docs\u002Fcomponents\u002Fbutton",{"title":58,"path":59,"stem":60,"new":18,"type":19,"children":-1},"Button Group","\u002Fdocs\u002Fcomponents\u002Fbutton-group","docs\u002Fcomponents\u002Fbutton-group",{"title":62,"path":63,"stem":64,"new":18,"type":19,"children":-1},"Calendar","\u002Fdocs\u002Fcomponents\u002Fcalendar","docs\u002Fcomponents\u002Fcalendar",{"title":66,"path":67,"stem":68,"new":18,"type":19,"children":-1},"Card","\u002Fdocs\u002Fcomponents\u002Fcard","docs\u002Fcomponents\u002Fcard",{"title":70,"path":71,"stem":72,"new":18,"type":19,"children":-1},"Carousel","\u002Fdocs\u002Fcomponents\u002Fcarousel","docs\u002Fcomponents\u002Fcarousel",{"title":74,"path":75,"stem":76,"new":18,"type":19,"children":-1},"Chart","\u002Fdocs\u002Fcomponents\u002Fchart","docs\u002Fcomponents\u002Fchart",{"title":78,"path":79,"stem":80,"new":18,"type":19,"children":-1},"Checkbox","\u002Fdocs\u002Fcomponents\u002Fcheckbox","docs\u002Fcomponents\u002Fcheckbox",{"title":82,"path":83,"stem":84,"new":18,"type":19,"children":-1},"Collapsible","\u002Fdocs\u002Fcomponents\u002Fcollapsible","docs\u002Fcomponents\u002Fcollapsible",{"title":86,"path":87,"stem":88,"new":18,"type":19,"children":-1},"Combobox","\u002Fdocs\u002Fcomponents\u002Fcombobox","docs\u002Fcomponents\u002Fcombobox",{"title":90,"path":91,"stem":92,"new":18,"type":19,"children":-1},"Command","\u002Fdocs\u002Fcomponents\u002Fcommand","docs\u002Fcomponents\u002Fcommand",{"title":94,"path":95,"stem":96,"new":18,"type":19,"children":-1},"Context Menu","\u002Fdocs\u002Fcomponents\u002Fcontext-menu","docs\u002Fcomponents\u002Fcontext-menu",{"title":98,"path":99,"stem":100,"new":18,"type":19,"children":-1},"Data Table","\u002Fdocs\u002Fcomponents\u002Fdata-table","docs\u002Fcomponents\u002Fdata-table",{"title":102,"path":103,"stem":104,"new":18,"type":19,"children":-1},"Date Picker","\u002Fdocs\u002Fcomponents\u002Fdate-picker","docs\u002Fcomponents\u002Fdate-picker",{"title":106,"path":107,"stem":108,"new":18,"type":19,"children":-1},"Dialog","\u002Fdocs\u002Fcomponents\u002Fdialog","docs\u002Fcomponents\u002Fdialog",{"title":110,"path":111,"stem":112,"new":18,"type":19,"children":-1},"Drawer","\u002Fdocs\u002Fcomponents\u002Fdrawer","docs\u002Fcomponents\u002Fdrawer",{"title":114,"path":115,"stem":116,"new":18,"type":19,"children":-1},"Dropdown Menu","\u002Fdocs\u002Fcomponents\u002Fdropdown-menu","docs\u002Fcomponents\u002Fdropdown-menu",{"title":118,"path":119,"stem":120,"new":18,"type":19,"children":-1},"Empty","\u002Fdocs\u002Fcomponents\u002Fempty","docs\u002Fcomponents\u002Fempty",{"title":122,"path":123,"stem":124,"new":18,"type":19,"children":-1},"Field","\u002Fdocs\u002Fcomponents\u002Ffield","docs\u002Fcomponents\u002Ffield",{"title":126,"path":127,"stem":128,"new":18,"type":19,"children":-1},"Form","\u002Fdocs\u002Fcomponents\u002Fform","docs\u002Fcomponents\u002Fform",{"title":130,"path":131,"stem":132,"new":18,"type":19,"children":-1},"Hover Card","\u002Fdocs\u002Fcomponents\u002Fhover-card","docs\u002Fcomponents\u002Fhover-card",{"title":134,"path":135,"stem":136,"new":18,"type":19,"children":-1},"Input","\u002Fdocs\u002Fcomponents\u002Finput","docs\u002Fcomponents\u002Finput",{"title":138,"path":139,"stem":140,"new":18,"type":19,"children":-1},"Input Group","\u002Fdocs\u002Fcomponents\u002Finput-group","docs\u002Fcomponents\u002Finput-group",{"title":142,"path":143,"stem":144,"new":18,"type":19,"children":-1},"Input OTP","\u002Fdocs\u002Fcomponents\u002Finput-otp","docs\u002Fcomponents\u002Finput-otp",{"title":146,"path":147,"stem":148,"new":18,"type":19,"children":-1},"Item","\u002Fdocs\u002Fcomponents\u002Fitem","docs\u002Fcomponents\u002Fitem",{"title":150,"path":151,"stem":152,"new":18,"type":19,"children":-1},"Kbd","\u002Fdocs\u002Fcomponents\u002Fkbd","docs\u002Fcomponents\u002Fkbd",{"title":154,"path":155,"stem":156,"new":18,"type":19,"children":-1},"Label","\u002Fdocs\u002Fcomponents\u002Flabel","docs\u002Fcomponents\u002Flabel",{"title":158,"path":159,"stem":160,"new":36,"type":19,"children":-1},"Marker","\u002Fdocs\u002Fcomponents\u002Fmarker","docs\u002Fcomponents\u002Fmarker",{"title":162,"path":163,"stem":164,"new":18,"type":19,"children":-1},"Menubar","\u002Fdocs\u002Fcomponents\u002Fmenubar","docs\u002Fcomponents\u002Fmenubar",{"title":166,"path":167,"stem":168,"new":36,"type":19,"children":-1},"Message","\u002Fdocs\u002Fcomponents\u002Fmessage","docs\u002Fcomponents\u002Fmessage",{"title":170,"path":171,"stem":172,"new":36,"type":19,"children":-1},"Message Scroller","\u002Fdocs\u002Fcomponents\u002Fmessage-scroller","docs\u002Fcomponents\u002Fmessage-scroller",{"title":174,"path":175,"stem":176,"new":18,"type":19,"children":-1},"Native Select","\u002Fdocs\u002Fcomponents\u002Fnative-select","docs\u002Fcomponents\u002Fnative-select",{"title":178,"path":179,"stem":180,"new":18,"type":19,"children":-1},"Navigation Menu","\u002Fdocs\u002Fcomponents\u002Fnavigation-menu","docs\u002Fcomponents\u002Fnavigation-menu",{"title":182,"path":183,"stem":184,"new":18,"type":19,"children":-1},"Number Field","\u002Fdocs\u002Fcomponents\u002Fnumber-field","docs\u002Fcomponents\u002Fnumber-field",{"title":186,"path":187,"stem":188,"new":18,"type":19,"children":-1},"Pagination","\u002Fdocs\u002Fcomponents\u002Fpagination","docs\u002Fcomponents\u002Fpagination",{"title":190,"path":191,"stem":192,"new":18,"type":19,"children":-1},"Pin Input","\u002Fdocs\u002Fcomponents\u002Fpin-input","docs\u002Fcomponents\u002Fpin-input",{"title":194,"path":195,"stem":196,"new":18,"type":19,"children":-1},"Popover","\u002Fdocs\u002Fcomponents\u002Fpopover","docs\u002Fcomponents\u002Fpopover",{"title":198,"path":199,"stem":200,"new":18,"type":19,"children":-1},"Progress","\u002Fdocs\u002Fcomponents\u002Fprogress","docs\u002Fcomponents\u002Fprogress",{"title":202,"path":203,"stem":204,"new":18,"type":19,"children":-1},"Radio Group","\u002Fdocs\u002Fcomponents\u002Fradio-group","docs\u002Fcomponents\u002Fradio-group",{"title":206,"path":207,"stem":208,"new":18,"type":19,"children":-1},"Range Calendar","\u002Fdocs\u002Fcomponents\u002Frange-calendar","docs\u002Fcomponents\u002Frange-calendar",{"title":210,"path":211,"stem":212,"new":18,"type":19,"children":-1},"Resizable","\u002Fdocs\u002Fcomponents\u002Fresizable","docs\u002Fcomponents\u002Fresizable",{"title":214,"path":215,"stem":216,"new":18,"type":19,"children":-1},"Scroll Area","\u002Fdocs\u002Fcomponents\u002Fscroll-area","docs\u002Fcomponents\u002Fscroll-area",{"title":218,"path":219,"stem":220,"new":18,"type":19,"children":-1},"Select","\u002Fdocs\u002Fcomponents\u002Fselect","docs\u002Fcomponents\u002Fselect",{"title":222,"path":223,"stem":224,"new":18,"type":19,"children":-1},"Separator","\u002Fdocs\u002Fcomponents\u002Fseparator","docs\u002Fcomponents\u002Fseparator",{"title":226,"path":227,"stem":228,"new":18,"type":19,"children":-1},"Sheet","\u002Fdocs\u002Fcomponents\u002Fsheet","docs\u002Fcomponents\u002Fsheet",{"title":230,"path":231,"stem":232,"new":18,"type":19,"children":-1},"Sidebar","\u002Fdocs\u002Fcomponents\u002Fsidebar","docs\u002Fcomponents\u002Fsidebar",{"title":234,"path":235,"stem":236,"new":18,"type":19,"children":-1},"Skeleton","\u002Fdocs\u002Fcomponents\u002Fskeleton","docs\u002Fcomponents\u002Fskeleton",{"title":238,"path":239,"stem":240,"new":18,"type":19,"children":-1},"Slider","\u002Fdocs\u002Fcomponents\u002Fslider","docs\u002Fcomponents\u002Fslider",{"title":242,"path":243,"stem":244,"new":18,"type":19,"children":-1},"Sonner","\u002Fdocs\u002Fcomponents\u002Fsonner","docs\u002Fcomponents\u002Fsonner",{"title":246,"path":247,"stem":248,"new":18,"type":19,"children":-1},"Spinner","\u002Fdocs\u002Fcomponents\u002Fspinner","docs\u002Fcomponents\u002Fspinner",{"title":250,"path":251,"stem":252,"new":18,"type":19,"children":-1},"Stepper","\u002Fdocs\u002Fcomponents\u002Fstepper","docs\u002Fcomponents\u002Fstepper",{"title":254,"path":255,"stem":256,"new":18,"type":19,"children":-1},"Switch","\u002Fdocs\u002Fcomponents\u002Fswitch","docs\u002Fcomponents\u002Fswitch",{"title":258,"path":259,"stem":260,"new":18,"type":19,"children":-1},"Table","\u002Fdocs\u002Fcomponents\u002Ftable","docs\u002Fcomponents\u002Ftable",{"title":262,"path":263,"stem":264,"new":18,"type":19,"children":-1},"Tabs","\u002Fdocs\u002Fcomponents\u002Ftabs","docs\u002Fcomponents\u002Ftabs",{"title":266,"path":267,"stem":268,"new":18,"type":19,"children":-1},"Tags Input","\u002Fdocs\u002Fcomponents\u002Ftags-input","docs\u002Fcomponents\u002Ftags-input",{"title":270,"path":271,"stem":272,"new":18,"type":19,"children":-1},"Textarea","\u002Fdocs\u002Fcomponents\u002Ftextarea","docs\u002Fcomponents\u002Ftextarea",{"title":274,"path":275,"stem":276,"new":18,"type":19,"children":-1},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002Fcomponents\u002Ftoast",{"title":278,"path":279,"stem":280,"new":18,"type":19,"children":-1},"Toggle","\u002Fdocs\u002Fcomponents\u002Ftoggle","docs\u002Fcomponents\u002Ftoggle",{"title":282,"path":283,"stem":284,"new":18,"type":19,"children":-1},"Toggle Group","\u002Fdocs\u002Fcomponents\u002Ftoggle-group","docs\u002Fcomponents\u002Ftoggle-group",{"title":286,"path":287,"stem":288,"new":18,"type":19,"children":-1},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002Fcomponents\u002Ftooltip",{"title":290,"path":291,"stem":292,"new":18,"type":19,"children":-1},"Typography","\u002Fdocs\u002Fcomponents\u002Ftypography","docs\u002Fcomponents\u002Ftypography","group",{"title":295,"path":296,"stem":297,"children":298,"new":18,"type":293},"Installation","\u002Fdocs\u002Finstallation","docs\u002F02.installation",[299,304,308,312,316],{"title":300,"path":301,"stem":302,"new":18,"type":303,"children":-1},"Vite","\u002Fdocs\u002Finstallation\u002Fvite","docs\u002Finstallation\u002F01.vite","page",{"title":305,"path":306,"stem":307,"new":18,"type":303,"children":-1},"Nuxt","\u002Fdocs\u002Finstallation\u002Fnuxt","docs\u002Finstallation\u002F02.nuxt",{"title":309,"path":310,"stem":311,"new":18,"type":303,"children":-1},"Astro","\u002Fdocs\u002Finstallation\u002Fastro","docs\u002Finstallation\u002F03.astro",{"title":313,"path":314,"stem":315,"new":18,"type":303,"children":-1},"Laravel","\u002Fdocs\u002Finstallation\u002Flaravel","docs\u002Finstallation\u002F04.laravel",{"title":317,"path":318,"stem":319,"new":18,"type":303,"children":-1},"Manual Installation","\u002Fdocs\u002Finstallation\u002Fmanual","docs\u002Finstallation\u002F05.manual",{"title":321,"path":322,"stem":323,"children":324,"new":18,"type":293},"Dark Mode","\u002Fdocs\u002Fdark-mode","docs\u002F05.dark-mode",[325,328,331,335],{"title":300,"path":326,"stem":327,"new":18,"type":303,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fvite","docs\u002Fdark-mode\u002F01.vite",{"title":305,"path":329,"stem":330,"new":18,"type":303,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fnuxt","docs\u002Fdark-mode\u002F02.nuxt",{"title":332,"path":333,"stem":334,"new":18,"type":303,"children":-1},"Vitepress","\u002Fdocs\u002Fdark-mode\u002Fvitepress","docs\u002Fdark-mode\u002F03.vitepress",{"title":309,"path":336,"stem":337,"new":18,"type":303,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fastro","docs\u002Fdark-mode\u002F04.astro",{"title":339,"path":340,"stem":341,"children":342,"new":18,"type":293},"Directory","\u002Fdocs\u002Fdirectory","docs\u002Fdirectory\u002Findex",[343],{"title":339,"path":340,"stem":341,"new":18,"type":303,"children":-1},{"title":345,"path":346,"stem":347,"children":348,"new":18,"type":293},"Forms","\u002Fdocs\u002Fforms","docs\u002Fforms",[349,353,357],{"title":350,"path":351,"stem":352,"new":18,"type":303,"children":-1},"VeeValidate","\u002Fdocs\u002Fforms\u002Fvee-validate","docs\u002Fforms\u002F01.vee-validate",{"title":354,"path":355,"stem":356,"new":18,"type":303,"children":-1},"TanStack Form","\u002Fdocs\u002Fforms\u002Ftanstack-form","docs\u002Fforms\u002F02.tanstack-form",{"title":358,"path":359,"stem":360,"new":18,"type":303,"children":-1},"Formisch","\u002Fdocs\u002Fforms\u002Fformisch","docs\u002Fforms\u002F03.formisch",{"title":362,"path":363,"stem":364,"children":365,"new":18,"type":293},"Registry","\u002Fdocs\u002Fregistry","docs\u002Fregistry\u002Findex",[366,367,371,375,379,383],{"title":362,"path":363,"stem":364,"new":18,"type":303,"children":-1},{"title":368,"path":369,"stem":370,"new":18,"type":303,"children":-1},"Examples","\u002Fdocs\u002Fregistry\u002Fexamples","docs\u002Fregistry\u002Fexamples",{"title":372,"path":373,"stem":374,"new":18,"type":303,"children":-1},"FAQ","\u002Fdocs\u002Fregistry\u002Ffaq","docs\u002Fregistry\u002Ffaq",{"title":376,"path":377,"stem":378,"new":18,"type":303,"children":-1},"Getting Started","\u002Fdocs\u002Fregistry\u002Fgetting-started","docs\u002Fregistry\u002Fgetting-started",{"title":380,"path":381,"stem":382,"new":18,"type":303,"children":-1},"registry-item.json","\u002Fdocs\u002Fregistry\u002Fregistry-item-json","docs\u002Fregistry\u002Fregistry-item-json",{"title":384,"path":385,"stem":386,"new":18,"type":303,"children":-1},"registry.json","\u002Fdocs\u002Fregistry\u002Fregistry-json","docs\u002Fregistry\u002Fregistry-json",{"title":388,"path":389,"stem":390,"children":391,"page":18,"type":293},"Utilities","\u002Fdocs\u002Futilities","docs\u002Futilities",[392,396],{"title":393,"path":394,"stem":395,"new":36,"type":303,"children":-1},"scroll-fade","\u002Fdocs\u002Futilities\u002Fscroll-fade","docs\u002Futilities\u002Fscroll-fade",{"title":397,"path":398,"stem":399,"new":36,"type":303,"children":-1},"shimmer","\u002Fdocs\u002Futilities\u002Fshimmer","docs\u002Futilities\u002Fshimmer",{"path":6,"stem":7,"title":401,"type":293,"children":402},"Get Started",[403,407,414,418,422,428,432,436,440,444,448,452,456,460],{"title":404,"path":405,"stem":406,"new":18,"type":303,"children":-1},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction",{"title":295,"path":296,"stem":297,"children":408,"new":18,"type":293},[409,410,411,412,413],{"title":300,"path":301,"stem":302,"new":18,"type":303,"children":-1},{"title":305,"path":306,"stem":307,"new":18,"type":303,"children":-1},{"title":309,"path":310,"stem":311,"new":18,"type":303,"children":-1},{"title":313,"path":314,"stem":315,"new":18,"type":303,"children":-1},{"title":317,"path":318,"stem":319,"new":18,"type":303,"children":-1},{"title":415,"path":416,"stem":417,"new":18,"type":303,"children":-1},"components.json","\u002Fdocs\u002Fcomponents-json","docs\u002F03.components-json",{"title":419,"path":420,"stem":421,"new":18,"type":303,"children":-1},"Theming","\u002Fdocs\u002Ftheming","docs\u002F04.theming",{"title":321,"path":322,"stem":323,"children":423,"new":18,"type":293},[424,425,426,427],{"title":300,"path":326,"stem":327,"new":18,"type":303,"children":-1},{"title":305,"path":329,"stem":330,"new":18,"type":303,"children":-1},{"title":332,"path":333,"stem":334,"new":18,"type":303,"children":-1},{"title":309,"path":336,"stem":337,"new":18,"type":303,"children":-1},{"title":429,"path":430,"stem":431,"new":18,"type":303,"children":-1},"CLI","\u002Fdocs\u002Fcli","docs\u002F06.cli",{"title":433,"path":434,"stem":435,"new":18,"type":303,"children":-1},"JavaScript","\u002Fdocs\u002Fjavascript","docs\u002F07.javascript",{"title":437,"path":438,"stem":439,"new":18,"type":303,"children":-1},"RTL","\u002Fdocs\u002Frtl","docs\u002F08.rtl",{"title":441,"path":442,"stem":443,"new":18,"type":303,"children":-1},"Figma","\u002Fdocs\u002Ffigma","docs\u002F09.figma",{"title":445,"path":446,"stem":447,"new":18,"type":303,"children":-1},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F10.changelog",{"title":449,"path":450,"stem":451,"new":18,"type":303,"children":-1},"Legacy Docs","\u002Fdocs\u002Flegacy","docs\u002F11.legacy",{"title":453,"path":454,"stem":455,"new":18,"type":303,"children":-1},"Skills","\u002Fdocs\u002Fskills","docs\u002Fskills",{"title":457,"path":458,"stem":459,"new":18,"type":303,"children":-1},"Typeset","\u002Fdocs\u002Ftypeset","docs\u002Ftypeset",{"title":388,"path":389,"stem":390,"children":461,"page":18,"type":293},[462,463],{"title":393,"path":394,"stem":395,"new":36,"type":303,"children":-1},{"title":397,"path":398,"stem":399,"new":36,"type":303,"children":-1},{"repo":465},{"id":466,"name":467,"repo":468,"description":469,"createdAt":470,"updatedAt":471,"pushedAt":472,"stars":473,"watchers":474,"forks":475,"defaultBranch":476},658791894,"shadcn-vue","unovue\u002Fshadcn-vue","Vue port of shadcn-ui","2023-06-26T13:53:23Z","2026-08-06T02:45:12Z","2026-08-06T02:44:14Z",10402,36,669,"dev",{"id":478,"title":457,"body":479,"description":1023,"extension":1024,"links":1025,"meta":1026,"navigation":36,"new":18,"path":458,"rawbody":1027,"seo":1028,"stem":459,"__hash__":1029},"content\u002Fdocs\u002Ftypeset.md",{"type":480,"value":481,"toc":1009},"minimark",[482,486,489,502,505,515,522,525,530,533,536,538,542,570,572,576,583,590,596,602,608,616,625,627,631,637,643,673,676,683,686,692,698,701,707,709,713,716,722,724,728,731,737,740,746,748,752,767,773,776,778,782,797,803,806,808,812,822,828,834,836,840,843,870,873,875,879,890,893,996],[483,484,485],"p",{},"You render markdown and get back plain unstyled HTML: headings, paragraphs, lists, and tables. So you style the elements one by one: font sizes, line heights, spacing.",[483,487,488],{},"You do it for your blog. Then you do it again for the docs. Then again for the chat app. Every time you're fighting the same thing: sizing and spacing.",[483,490,491,492,496,497,501],{},"To fix this, we ported ",[493,494,495],"strong",{},"shadcn\u002Ftypeset",". It's one CSS file that styles everything inside a ",[498,499,500],"code",{},"typeset"," container. The file lives in your project, so you can change it directly when you need to.",[483,503,504],{},"A typeset is just a small preset class. You can have multiple typesets in your app, for different contexts.",[506,507,513],"pre",{"className":508,"code":510,"language":511,"meta":512},[509],"language-css",".typeset-docs {\n  --typeset-font-body: var(--font-geist-sans);\n  --typeset-font-heading: var(--font-geist-sans);\n  --typeset-font-mono: var(--font-geist-mono);\n  --typeset-size: 15px;\n  --typeset-leading: 1.75;\n  --typeset-flow: 1.25em;\n}\n","css","",[498,514,510],{"__ignoreMap":512},[483,516,517],{},[518,519,521],"a",{"href":520},"\u002Ftypeset","Build your typeset",[523,524],"hr",{},[526,527,529],"h2",{"id":528},"principles","Principles",[483,531,532],{},"We read a lot about type: scale ratios, tracking, kerning, optical sizing, measure, leading, the space above and below every element. We tried exposing all of it, and it was too much. Nobody wants to set a dozen variables to make markdown look right.",[483,534,535],{},"So we sat down and condensed everything into three controls: size, leading, and flow. Everything else, heading sizes, list indents, the gap under a heading, the space around a rule, derives from them. Three controls. We called it rhythm.",[523,537],{},[526,539,541],{"id":540},"features","Features",[543,544,545,552,558,564],"ul",{},[546,547,548,551],"li",{},[493,549,550],{},"It fits its container."," Put it in a chat bubble and it follows the smaller type around it. Put it in an article and it scales up with the page. On smaller screens, it gets a small bump for readability.",[546,553,554,557],{},[493,555,556],{},"It uses your theme."," Colors, fonts, and radius come from your app. Dark mode follows the same tokens.",[546,559,560,563],{},[493,561,562],{},"It's easy to tune."," Three values control the base size, line height, and space between blocks. Change them in a preset and the whole document follows.",[546,565,566,569],{},[493,567,568],{},"It works well with streaming."," When a new block arrives, Typeset doesn't make earlier blocks switch margins, borders, or styles.",[523,571],{},[526,573,575],{"id":574},"building-your-typeset","Building Your Typeset",[483,577,578,579,582],{},"Create your typeset in the ",[518,580,581],{"href":520},"typeset builder",". Pick your fonts and rhythm, then preview them on docs, chat, articles, and other real content.",[483,584,585,586,589],{},"The panel gives you the ",[498,587,588],{},"typeset.css"," file, the font setup for your framework, a preset class with your choices, and the wrapper to add around your content.",[483,591,592,593,595],{},"Copy ",[498,594,588],{}," next to your main CSS file and import it after Tailwind:",[506,597,600],{"className":598,"code":599,"language":511,"meta":512},[509],"@import \"tailwindcss\";\n@import \".\u002Ftypeset.css\";\n",[498,601,599],{"__ignoreMap":512},[483,603,604,605,607],{},"Then wrap your rendered markdown with ",[498,606,500],{}," and your preset class:",[506,609,614],{"className":610,"code":612,"language":613,"meta":512},[611],"language-vue","\u003Ctemplate>\n  \u003Cdiv class=\"typeset typeset-docs\">\n    \u003CContentRenderer :value=\"page\" \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","vue",[498,615,612],{"__ignoreMap":512},[483,617,618,620,621,624],{},[498,619,500],{}," turns the styles on. ",[498,622,623],{},"typeset-docs"," is the preset you created in the builder.",[523,626],{},[526,628,630],{"id":629},"custom-typesets","Custom Typesets",[483,632,633,634,636],{},"The file includes defaults, so you can use ",[498,635,500],{}," by itself. Most of the reading rhythm comes from three values:",[506,638,641],{"className":639,"code":640,"language":511,"meta":512},[509],".typeset {\n  --typeset-font-body: inherit;\n  --typeset-font-heading: var(--font-heading);\n  --typeset-font-mono: var(--font-mono);\n\n  --typeset-size: 1em; \u002F* body font-size *\u002F\n  --typeset-leading: 1.75; \u002F* line-height *\u002F\n  --typeset-flow: 1.25em; \u002F* space between blocks *\u002F\n}\n",[498,642,640],{"__ignoreMap":512},[543,644,645,657,665],{},[546,646,647,652,653,656],{},[493,648,649],{},[498,650,651],{},"--typeset-size"," sets the base text size. ",[498,654,655],{},"1em"," follows the surrounding layout. On smaller screens, Typeset bumps it up a little.",[546,658,659,664],{},[493,660,661],{},[498,662,663],{},"--typeset-leading"," sets the space between lines.",[546,666,667,672],{},[493,668,669],{},[498,670,671],{},"--typeset-flow"," sets the space between blocks. Headings and other elements derive their spacing from it.",[483,674,675],{},"The font variables tell Typeset which families to use. Leave them alone and it follows your app. Colors and radius come from your theme too.",[483,677,678,679,682],{},"Typeset doesn't set a maximum width. Your layout owns that. The Measure control in the builder adds a ",[498,680,681],{},"max-width"," to the wrapper instead of hiding it in the stylesheet.",[483,684,685],{},"You can keep more than one preset in the same app. Here is a tighter one for chat and a roomier one for docs:",[506,687,690],{"className":688,"code":689,"language":511,"meta":512},[509],".typeset-chat {\n  --typeset-flow: 1em;\n  --typeset-leading: 1.6;\n}\n\n.typeset-docs {\n  --typeset-size: 15px;\n  --typeset-flow: 1.5em;\n}\n",[498,691,689],{"__ignoreMap":512},[506,693,696],{"className":694,"code":695,"language":613,"meta":512},[611],"\u003Ctemplate>\n  \u003Cdiv class=\"typeset typeset-chat\" v-html=\"message\" \u002F>\n  \u003Carticle class=\"typeset typeset-docs\" v-html=\"page\" \u002F>\n\u003C\u002Ftemplate>\n",[498,697,695],{"__ignoreMap":512},[483,699,700],{},"For a one-off change, skip the preset and set a value on the container:",[506,702,705],{"className":703,"code":704,"language":613,"meta":512},[611],"\u003Ctemplate>\n  \u003Carticle class=\"typeset [--typeset-flow:1.75em]\">...\u003C\u002Farticle>\n\u003C\u002Ftemplate>\n",[498,706,704],{"__ignoreMap":512},[523,708],{},[526,710,712],{"id":711},"custom-themes","Custom Themes",[483,714,715],{},"A preset can change the whole feel of the content, not just the spacing. You can give readers a serif reading mode, a compact UI mode, or any other style that fits your product.",[506,717,720],{"className":718,"code":719,"language":511,"meta":512},[509],"\u002F* Reading: serif, larger type, roomy rhythm. *\u002F\n.typeset-reading {\n  --typeset-font-body: var(--font-lora);\n  --typeset-font-heading: var(--font-lora);\n  --typeset-size: 18px;\n  --typeset-leading: 1.9;\n  --typeset-flow: 2em;\n}\n\n\u002F* Compact: sans, smaller type, tighter rhythm. *\u002F\n.typeset-compact {\n  --typeset-font-body: var(--font-geist-sans);\n  --typeset-font-heading: var(--font-geist-sans);\n  --typeset-size: 14px;\n  --typeset-leading: 1.6;\n  --typeset-flow: 1em;\n}\n",[498,721,719],{"__ignoreMap":512},[523,723],{},[526,725,727],{"id":726},"accessibility-and-dark-mode","Accessibility and Dark Mode",[483,729,730],{},"For readers who prefer larger type and more space, create a roomier typeset and expose it as a setting:",[506,732,735],{"className":733,"code":734,"language":511,"meta":512},[509],".typeset-large {\n  --typeset-size: 16px;\n  --typeset-leading: 2;\n  --typeset-flow: 2em;\n}\n",[498,736,734],{"__ignoreMap":512},[483,738,739],{},"Dark mode already follows your theme colors. If the text feels a little tight on a dark surface, you can loosen the leading there:",[506,741,744],{"className":742,"code":743,"language":511,"meta":512},[509],".dark .typeset {\n  --typeset-leading: 1.9;\n}\n",[498,745,743],{"__ignoreMap":512},[523,747],{},[526,749,751],{"id":750},"responsive-table","Responsive Table",[483,753,754,755,758,759,763,764,766],{},"Tables stay real tables and wrap to fit. To scroll a wide one horizontally instead, wrap it in ",[498,756,757],{},"typeset-scroll",". The wrapper is styled as part of the content, so it only works ",[760,761,762],"em",{},"inside"," a ",[498,765,500],{}," container:",[506,768,771],{"className":769,"code":770,"language":613,"meta":512},[611],"\u003Ctemplate>\n  \u003Carticle class=\"typeset typeset-docs\">\n    \u003Cdiv class=\"typeset-scroll\">\n      \u003Ctable>...\u003C\u002Ftable>\n    \u003C\u002Fdiv>\n  \u003C\u002Farticle>\n\u003C\u002Ftemplate>\n",[498,772,770],{"__ignoreMap":512},[483,774,775],{},"Do this in your renderer's table component or a small rehype plugin, where the output already sits inside the container. It works for any wide block, not just tables.",[523,777],{},[526,779,781],{"id":780},"overrides","Overrides",[483,783,784,785,788,789,792,793,796],{},"Typeset lives in the ",[498,786,787],{},"components"," layer and uses ",[498,790,791],{},":where()"," for its element selectors. Tailwind utilities on an element win without ",[498,794,795],{},"!important",":",[506,798,801],{"className":799,"code":800,"language":613,"meta":512},[611],"\u003Ctemplate>\n  \u003Cdiv class=\"typeset typeset-docs\">\n    \u003Cp class=\"text-lg\">...\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[498,802,800],{"__ignoreMap":512},[483,804,805],{},"Plain CSS can override Typeset with a normal selector too.",[523,807],{},[526,809,811],{"id":810},"opting-out","Opting Out",[483,813,814,815,818,819,796],{},"To keep a component out of Typeset, add ",[498,816,817],{},"not-typeset"," or ",[498,820,821],{},"data-not-typeset",[506,823,826],{"className":824,"code":825,"language":613,"meta":512},[611],"\u003Ctemplate>\n  \u003Cdiv class=\"typeset\">\n    \u003Cp>Styled prose.\u003C\u002Fp>\n    \u003CCard class=\"not-typeset\">\n      Untouched component.\n    \u003C\u002FCard>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[498,827,825],{"__ignoreMap":512},[483,829,830,831,833],{},"Both options cover the component and everything inside it. Another ",[498,832,500],{}," container inside that subtree stays opted out too.",[523,835],{},[526,837,839],{"id":838},"streaming","Streaming",[483,841,842],{},"Typeset is written so that adding a new block does not change the styles of the blocks already on screen.",[543,844,845,860,867],{},[546,846,847,848,851,852,855,856,859],{},"No forward-looking selectors. ",[498,849,850],{},":last-child",", ",[498,853,854],{},":has()",", and ",[498,857,858],{},":empty"," are left out of layout rules because their matches can change as content is added.",[546,861,862,863,866],{},"Spacing flows in one direction, using ",[498,864,865],{},"margin-block-start"," only. A new block adds its own space.",[546,868,869],{},"Table separators live on the cells being added, so a new row does not restyle the row above it.",[483,871,872],{},"Text that is still streaming can grow and wrap normally. Typeset just avoids restyling the blocks that came before it.",[523,874],{},[526,876,878],{"id":877},"prior-art","Prior Art",[483,880,881,882,885,886,889],{},"The ",[498,883,884],{},"prose"," class from ",[498,887,888],{},"@tailwindcss\u002Ftypography"," is excellent at what it was built for: adding beautiful typographic defaults to plain HTML, including content rendered from Markdown or a CMS.",[483,891,892],{},"Typeset takes a different approach with container-aware sizing, app theme tokens, presets for different contexts, and streaming stability. Here's where they differ:",[894,895,896,909],"table",{},[897,898,899],"thead",{},[900,901,902,905,907],"tr",{},[903,904],"th",{},[903,906,888],{},[903,908,457],{},[910,911,912,935,949,959,975,985],"tbody",{},[900,913,914,918,932],{},[915,916,917],"td",{},"Sizing",[915,919,920,921,924,925,928,929],{},"Fixed ",[498,922,923],{},"rem"," scale, ",[498,926,927],{},"prose-sm"," to ",[498,930,931],{},"prose-2xl",[915,933,934],{},"Relative to the container, any size",[900,936,937,940,946],{},[915,938,939],{},"Dark mode",[915,941,942,945],{},[498,943,944],{},"prose-invert",", a second palette",[915,947,948],{},"Your tokens flip, nothing to add",[900,950,951,953,956],{},[915,952,419],{},[915,954,955],{},"Prose color variables; scale baked in",[915,957,958],{},"Your theme tokens, plus font and rhythm controls",[900,960,961,963,972],{},[915,962,781],{},[915,964,965,851,968,971],{},[498,966,967],{},"prose-a:",[498,969,970],{},"prose-headings:"," modifier API",[915,973,974],{},"Plain utilities and CSS win",[900,976,977,979,982],{},[915,978,839],{},[915,980,981],{},"No append-stability contract",[915,983,984],{},"Designed for stable appends",[900,986,987,990,993],{},[915,988,989],{},"Distribution",[915,991,992],{},"npm plugin, generated CSS",[915,994,995],{},"One CSS file you own",[483,997,998,999,1001,1002,1004,1005,1008],{},"Typeset borrows the two best ideas from the plugin: the zero-specificity ",[498,1000,791],{}," guard pattern, and the escape-hatch class (",[498,1003,817],{},", in the spirit of ",[498,1006,1007],{},"not-prose",").",{"title":512,"searchDepth":1010,"depth":1010,"links":1011},2,[1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022],{"id":528,"depth":1010,"text":529},{"id":540,"depth":1010,"text":541},{"id":574,"depth":1010,"text":575},{"id":629,"depth":1010,"text":630},{"id":711,"depth":1010,"text":712},{"id":726,"depth":1010,"text":727},{"id":750,"depth":1010,"text":751},{"id":780,"depth":1010,"text":781},{"id":810,"depth":1010,"text":811},{"id":838,"depth":1010,"text":839},{"id":877,"depth":1010,"text":878},"A styling system for HTML and rendered markdown, from blog posts to streaming chat. One CSS file you own.","md",null,{},"---\ntitle: Typeset\ndescription: A styling system for HTML and rendered markdown, from blog posts to streaming chat. One CSS file you own.\n---\n\nYou render markdown and get back plain unstyled HTML: headings, paragraphs, lists, and tables. So you style the elements one by one: font sizes, line heights, spacing.\n\nYou do it for your blog. Then you do it again for the docs. Then again for the chat app. Every time you're fighting the same thing: sizing and spacing.\n\nTo fix this, we ported **shadcn\u002Ftypeset**. It's one CSS file that styles everything inside a `typeset` container. The file lives in your project, so you can change it directly when you need to.\n\nA typeset is just a small preset class. You can have multiple typesets in your app, for different contexts.\n\n```css\n.typeset-docs {\n  --typeset-font-body: var(--font-geist-sans);\n  --typeset-font-heading: var(--font-geist-sans);\n  --typeset-font-mono: var(--font-geist-mono);\n  --typeset-size: 15px;\n  --typeset-leading: 1.75;\n  --typeset-flow: 1.25em;\n}\n```\n\n[Build your typeset](\u002Ftypeset)\n\n---\n\n## Principles\n\nWe read a lot about type: scale ratios, tracking, kerning, optical sizing, measure, leading, the space above and below every element. We tried exposing all of it, and it was too much. Nobody wants to set a dozen variables to make markdown look right.\n\nSo we sat down and condensed everything into three controls: size, leading, and flow. Everything else, heading sizes, list indents, the gap under a heading, the space around a rule, derives from them. Three controls. We called it rhythm.\n\n---\n\n## Features\n\n- **It fits its container.** Put it in a chat bubble and it follows the smaller type around it. Put it in an article and it scales up with the page. On smaller screens, it gets a small bump for readability.\n- **It uses your theme.** Colors, fonts, and radius come from your app. Dark mode follows the same tokens.\n- **It's easy to tune.** Three values control the base size, line height, and space between blocks. Change them in a preset and the whole document follows.\n- **It works well with streaming.** When a new block arrives, Typeset doesn't make earlier blocks switch margins, borders, or styles.\n\n---\n\n## Building Your Typeset\n\nCreate your typeset in the [typeset builder](\u002Ftypeset). Pick your fonts and rhythm, then preview them on docs, chat, articles, and other real content.\n\nThe panel gives you the `typeset.css` file, the font setup for your framework, a preset class with your choices, and the wrapper to add around your content.\n\nCopy `typeset.css` next to your main CSS file and import it after Tailwind:\n\n```css\n@import \"tailwindcss\";\n@import \".\u002Ftypeset.css\";\n```\n\nThen wrap your rendered markdown with `typeset` and your preset class:\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"typeset typeset-docs\">\n    \u003CContentRenderer :value=\"page\" \u002F>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\n`typeset` turns the styles on. `typeset-docs` is the preset you created in the builder.\n\n---\n\n## Custom Typesets\n\nThe file includes defaults, so you can use `typeset` by itself. Most of the reading rhythm comes from three values:\n\n```css\n.typeset {\n  --typeset-font-body: inherit;\n  --typeset-font-heading: var(--font-heading);\n  --typeset-font-mono: var(--font-mono);\n\n  --typeset-size: 1em; \u002F* body font-size *\u002F\n  --typeset-leading: 1.75; \u002F* line-height *\u002F\n  --typeset-flow: 1.25em; \u002F* space between blocks *\u002F\n}\n```\n\n- **`--typeset-size`** sets the base text size. `1em` follows the surrounding layout. On smaller screens, Typeset bumps it up a little.\n- **`--typeset-leading`** sets the space between lines.\n- **`--typeset-flow`** sets the space between blocks. Headings and other elements derive their spacing from it.\n\nThe font variables tell Typeset which families to use. Leave them alone and it follows your app. Colors and radius come from your theme too.\n\nTypeset doesn't set a maximum width. Your layout owns that. The Measure control in the builder adds a `max-width` to the wrapper instead of hiding it in the stylesheet.\n\nYou can keep more than one preset in the same app. Here is a tighter one for chat and a roomier one for docs:\n\n```css\n.typeset-chat {\n  --typeset-flow: 1em;\n  --typeset-leading: 1.6;\n}\n\n.typeset-docs {\n  --typeset-size: 15px;\n  --typeset-flow: 1.5em;\n}\n```\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"typeset typeset-chat\" v-html=\"message\" \u002F>\n  \u003Carticle class=\"typeset typeset-docs\" v-html=\"page\" \u002F>\n\u003C\u002Ftemplate>\n```\n\nFor a one-off change, skip the preset and set a value on the container:\n\n```vue\n\u003Ctemplate>\n  \u003Carticle class=\"typeset [--typeset-flow:1.75em]\">...\u003C\u002Farticle>\n\u003C\u002Ftemplate>\n```\n\n---\n\n## Custom Themes\n\nA preset can change the whole feel of the content, not just the spacing. You can give readers a serif reading mode, a compact UI mode, or any other style that fits your product.\n\n```css\n\u002F* Reading: serif, larger type, roomy rhythm. *\u002F\n.typeset-reading {\n  --typeset-font-body: var(--font-lora);\n  --typeset-font-heading: var(--font-lora);\n  --typeset-size: 18px;\n  --typeset-leading: 1.9;\n  --typeset-flow: 2em;\n}\n\n\u002F* Compact: sans, smaller type, tighter rhythm. *\u002F\n.typeset-compact {\n  --typeset-font-body: var(--font-geist-sans);\n  --typeset-font-heading: var(--font-geist-sans);\n  --typeset-size: 14px;\n  --typeset-leading: 1.6;\n  --typeset-flow: 1em;\n}\n```\n\n---\n\n## Accessibility and Dark Mode\n\nFor readers who prefer larger type and more space, create a roomier typeset and expose it as a setting:\n\n```css\n.typeset-large {\n  --typeset-size: 16px;\n  --typeset-leading: 2;\n  --typeset-flow: 2em;\n}\n```\n\nDark mode already follows your theme colors. If the text feels a little tight on a dark surface, you can loosen the leading there:\n\n```css\n.dark .typeset {\n  --typeset-leading: 1.9;\n}\n```\n\n---\n\n## Responsive Table\n\nTables stay real tables and wrap to fit. To scroll a wide one horizontally instead, wrap it in `typeset-scroll`. The wrapper is styled as part of the content, so it only works *inside* a `typeset` container:\n\n```vue\n\u003Ctemplate>\n  \u003Carticle class=\"typeset typeset-docs\">\n    \u003Cdiv class=\"typeset-scroll\">\n      \u003Ctable>...\u003C\u002Ftable>\n    \u003C\u002Fdiv>\n  \u003C\u002Farticle>\n\u003C\u002Ftemplate>\n```\n\nDo this in your renderer's table component or a small rehype plugin, where the output already sits inside the container. It works for any wide block, not just tables.\n\n---\n\n## Overrides\n\nTypeset lives in the `components` layer and uses `:where()` for its element selectors. Tailwind utilities on an element win without `!important`:\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"typeset typeset-docs\">\n    \u003Cp class=\"text-lg\">...\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nPlain CSS can override Typeset with a normal selector too.\n\n---\n\n## Opting Out\n\nTo keep a component out of Typeset, add `not-typeset` or `data-not-typeset`:\n\n```vue\n\u003Ctemplate>\n  \u003Cdiv class=\"typeset\">\n    \u003Cp>Styled prose.\u003C\u002Fp>\n    \u003CCard class=\"not-typeset\">\n      Untouched component.\n    \u003C\u002FCard>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n```\n\nBoth options cover the component and everything inside it. Another `typeset` container inside that subtree stays opted out too.\n\n---\n\n## Streaming\n\nTypeset is written so that adding a new block does not change the styles of the blocks already on screen.\n\n- No forward-looking selectors. `:last-child`, `:has()`, and `:empty` are left out of layout rules because their matches can change as content is added.\n- Spacing flows in one direction, using `margin-block-start` only. A new block adds its own space.\n- Table separators live on the cells being added, so a new row does not restyle the row above it.\n\nText that is still streaming can grow and wrap normally. Typeset just avoids restyling the blocks that came before it.\n\n---\n\n## Prior Art\n\nThe `prose` class from `@tailwindcss\u002Ftypography` is excellent at what it was built for: adding beautiful typographic defaults to plain HTML, including content rendered from Markdown or a CMS.\n\nTypeset takes a different approach with container-aware sizing, app theme tokens, presets for different contexts, and streaming stability. Here's where they differ:\n\n|              | @tailwindcss\u002Ftypography                      | Typeset                                          |\n| ------------ | -------------------------------------------- | ------------------------------------------------ |\n| Sizing       | Fixed `rem` scale, `prose-sm` to `prose-2xl` | Relative to the container, any size              |\n| Dark mode    | `prose-invert`, a second palette             | Your tokens flip, nothing to add                 |\n| Theming      | Prose color variables; scale baked in        | Your theme tokens, plus font and rhythm controls |\n| Overrides    | `prose-a:`, `prose-headings:` modifier API   | Plain utilities and CSS win                      |\n| Streaming    | No append-stability contract                 | Designed for stable appends                      |\n| Distribution | npm plugin, generated CSS                    | One CSS file you own                             |\n\nTypeset borrows the two best ideas from the plugin: the zero-specificity `:where()` guard pattern, and the escape-hatch class (`not-typeset`, in the spirit of `not-prose`).\n",{"title":457,"description":1023},"zRuq7SxoR1_T3GyPcezaGchvm2C6LUDcdplm65kqQE0",[1031,1032],{"title":453,"path":454,"stem":455,"children":-1},{"title":393,"path":394,"stem":395,"children":-1},1785984429798]