[{"data":1,"prerenderedAt":2869},["ShallowReactive",2],{"navigation_docs":3,"-apps-app-docs-cap":2192,"-apps-app-docs-cap-surround":2864},[4,140,553,581,704,920,1851,1971,1976,1981,2040,2150],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","0.getting-started/0.index",[9,10,14,18,56,85,119,136],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Starting new project","/getting-started/starting-new-project","0.getting-started/1.starting-new-project",{"title":15,"path":16,"stem":17},"What is Laioutr?","/getting-started/what-is-laioutr","0.getting-started/2.what-is-laioutr",{"title":19,"path":20,"stem":21,"children":22,"page":55},"Key Concepts","/getting-started/key-concepts","0.getting-started/3.key-concepts",[23,27,31,35,39,43,47,51],{"title":24,"path":25,"stem":26},"Architecture","/getting-started/key-concepts/architecture","0.getting-started/3.key-concepts/1.architecture",{"title":28,"path":29,"stem":30},"Data Model","/getting-started/key-concepts/data-model","0.getting-started/3.key-concepts/2.data-model",{"title":32,"path":33,"stem":34},"Internationalization","/getting-started/key-concepts/5.internationalization","0.getting-started/3.key-concepts/3.5.internationalization",{"title":36,"path":37,"stem":38},"Data Flow","/getting-started/key-concepts/data-flow","0.getting-started/3.key-concepts/3.data-flow",{"title":40,"path":41,"stem":42},"Extensibility","/getting-started/key-concepts/extensibility","0.getting-started/3.key-concepts/4.extensibility",{"title":44,"path":45,"stem":46},"Philosophy","/getting-started/key-concepts/philosophy","0.getting-started/3.key-concepts/5.philosophy",{"title":48,"path":49,"stem":50},"CI/CD Pipeline","/getting-started/key-concepts/ci-cd-pipeline","0.getting-started/3.key-concepts/6.ci-cd-pipeline",{"title":52,"path":53,"stem":54},"Multi-tenancy","/getting-started/key-concepts/multi-tenancy","0.getting-started/3.key-concepts/multi-tenancy",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Next Steps","/getting-started/next-steps","0.getting-started/4.next-steps",[61,65,69,73,77,81],{"title":62,"path":63,"stem":64},"Create Organization and Project","/getting-started/next-steps/create-org-and-project","0.getting-started/4.next-steps/0.create-org-and-project",{"title":66,"path":67,"stem":68},"First Project Configuration","/getting-started/next-steps/first-project-config","0.getting-started/4.next-steps/1.first-project-config",{"title":70,"path":71,"stem":72},"Setup Local Development Environment","/getting-started/next-steps/local-setup","0.getting-started/4.next-steps/3.local-setup",{"title":74,"path":75,"stem":76},"Troubleshooting Local Setup","/getting-started/next-steps/local-setup-troubleshooting","0.getting-started/4.next-steps/4.local-setup-troubleshooting",{"title":78,"path":79,"stem":80},"Create your first custom app","/getting-started/next-steps/create-custom-app","0.getting-started/4.next-steps/5.create-custom-app",{"title":82,"path":83,"stem":84},"CLI","/getting-started/next-steps/cli","0.getting-started/4.next-steps/6.cli",{"title":86,"path":87,"stem":88,"children":89},"Changelogs","/getting-started/changelogs","0.getting-started/5.Changelogs/0.index",[90,91,95,99,103,107,111,115],{"title":86,"path":87,"stem":88},{"title":92,"path":93,"stem":94},"Canonical Types Changelog","/getting-started/changelogs/canonical-types-changelog","0.getting-started/5.Changelogs/canonical-types-changelog",{"title":96,"path":97,"stem":98},"CLI Changelog","/getting-started/changelogs/cli-changelog","0.getting-started/5.Changelogs/cli-changelog",{"title":100,"path":101,"stem":102},"Cockpit Changelog","/getting-started/changelogs/cockpit-changelog","0.getting-started/5.Changelogs/cockpit-changelog",{"title":104,"path":105,"stem":106},"Figma Kit Changelog","/getting-started/changelogs/figma-kit-changelog","0.getting-started/5.Changelogs/figma-kit-changelog",{"title":108,"path":109,"stem":110},"Frontend Changelog","/getting-started/changelogs/frontend-changelog","0.getting-started/5.Changelogs/frontend-changelog",{"title":112,"path":113,"stem":114},"Orchestr Changelog","/getting-started/changelogs/orchestr-changelog","0.getting-started/5.Changelogs/orchestr-changelog",{"title":116,"path":117,"stem":118},"UI Changelog","/getting-started/changelogs/ui-changelog","0.getting-started/5.Changelogs/ui-changelog",{"title":120,"path":121,"stem":122,"children":123,"page":55},"Hints And Tips","/getting-started/hints-and-tips","0.getting-started/6.Hints-and-Tips",[124,128,132],{"title":125,"path":126,"stem":127},"Introduction","/getting-started/hints-and-tips/introduction","0.getting-started/6.Hints-and-Tips/0.introduction",{"title":129,"path":130,"stem":131},"Developer tools","/getting-started/hints-and-tips/developer-tools","0.getting-started/6.Hints-and-Tips/1.developer-tools",{"title":133,"path":134,"stem":135},"Claude Code plugin","/getting-started/hints-and-tips/claude-marketplace","0.getting-started/6.Hints-and-Tips/2.claude-marketplace",{"title":137,"path":138,"stem":139},"Documentation MCP Server","/getting-started/documentation-mcp-server","0.getting-started/7.documentation-mcp-server",{"title":141,"path":142,"stem":143,"children":144},"Frontend","/frontend","1.Frontend/0.index",[145,146,157,227,253,331],{"title":141,"path":142,"stem":143},{"title":125,"path":147,"stem":148,"children":149,"page":55},"/frontend/introduction","1.Frontend/1.Introduction",[150,153],{"title":19,"path":151,"stem":152},"/frontend/introduction/key-concepts","1.Frontend/1.Introduction/0.key-concepts",{"title":154,"path":155,"stem":156},"Tech Stack","/frontend/introduction/tech-stack","1.Frontend/1.Introduction/1.tech-stack",{"title":158,"path":159,"stem":160,"children":161},"Features","/frontend/features","1.Frontend/2.Features/0.index",[162,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223],{"title":158,"path":159,"stem":160},{"title":164,"path":165,"stem":166},"Bot Protection","/frontend/features/bot-protection","1.Frontend/2.Features/bot-protection",{"title":168,"path":169,"stem":170},"Consent Management","/frontend/features/consent-management","1.Frontend/2.Features/consent-management",{"title":172,"path":173,"stem":174},"Content Preview","/frontend/features/content-preview","1.Frontend/2.Features/content-preview",{"title":176,"path":177,"stem":178},"Currencies","/frontend/features/currencies","1.Frontend/2.Features/currencies",{"title":180,"path":181,"stem":182},"Environments & Staging","/frontend/features/environments","1.Frontend/2.Features/environments",{"title":184,"path":185,"stem":186},"Hooks","/frontend/features/hooks","1.Frontend/2.Features/hooks",{"title":188,"path":189,"stem":190},"Media and Media Library","/frontend/features/media","1.Frontend/2.Features/media",{"title":192,"path":193,"stem":194},"Multi-language Support","/frontend/features/multi-language-support","1.Frontend/2.Features/multi-language-support",{"title":196,"path":197,"stem":198},"Multi-market","/frontend/features/multi-market","1.Frontend/2.Features/multi-market",{"title":200,"path":201,"stem":202},"Page Types","/frontend/features/pagetypes","1.Frontend/2.Features/pagetypes",{"title":204,"path":205,"stem":206},"PWA","/frontend/features/pwa","1.Frontend/2.Features/pwa",{"title":208,"path":209,"stem":210},"Redirects","/frontend/features/redirects","1.Frontend/2.Features/redirects",{"title":212,"path":213,"stem":214},"Routing","/frontend/features/routing","1.Frontend/2.Features/routing",{"title":216,"path":217,"stem":218},"Server-Side Rendering (SSR) and Caching","/frontend/features/ssr-and-caching","1.Frontend/2.Features/ssr-and-caching",{"title":220,"path":221,"stem":222},"Tracking","/frontend/features/tracking","1.Frontend/2.Features/tracking",{"title":224,"path":225,"stem":226},"Z-Ordering","/frontend/features/z-ordering","1.Frontend/2.Features/z-ordering",{"title":228,"path":229,"stem":230,"children":231},"SEO","/frontend/seo","1.Frontend/3.SEO/0.index",[232,233,237,241,245,249],{"title":228,"path":229,"stem":230},{"title":234,"path":235,"stem":236},"Link Checker","/frontend/seo/link-checker","1.Frontend/3.SEO/link-checker",{"title":238,"path":239,"stem":240},"OG Image","/frontend/seo/og-image","1.Frontend/3.SEO/og-image",{"title":242,"path":243,"stem":244},"Robots.txt","/frontend/seo/robots-txt","1.Frontend/3.SEO/robots-txt",{"title":246,"path":247,"stem":248},"Schema.org","/frontend/seo/schema-org","1.Frontend/3.SEO/schema-org",{"title":250,"path":251,"stem":252},"Sitemap","/frontend/seo/sitemap","1.Frontend/3.SEO/sitemap",{"title":254,"path":255,"stem":256,"children":257},"Backend for Frontend","/frontend/orchestr","1.Frontend/4.Orchestr/0.index",[258,259,285,289,293,297,301,305,309,313,317,323,327],{"title":254,"path":255,"stem":256},{"title":260,"path":261,"stem":262,"children":263},"Recipes","/frontend/orchestr/recipes","1.Frontend/4.Orchestr/99.recipes/0.index",[264,265,269,273,277,281],{"title":260,"path":261,"stem":262},{"title":266,"path":267,"stem":268},"Analytics components from query handlers","/frontend/orchestr/recipes/analytics-from-query-handlers","1.Frontend/4.Orchestr/99.recipes/analytics-from-query-handlers",{"title":270,"path":271,"stem":272},"Identity cookies (cart and visitor IDs)","/frontend/orchestr/recipes/identity-cookies","1.Frontend/4.Orchestr/99.recipes/identity-cookies",{"title":274,"path":275,"stem":276},"System bootstrap in extendRequest","/frontend/orchestr/recipes/system-bootstrap","1.Frontend/4.Orchestr/99.recipes/system-bootstrap",{"title":278,"path":279,"stem":280},"Translating vendor errors","/frontend/orchestr/recipes/translating-vendor-errors","1.Frontend/4.Orchestr/99.recipes/translating-vendor-errors",{"title":282,"path":283,"stem":284},"Userland cache patterns","/frontend/orchestr/recipes/userland-cache-patterns","1.Frontend/4.Orchestr/99.recipes/userland-cache-patterns",{"title":286,"path":287,"stem":288},"Actions","/frontend/orchestr/actions","1.Frontend/4.Orchestr/Actions",{"title":290,"path":291,"stem":292},"Caching","/frontend/orchestr/caching","1.Frontend/4.Orchestr/Caching",{"title":294,"path":295,"stem":296},"Store Devtools","/frontend/orchestr/devtools","1.Frontend/4.Orchestr/Devtools",{"title":298,"path":299,"stem":300},"Middleware","/frontend/orchestr/middleware","1.Frontend/4.Orchestr/Middleware",{"title":302,"path":303,"stem":304},"Queries & Links","/frontend/orchestr/queries","1.Frontend/4.Orchestr/Queries",{"title":306,"path":307,"stem":308},"Client Environment","/frontend/orchestr/client-env","1.Frontend/4.Orchestr/client-env",{"title":310,"path":311,"stem":312},"Component Resolvers","/frontend/orchestr/component-resolvers","1.Frontend/4.Orchestr/component-resolvers",{"title":314,"path":315,"stem":316},"Filters","/frontend/orchestr/filters","1.Frontend/4.Orchestr/filters",{"title":318,"path":319,"stem":320,"children":321},"Page Index","/frontend/orchestr/page-index","1.Frontend/4.Orchestr/page-index",[322],{"title":318,"path":319,"stem":320},{"title":324,"path":325,"stem":326},"URL Query Parameters","/frontend/orchestr/url-query-params","1.Frontend/4.Orchestr/url-query-params",{"title":328,"path":329,"stem":330},"Orchestr Wire Format","/frontend/orchestr/wire-format","1.Frontend/4.Orchestr/wire-format",{"title":332,"path":333,"stem":334,"children":335},"API Reference","/frontend/api-reference","1.Frontend/99.api-reference/0.index",[336,337,455,458,492,508,516,527,535,542],{"title":332,"path":333,"stem":334},{"title":338,"path":339,"stem":340,"children":341},"Entities","/frontend/api-reference/entities","1.Frontend/99.api-reference/01.entities/0.index",[342,343,347,351,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,427,431,435,439,443,447,451],{"title":338,"path":339,"stem":340},{"title":344,"path":345,"stem":346},"Product","/frontend/api-reference/entities/product","1.Frontend/99.api-reference/01.entities/1.product",{"title":348,"path":349,"stem":350},"SuggestedSearch","/frontend/api-reference/entities/suggested-search","1.Frontend/99.api-reference/01.entities/10.suggested-search",{"title":352,"path":353,"stem":354},"SuggestedSearchEntry","/frontend/api-reference/entities/suggested-search-entry","1.Frontend/99.api-reference/01.entities/11.suggested-search-entry",{"title":356,"path":357,"stem":358},"BlogCollection","/frontend/api-reference/entities/blog-collection","1.Frontend/99.api-reference/01.entities/12.blog-collection",{"title":360,"path":361,"stem":362},"Comment","/frontend/api-reference/entities/comment","1.Frontend/99.api-reference/01.entities/13.comment",{"title":364,"path":365,"stem":366},"Location","/frontend/api-reference/entities/location","1.Frontend/99.api-reference/01.entities/14.location",{"title":368,"path":369,"stem":370},"Glossary","/frontend/api-reference/entities/glossary","1.Frontend/99.api-reference/01.entities/15.glossary",{"title":372,"path":373,"stem":374},"Product List","/frontend/api-reference/entities/product-list","1.Frontend/99.api-reference/01.entities/16.product-list",{"title":376,"path":377,"stem":378},"Product List Item","/frontend/api-reference/entities/product-list-item","1.Frontend/99.api-reference/01.entities/17.product-list-item",{"title":380,"path":381,"stem":382},"Organization","/frontend/api-reference/entities/organization","1.Frontend/99.api-reference/01.entities/18.organization",{"title":384,"path":385,"stem":386},"Employee","/frontend/api-reference/entities/employee","1.Frontend/99.api-reference/01.entities/19.employee",{"title":388,"path":389,"stem":390},"ProductVariant","/frontend/api-reference/entities/product-variant","1.Frontend/99.api-reference/01.entities/2.product-variant",{"title":392,"path":393,"stem":394},"Cost Center","/frontend/api-reference/entities/cost-center","1.Frontend/99.api-reference/01.entities/20.cost-center",{"title":396,"path":397,"stem":398},"Budget","/frontend/api-reference/entities/budget","1.Frontend/99.api-reference/01.entities/21.budget",{"title":400,"path":401,"stem":402},"Quote","/frontend/api-reference/entities/quote","1.Frontend/99.api-reference/01.entities/22.quote",{"title":404,"path":405,"stem":406},"Quote Item","/frontend/api-reference/entities/quote-item","1.Frontend/99.api-reference/01.entities/23.quote-item",{"title":408,"path":409,"stem":410},"Approval Flow","/frontend/api-reference/entities/approval-flow","1.Frontend/99.api-reference/01.entities/24.approval-flow",{"title":412,"path":413,"stem":414},"Approval Rule","/frontend/api-reference/entities/approval-rule","1.Frontend/99.api-reference/01.entities/25.approval-rule",{"title":416,"path":417,"stem":418},"Fee","/frontend/api-reference/entities/fee","1.Frontend/99.api-reference/01.entities/26.fee",{"title":420,"path":421,"stem":422},"Stock Location","/frontend/api-reference/entities/stock-location","1.Frontend/99.api-reference/01.entities/27.stock-location",{"title":424,"path":425,"stem":426},"Stock Level","/frontend/api-reference/entities/stock-level","1.Frontend/99.api-reference/01.entities/28.stock-level",{"title":428,"path":429,"stem":430},"Category","/frontend/api-reference/entities/category","1.Frontend/99.api-reference/01.entities/3.category",{"title":432,"path":433,"stem":434},"Cart","/frontend/api-reference/entities/cart","1.Frontend/99.api-reference/01.entities/4.cart",{"title":436,"path":437,"stem":438},"CartItem","/frontend/api-reference/entities/cart-item","1.Frontend/99.api-reference/01.entities/5.cart-item",{"title":440,"path":441,"stem":442},"Review","/frontend/api-reference/entities/review","1.Frontend/99.api-reference/01.entities/6.review",{"title":444,"path":445,"stem":446},"BreadcrumbItem","/frontend/api-reference/entities/breadcrumb-item","1.Frontend/99.api-reference/01.entities/7.breadcrumb-item",{"title":448,"path":449,"stem":450},"MenuItem","/frontend/api-reference/entities/menu-item","1.Frontend/99.api-reference/01.entities/8.menu-item",{"title":452,"path":453,"stem":454},"BlogPost","/frontend/api-reference/entities/blog-post","1.Frontend/99.api-reference/01.entities/9.blog-post",{"title":200,"path":456,"stem":457},"/frontend/api-reference/page-types","1.Frontend/99.api-reference/02.page-types",{"title":459,"path":460,"stem":461,"children":462},"Common Types","/frontend/api-reference/common-types","1.Frontend/99.api-reference/03.common-types/0.index",[463,464,468,472,476,480,484,488],{"title":459,"path":460,"stem":461},{"title":465,"path":466,"stem":467},"Link","/frontend/api-reference/common-types/link","1.Frontend/99.api-reference/03.common-types/1.link",{"title":469,"path":470,"stem":471},"Media","/frontend/api-reference/common-types/media","1.Frontend/99.api-reference/03.common-types/2.media",{"title":473,"path":474,"stem":475},"Money","/frontend/api-reference/common-types/money","1.Frontend/99.api-reference/03.common-types/3.money",{"title":477,"path":478,"stem":479},"UnitPrice","/frontend/api-reference/common-types/unit-price","1.Frontend/99.api-reference/03.common-types/4.unit-price",{"title":481,"path":482,"stem":483},"Measurement","/frontend/api-reference/common-types/measurement","1.Frontend/99.api-reference/03.common-types/5.measurement",{"title":485,"path":486,"stem":487},"Opening Hours","/frontend/api-reference/common-types/opening-hours","1.Frontend/99.api-reference/03.common-types/6.opening-hours",{"title":489,"path":490,"stem":491},"Commerce Value Types","/frontend/api-reference/common-types/commerce-values","1.Frontend/99.api-reference/03.common-types/7.commerce-values",{"title":493,"path":494,"stem":495,"children":496,"page":55},"Ecommerce","/frontend/api-reference/ecommerce","1.Frontend/99.api-reference/10.ecommerce",[497,500,504],{"title":286,"path":498,"stem":499},"/frontend/api-reference/ecommerce/actions","1.Frontend/99.api-reference/10.ecommerce/1.actions",{"title":501,"path":502,"stem":503},"Queries","/frontend/api-reference/ecommerce/queries","1.Frontend/99.api-reference/10.ecommerce/2.queries",{"title":505,"path":506,"stem":507},"Errors","/frontend/api-reference/ecommerce/errors","1.Frontend/99.api-reference/10.ecommerce/3.errors",{"title":509,"path":510,"stem":511,"children":512,"page":55},"Newsletter","/frontend/api-reference/newsletter","1.Frontend/99.api-reference/11.newsletter",[513],{"title":286,"path":514,"stem":515},"/frontend/api-reference/newsletter/actions","1.Frontend/99.api-reference/11.newsletter/1.actions",{"title":517,"path":518,"stem":519,"children":520,"page":55},"Blog","/frontend/api-reference/blog","1.Frontend/99.api-reference/12.blog",[521,524],{"title":501,"path":522,"stem":523},"/frontend/api-reference/blog/queries","1.Frontend/99.api-reference/12.blog/1.queries",{"title":505,"path":525,"stem":526},"/frontend/api-reference/blog/errors","1.Frontend/99.api-reference/12.blog/2.errors",{"title":528,"path":529,"stem":530,"children":531,"page":55},"Suggested Search","/frontend/api-reference/suggested-search","1.Frontend/99.api-reference/13.suggested-search",[532],{"title":501,"path":533,"stem":534},"/frontend/api-reference/suggested-search/queries","1.Frontend/99.api-reference/13.suggested-search/1.queries",{"title":364,"path":536,"stem":537,"children":538,"page":55},"/frontend/api-reference/location","1.Frontend/99.api-reference/15.location",[539],{"title":501,"path":540,"stem":541},"/frontend/api-reference/location/queries","1.Frontend/99.api-reference/15.location/1.queries",{"title":543,"path":544,"stem":545,"children":546,"page":55},"B2b","/frontend/api-reference/b2b","1.Frontend/99.api-reference/16.b2b",[547,550],{"title":286,"path":548,"stem":549},"/frontend/api-reference/b2b/actions","1.Frontend/99.api-reference/16.b2b/1.actions",{"title":505,"path":551,"stem":552},"/frontend/api-reference/b2b/errors","1.Frontend/99.api-reference/16.b2b/2.errors",{"title":554,"path":555,"stem":556,"children":557},"Agent API","/agent-api","10.Agent-API/0.index",[558,559],{"title":554,"path":555,"stem":556},{"title":560,"path":561,"stem":562,"children":563},"Laioutr MCP","/agent-api/laioutr-mcp","10.Agent-API/1.Laioutr-MCP/0.index",[564,565,569,573,577],{"title":560,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Connecting to Laioutr MCP","/agent-api/laioutr-mcp/connecting-to-laioutr-mcp","10.Agent-API/1.Laioutr-MCP/1.connecting-to-laioutr-mcp",{"title":570,"path":571,"stem":572},"Supported tools","/agent-api/laioutr-mcp/supported-tools","10.Agent-API/1.Laioutr-MCP/2.supported-tools",{"title":574,"path":575,"stem":576},"Security best practices","/agent-api/laioutr-mcp/security-best-practices","10.Agent-API/1.Laioutr-MCP/3.security-best-practices",{"title":578,"path":579,"stem":580},"Integrating your own MCP client","/agent-api/laioutr-mcp/integrating-your-own-mcp-client","10.Agent-API/1.Laioutr-MCP/4.integrating-your-own-mcp-client",{"title":582,"path":583,"stem":584,"children":585},"Offering","/offering","11.Offering/0.index",[586,587,622,634,651,689,698],{"title":582,"path":583,"stem":584},{"title":588,"path":589,"stem":590,"children":591},"Products","/offering/products","11.Offering/1.Products/0.index",[592,593,598,604,610,616],{"title":588,"path":589,"stem":590},{"title":141,"path":594,"stem":595,"children":596},"/offering/products/frontend","11.Offering/1.Products/1.Frontend/0.index",[597],{"title":141,"path":594,"stem":595},{"title":599,"path":600,"stem":601,"children":602},"Cockpit","/offering/products/cockpit","11.Offering/1.Products/2.Cockpit/0.index",[603],{"title":599,"path":600,"stem":601},{"title":605,"path":606,"stem":607,"children":608},"Checkout","/offering/products/checkout","11.Offering/1.Products/3.Checkout/0.index",[609],{"title":605,"path":606,"stem":607},{"title":611,"path":612,"stem":613,"children":614},"Cloud","/offering/products/cloud","11.Offering/1.Products/4.cloud/0.index",[615],{"title":611,"path":612,"stem":613},{"title":617,"path":618,"stem":619,"children":620},"Larry AI","/offering/products/larry-ai","11.Offering/1.Products/5.larry-ai/0.index",[621],{"title":617,"path":618,"stem":619},{"title":623,"path":624,"stem":625,"children":626,"page":55},"Service Level Agreement","/offering/service-level-agreement","11.Offering/2.service-level-agreement",[627,630],{"title":623,"path":628,"stem":629},"/offering/service-level-agreement/standard-service-level-agreement","11.Offering/2.service-level-agreement/1.standard-service-level-agreement",{"title":631,"path":632,"stem":633},"Backups","/offering/service-level-agreement/backups","11.Offering/2.service-level-agreement/backups",{"title":635,"path":636,"stem":637,"children":638,"page":55},"Customer Support","/offering/customer-support","11.Offering/3.customer-support",[639,643,647],{"title":640,"path":641,"stem":642},"Standard Customer Support","/offering/customer-support/standard-customer-support","11.Offering/3.customer-support/1.standard-customer-support",{"title":644,"path":645,"stem":646},"Customer Support Severity Levels of Laioutr products","/offering/customer-support/maximum-serverity-levels","11.Offering/3.customer-support/maximum-serverity-levels",{"title":648,"path":649,"stem":650},"Professional Service Plans","/offering/customer-support/professional-service-plans","11.Offering/3.customer-support/professional-service-plans",{"title":652,"path":653,"stem":654,"children":655},"Trust Center","/offering/trust-center","11.Offering/4.trust-center/0.index",[656,657,661,665,669,673,677,681,685],{"title":652,"path":653,"stem":654},{"title":658,"path":659,"stem":660},"Data Protection (GDPR)","/offering/trust-center/data-protection","11.Offering/4.trust-center/1.data-protection",{"title":662,"path":663,"stem":664},"Subprocessors","/offering/trust-center/subprocessors","11.Offering/4.trust-center/2.subprocessors",{"title":666,"path":667,"stem":668},"Infrastructure & Hosting","/offering/trust-center/infrastructure","11.Offering/4.trust-center/3.infrastructure",{"title":670,"path":671,"stem":672},"Security Measures","/offering/trust-center/security-measures","11.Offering/4.trust-center/4.security-measures",{"title":674,"path":675,"stem":676},"Incident Response","/offering/trust-center/incident-response","11.Offering/4.trust-center/5.incident-response",{"title":678,"path":679,"stem":680},"Compliance & Certifications","/offering/trust-center/compliance","11.Offering/4.trust-center/6.compliance",{"title":682,"path":683,"stem":684},"Cookies and browser storage","/offering/trust-center/cookies","11.Offering/4.trust-center/7.cookies",{"title":686,"path":687,"stem":688},"FAQ","/offering/trust-center/faq","11.Offering/4.trust-center/8.faq",{"title":690,"path":691,"stem":692,"children":693,"page":55},"Policies","/offering/policies","11.Offering/5.policies",[694],{"title":695,"path":696,"stem":697},"Fair usage policy","/offering/policies/fair-usage-policy","11.Offering/5.policies/fair-usage-policy",{"title":699,"path":700,"stem":701,"children":702},"Academy","/offering/academy","11.Offering/6.academy/0.index",[703],{"title":699,"path":700,"stem":701},{"title":705,"path":706,"stem":707,"children":708},"Apps","/apps","2.apps/0.index",[709,710,806,904],{"title":705,"path":706,"stem":707},{"title":711,"path":712,"stem":713,"children":714},"App Development","/apps/app-development","2.apps/app-development/0.index",[715,716,738,742,746,750,754,758,762,766,770,774,778,782,786,790,794,798,802],{"title":711,"path":712,"stem":713},{"title":717,"path":718,"stem":719,"children":720},"Guides","/apps/app-development/guides","2.apps/app-development/99.guides/0.index",[721,722,726,730,734],{"title":717,"path":718,"stem":719},{"title":723,"path":724,"stem":725},"Separate schema components from UI components","/apps/app-development/guides/schema-components-vs-ui-components","2.apps/app-development/99.guides/schema-components-vs-ui-components",{"title":727,"path":728,"stem":729},"Section config standard","/apps/app-development/guides/section-config-standard","2.apps/app-development/99.guides/section-config-standard",{"title":731,"path":732,"stem":733},"Shared field factories","/apps/app-development/guides/shared-field-factories","2.apps/app-development/99.guides/shared-field-factories",{"title":735,"path":736,"stem":737},"How to write CSS","/apps/app-development/guides/writing-css","2.apps/app-development/99.guides/writing-css",{"title":739,"path":740,"stem":741},"App Configuration","/apps/app-development/app-configuration","2.apps/app-development/app-configuration",{"title":743,"path":744,"stem":745},"App Manifest","/apps/app-development/app-manifest","2.apps/app-development/app-manifest",{"title":747,"path":748,"stem":749},"App Starter","/apps/app-development/app-starter","2.apps/app-development/app-starter",{"title":751,"path":752,"stem":753},"Best Practice","/apps/app-development/best-practice","2.apps/app-development/best-practice",{"title":755,"path":756,"stem":757},"Block Definitions","/apps/app-development/block-definitions","2.apps/app-development/block-definitions",{"title":759,"path":760,"stem":761},"Bot Protection Providers","/apps/app-development/bot-protection-providers","2.apps/app-development/bot-protection-providers",{"title":763,"path":764,"stem":765},"Coding Standards","/apps/app-development/coding-standards","2.apps/app-development/coding-standards",{"title":767,"path":768,"stem":769},"Consent Adapters","/apps/app-development/consent-adapters","2.apps/app-development/consent-adapters",{"title":771,"path":772,"stem":773},"Consuming Query Fields","/apps/app-development/consuming-query-fields","2.apps/app-development/consuming-query-fields",{"title":775,"path":776,"stem":777},"Content Collections","/apps/app-development/content-collections","2.apps/app-development/content-collections",{"title":779,"path":780,"stem":781},"Implementation Overview","/apps/app-development/implementation-overview","2.apps/app-development/implementation-overview",{"title":783,"path":784,"stem":785},"Media Libraries","/apps/app-development/media-libraries","2.apps/app-development/media-libraries",{"title":787,"path":788,"stem":789},"Platform Dependencies","/apps/app-development/platform-dependencies","2.apps/app-development/platform-dependencies",{"title":791,"path":792,"stem":793},"Releasing an App","/apps/app-development/releasing-an-app","2.apps/app-development/releasing-an-app",{"title":795,"path":796,"stem":797},"Schema Fields","/apps/app-development/schema-fields","2.apps/app-development/schema-fields",{"title":799,"path":800,"stem":801},"Section Definitions","/apps/app-development/section-definitions","2.apps/app-development/section-definitions",{"title":803,"path":804,"stem":805},"Studio Icons","/apps/app-development/studio-icons","2.apps/app-development/studio-icons",{"title":807,"path":808,"stem":809,"children":810},"App Docs","/apps/app-docs","2.apps/app-docs/0.index",[811,812,816,820,824,828,832,836,840,844,848,852,856,860,864,868,872,876,880,884,888,892,896,900],{"title":807,"path":808,"stem":809},{"title":813,"path":814,"stem":815},"Actindo","/apps/app-docs/actindo","2.apps/app-docs/actindo",{"title":817,"path":818,"stem":819},"Adobe Commerce","/apps/app-docs/adobe-commerce","2.apps/app-docs/adobe-commerce",{"title":821,"path":822,"stem":823},"B2Bsellers","/apps/app-docs/b2bsellers","2.apps/app-docs/b2bsellers",{"title":825,"path":826,"stem":827},"Battery Included","/apps/app-docs/battery-included","2.apps/app-docs/battery-included",{"title":829,"path":830,"stem":831},"Vercel BotID","/apps/app-docs/botid","2.apps/app-docs/botid",{"title":833,"path":834,"stem":835},"Cap","/apps/app-docs/cap","2.apps/app-docs/cap",{"title":837,"path":838,"stem":839},"CCM19","/apps/app-docs/ccm19","2.apps/app-docs/ccm19",{"title":841,"path":842,"stem":843},"Commercetools","/apps/app-docs/commercetools","2.apps/app-docs/commercetools",{"title":845,"path":846,"stem":847},"Cookiebot","/apps/app-docs/cookiebot","2.apps/app-docs/cookiebot",{"title":849,"path":850,"stem":851},"Emporix","/apps/app-docs/emporix","2.apps/app-docs/emporix",{"title":853,"path":854,"stem":855},"Google Tag Manager (GTM)","/apps/app-docs/gtm","2.apps/app-docs/gtm",{"title":857,"path":858,"stem":859},"Hygraph","/apps/app-docs/hygraph","2.apps/app-docs/hygraph",{"title":861,"path":862,"stem":863},"JTL Platform","/apps/app-docs/jtl-platform","2.apps/app-docs/jtl-platform",{"title":865,"path":866,"stem":867},"Klaviyo","/apps/app-docs/klaviyo","2.apps/app-docs/klaviyo",{"title":869,"path":870,"stem":871},"Nimstrata Google Retail API","/apps/app-docs/nimstrata","2.apps/app-docs/nimstrata",{"title":873,"path":874,"stem":875},"OXID eShop","/apps/app-docs/oxid","2.apps/app-docs/oxid",{"title":877,"path":878,"stem":879},"Pimcore","/apps/app-docs/pimcore","2.apps/app-docs/pimcore",{"title":881,"path":882,"stem":883},"Shopify","/apps/app-docs/shopify","2.apps/app-docs/shopify",{"title":885,"path":886,"stem":887},"Shopware","/apps/app-docs/shopware","2.apps/app-docs/shopware",{"title":889,"path":890,"stem":891},"Sylius","/apps/app-docs/sylius","2.apps/app-docs/sylius",{"title":893,"path":894,"stem":895},"Cloudflare Turnstile","/apps/app-docs/turnstile","2.apps/app-docs/turnstile",{"title":897,"path":898,"stem":899},"Vercel Analytics","/apps/app-docs/vercel-analytics","2.apps/app-docs/vercel-analytics",{"title":901,"path":902,"stem":903},"Vercel Speed Insights","/apps/app-docs/vercel-speed-insights","2.apps/app-docs/vercel-speed-insights",{"title":905,"path":906,"stem":907,"children":908,"page":55},"Essentials","/apps/essentials","2.apps/essentials",[909,913,917],{"title":910,"path":911,"stem":912},"Legal","/apps/essentials/legal","2.apps/essentials/legal",{"title":914,"path":915,"stem":916},"Mailer","/apps/essentials/mailer","2.apps/essentials/mailer",{"title":228,"path":918,"stem":919},"/apps/essentials/seo","2.apps/essentials/seo",{"title":921,"path":922,"stem":923,"children":924},"Laioutr UI","/laioutr-ui","3.laioutr-ui/0.index",[925,926,958,964,970,1166,1187,1193,1199,1253,1263,1281,1419],{"title":921,"path":922,"stem":923},{"title":5,"path":927,"stem":928,"children":929},"/laioutr-ui/getting-started","3.laioutr-ui/01.getting-started/0.index",[930,931,935,939,943,947,951,955],{"title":5,"path":927,"stem":928},{"title":932,"path":933,"stem":934},"Browser support","/laioutr-ui/getting-started/browser-support","3.laioutr-ui/01.getting-started/1.browser-support",{"title":936,"path":937,"stem":938},"Common Data","/laioutr-ui/getting-started/common-data","3.laioutr-ui/01.getting-started/99.common-data",{"title":940,"path":941,"stem":942},"CSS Layers","/laioutr-ui/getting-started/css-layers","3.laioutr-ui/01.getting-started/css-layers",{"title":944,"path":945,"stem":946},"Figma Kit","/laioutr-ui/getting-started/figma-kit","3.laioutr-ui/01.getting-started/figma-kit",{"title":948,"path":949,"stem":950},"Surface Tone","/laioutr-ui/getting-started/surface-tone","3.laioutr-ui/01.getting-started/surface-tone",{"title":952,"path":953,"stem":954},"Theming","/laioutr-ui/getting-started/theming","3.laioutr-ui/01.getting-started/theming",{"title":224,"path":956,"stem":957},"/laioutr-ui/getting-started/z-ordering","3.laioutr-ui/01.getting-started/z-ordering",{"title":959,"path":960,"stem":961,"children":962},"B2B","/laioutr-ui/b2b","3.laioutr-ui/b2b/0.index",[963],{"title":959,"path":960,"stem":961},{"title":965,"path":966,"stem":967,"children":968},"Booking","/laioutr-ui/booking","3.laioutr-ui/booking/0.index",[969],{"title":965,"path":966,"stem":967},{"title":971,"path":972,"stem":973,"children":974},"CMS","/laioutr-ui/cms","3.laioutr-ui/cms/0.index",[975,976,982,1007,1019,1023,1027,1031,1035,1039,1051,1072,1076,1097,1113,1162],{"title":971,"path":972,"stem":973},{"title":977,"path":978,"stem":979,"children":980},"Alphabetical Index","/laioutr-ui/cms/alphabetical-index","3.laioutr-ui/cms/alphabetical-index",[981],{"title":977,"path":978,"stem":979},{"title":983,"path":984,"stem":985,"children":986,"page":55},"Banner","/laioutr-ui/cms/banner","3.laioutr-ui/cms/banner",[987,991,995,999,1003],{"title":988,"path":989,"stem":990},"Banner Basic","/laioutr-ui/cms/banner/banner-basic","3.laioutr-ui/cms/banner/banner-basic",{"title":992,"path":993,"stem":994},"Banner Integrated","/laioutr-ui/cms/banner/banner-integrated","3.laioutr-ui/cms/banner/banner-integrated",{"title":996,"path":997,"stem":998},"Banner Showcase","/laioutr-ui/cms/banner/banner-showcase","3.laioutr-ui/cms/banner/banner-showcase",{"title":1000,"path":1001,"stem":1002},"Media + Text","/laioutr-ui/cms/banner/media-text","3.laioutr-ui/cms/banner/media-text",{"title":1004,"path":1005,"stem":1006},"USP Banner","/laioutr-ui/cms/banner/usp-banner","3.laioutr-ui/cms/banner/usp-banner",{"title":517,"path":1008,"stem":1009,"children":1010,"page":55},"/laioutr-ui/cms/blog","3.laioutr-ui/cms/blog",[1011,1015],{"title":1012,"path":1013,"stem":1014},"Article Detail","/laioutr-ui/cms/blog/article-detail","3.laioutr-ui/cms/blog/article-detail",{"title":1016,"path":1017,"stem":1018},"Blog Post Listing","/laioutr-ui/cms/blog/blog-post-listing","3.laioutr-ui/cms/blog/blog-post-listing",{"title":1020,"path":1021,"stem":1022},"Brand Hero","/laioutr-ui/cms/brand-hero","3.laioutr-ui/cms/brand-hero",{"title":1024,"path":1025,"stem":1026},"Container","/laioutr-ui/cms/container","3.laioutr-ui/cms/container",{"title":1028,"path":1029,"stem":1030},"Content Grid","/laioutr-ui/cms/content-grid","3.laioutr-ui/cms/content-grid",{"title":1032,"path":1033,"stem":1034},"Editorial Grid","/laioutr-ui/cms/editorial-grid","3.laioutr-ui/cms/editorial-grid",{"title":1036,"path":1037,"stem":1038},"Media Gallery","/laioutr-ui/cms/media-gallery","3.laioutr-ui/cms/media-gallery",{"title":509,"path":1040,"stem":1041,"children":1042,"page":55},"/laioutr-ui/cms/newsletter","3.laioutr-ui/cms/newsletter",[1043,1047],{"title":1044,"path":1045,"stem":1046},"Email Input Form","/laioutr-ui/cms/newsletter/email-input-form","3.laioutr-ui/cms/newsletter/email-input-form",{"title":1048,"path":1049,"stem":1050},"Newsletter Registration","/laioutr-ui/cms/newsletter/newsletter-registration","3.laioutr-ui/cms/newsletter/newsletter-registration",{"title":1052,"path":1053,"stem":1054,"children":1055,"page":55},"Popups","/laioutr-ui/cms/popups","3.laioutr-ui/cms/popups",[1056,1060,1064,1068],{"title":1057,"path":1058,"stem":1059},"PopUp","/laioutr-ui/cms/popups/pop-up","3.laioutr-ui/cms/popups/pop-up",{"title":1061,"path":1062,"stem":1063},"PopUp Info","/laioutr-ui/cms/popups/pop-up-info","3.laioutr-ui/cms/popups/pop-up-info",{"title":1065,"path":1066,"stem":1067},"PopUp Newsletter","/laioutr-ui/cms/popups/pop-up-newsletter","3.laioutr-ui/cms/popups/pop-up-newsletter",{"title":1069,"path":1070,"stem":1071},"PopUp Promotion","/laioutr-ui/cms/popups/pop-up-promotion","3.laioutr-ui/cms/popups/pop-up-promotion",{"title":1073,"path":1074,"stem":1075},"Promotion Banner","/laioutr-ui/cms/promotion-banner","3.laioutr-ui/cms/promotion-banner",{"title":1077,"path":1078,"stem":1079,"children":1080,"page":55},"Quotes","/laioutr-ui/cms/quotes","3.laioutr-ui/cms/quotes",[1081,1085,1089,1093],{"title":1082,"path":1083,"stem":1084},"Persona Quote","/laioutr-ui/cms/quotes/persona-quote","3.laioutr-ui/cms/quotes/persona-quote",{"title":1086,"path":1087,"stem":1088},"Persona Quote Slider","/laioutr-ui/cms/quotes/persona-quote-slider","3.laioutr-ui/cms/quotes/persona-quote-slider",{"title":1090,"path":1091,"stem":1092},"Quote Card","/laioutr-ui/cms/quotes/quote-card","3.laioutr-ui/cms/quotes/quote-card",{"title":1094,"path":1095,"stem":1096},"Quote Card Slider","/laioutr-ui/cms/quotes/quote-card-slider","3.laioutr-ui/cms/quotes/quote-card-slider",{"title":1098,"path":1099,"stem":1100,"children":1101,"page":55},"Reviews","/laioutr-ui/cms/reviews","3.laioutr-ui/cms/reviews",[1102,1105,1109],{"title":440,"path":1103,"stem":1104},"/laioutr-ui/cms/reviews/review","3.laioutr-ui/cms/reviews/review",{"title":1106,"path":1107,"stem":1108},"Review Form","/laioutr-ui/cms/reviews/review-form","3.laioutr-ui/cms/reviews/review-form",{"title":1110,"path":1111,"stem":1112},"Social Share","/laioutr-ui/cms/reviews/social-share","3.laioutr-ui/cms/reviews/social-share",{"title":1114,"path":1115,"stem":1116,"children":1117,"page":55},"Slider","/laioutr-ui/cms/slider","3.laioutr-ui/cms/slider",[1118,1122,1126,1130,1134,1138,1142,1146,1150,1154,1158],{"title":1119,"path":1120,"stem":1121},"Content Slider","/laioutr-ui/cms/slider/content-slider","3.laioutr-ui/cms/slider/content-slider",{"title":1123,"path":1124,"stem":1125},"Hero Slider","/laioutr-ui/cms/slider/hero-slider","3.laioutr-ui/cms/slider/hero-slider",{"title":1127,"path":1128,"stem":1129},"Logo Grid","/laioutr-ui/cms/slider/logo-grid","3.laioutr-ui/cms/slider/logo-grid",{"title":1131,"path":1132,"stem":1133},"Logo Slider","/laioutr-ui/cms/slider/logo-slider","3.laioutr-ui/cms/slider/logo-slider",{"title":1135,"path":1136,"stem":1137},"Swiper Arrows","/laioutr-ui/cms/slider/swiper-arrows","3.laioutr-ui/cms/slider/swiper-arrows",{"title":1139,"path":1140,"stem":1141},"Swiper Bullets","/laioutr-ui/cms/slider/swiper-bullets","3.laioutr-ui/cms/slider/swiper-bullets",{"title":1143,"path":1144,"stem":1145},"Swiper Chrome","/laioutr-ui/cms/slider/swiper-chrome","3.laioutr-ui/cms/slider/swiper-chrome",{"title":1147,"path":1148,"stem":1149},"Swiper Nav Bar","/laioutr-ui/cms/slider/swiper-nav-bar","3.laioutr-ui/cms/slider/swiper-nav-bar",{"title":1151,"path":1152,"stem":1153},"Swiper Numbers","/laioutr-ui/cms/slider/swiper-numbers","3.laioutr-ui/cms/slider/swiper-numbers",{"title":1155,"path":1156,"stem":1157},"Swiper Scrollbar","/laioutr-ui/cms/slider/swiper-scrollbar","3.laioutr-ui/cms/slider/swiper-scrollbar",{"title":1159,"path":1160,"stem":1161},"Thumbnails Slider","/laioutr-ui/cms/slider/thumbnails-slider","3.laioutr-ui/cms/slider/thumbnails-slider",{"title":1163,"path":1164,"stem":1165},"Withdrawal Form","/laioutr-ui/cms/withdrawal-form","3.laioutr-ui/cms/withdrawal-form",{"title":364,"path":1167,"stem":1168,"children":1169},"/laioutr-ui/location","3.laioutr-ui/location/0.index",[1170,1171,1175,1179,1183],{"title":364,"path":1167,"stem":1168},{"title":1172,"path":1173,"stem":1174},"Location Card","/laioutr-ui/location/location-card","3.laioutr-ui/location/location-card",{"title":1176,"path":1177,"stem":1178},"Location Detail","/laioutr-ui/location/location-detail","3.laioutr-ui/location/location-detail",{"title":1180,"path":1181,"stem":1182},"Location Finder","/laioutr-ui/location/location-finder","3.laioutr-ui/location/location-finder",{"title":1184,"path":1185,"stem":1186},"Table Opening Hours","/laioutr-ui/location/table-opening-hours","3.laioutr-ui/location/table-opening-hours",{"title":1188,"path":1189,"stem":1190,"children":1191},"Marketplace","/laioutr-ui/marketplace","3.laioutr-ui/marketplace/0.index",[1192],{"title":1188,"path":1189,"stem":1190},{"title":1194,"path":1195,"stem":1196,"children":1197},"Multichannel","/laioutr-ui/multichannel","3.laioutr-ui/multichannel/0.index",[1198],{"title":1194,"path":1195,"stem":1196},{"title":1200,"path":1201,"stem":1202,"children":1203},"Navigation & Headers","/laioutr-ui/navigation","3.laioutr-ui/navigation/0.index",[1204,1205,1209,1213,1217,1221,1225,1229,1233,1237,1241,1245,1249],{"title":1200,"path":1201,"stem":1202},{"title":1206,"path":1207,"stem":1208},"Breadcrumbs","/laioutr-ui/navigation/breadcrumbs","3.laioutr-ui/navigation/breadcrumbs",{"title":1210,"path":1211,"stem":1212},"Footer","/laioutr-ui/navigation/footer","3.laioutr-ui/navigation/footer",{"title":1214,"path":1215,"stem":1216},"Footer Menu","/laioutr-ui/navigation/footer-menu","3.laioutr-ui/navigation/footer-menu",{"title":1218,"path":1219,"stem":1220},"Header Basic","/laioutr-ui/navigation/header-basic","3.laioutr-ui/navigation/header-basic",{"title":1222,"path":1223,"stem":1224},"Header Shop","/laioutr-ui/navigation/header-shop","3.laioutr-ui/navigation/header-shop",{"title":1226,"path":1227,"stem":1228},"Mega Menu","/laioutr-ui/navigation/mega-menu","3.laioutr-ui/navigation/mega-menu",{"title":1230,"path":1231,"stem":1232},"Menu Side by Side","/laioutr-ui/navigation/menu-side-by-side","3.laioutr-ui/navigation/menu-side-by-side",{"title":1234,"path":1235,"stem":1236},"Mobile Menu (Basic)","/laioutr-ui/navigation/mobile-menu-basic","3.laioutr-ui/navigation/mobile-menu-basic",{"title":1238,"path":1239,"stem":1240},"Mobile Menu (Shop)","/laioutr-ui/navigation/mobile-menu-shop","3.laioutr-ui/navigation/mobile-menu-shop",{"title":1242,"path":1243,"stem":1244},"Page Not Found","/laioutr-ui/navigation/page-not-found","3.laioutr-ui/navigation/page-not-found",{"title":1246,"path":1247,"stem":1248},"Search Auto-Suggest","/laioutr-ui/navigation/search-auto-suggest","3.laioutr-ui/navigation/search-auto-suggest",{"title":1250,"path":1251,"stem":1252},"Top Bar","/laioutr-ui/navigation/top-bar","3.laioutr-ui/navigation/top-bar",{"title":1254,"path":1255,"stem":1256,"children":1257},"Publishers & Media","/laioutr-ui/publishers","3.laioutr-ui/publishers/0.index",[1258,1259],{"title":1254,"path":1255,"stem":1256},{"title":1260,"path":1261,"stem":1262},"Media Feed","/laioutr-ui/publishers/media-feed","3.laioutr-ui/publishers/media-feed",{"title":1264,"path":1265,"stem":1266,"children":1267},"SaaS","/laioutr-ui/saas","3.laioutr-ui/saas/0.index",[1268,1269,1273,1277],{"title":1264,"path":1265,"stem":1266},{"title":1270,"path":1271,"stem":1272},"Plan Card","/laioutr-ui/saas/plan-card","3.laioutr-ui/saas/plan-card",{"title":1274,"path":1275,"stem":1276},"Plan Card Slider","/laioutr-ui/saas/plan-card-slider","3.laioutr-ui/saas/plan-card-slider",{"title":1278,"path":1279,"stem":1280},"Plan Comparison Table","/laioutr-ui/saas/plan-comparison-table","3.laioutr-ui/saas/plan-comparison-table",{"title":1282,"path":1283,"stem":1284,"children":1285},"Shop","/laioutr-ui/shop","3.laioutr-ui/shop/0.index",[1286,1287,1315,1319,1323,1327,1331,1395,1399,1403,1407,1411,1415],{"title":1282,"path":1283,"stem":1284},{"title":432,"path":1288,"stem":1289,"children":1290,"page":55},"/laioutr-ui/shop/cart","3.laioutr-ui/shop/cart",[1291,1295,1299,1303,1307,1311],{"title":1292,"path":1293,"stem":1294},"Cart Coupon Code Accordion","/laioutr-ui/shop/cart/cart-coupon-code-accordion","3.laioutr-ui/shop/cart/cart-coupon-code-accordion",{"title":1296,"path":1297,"stem":1298},"Cart List Item","/laioutr-ui/shop/cart/cart-list-item","3.laioutr-ui/shop/cart/cart-list-item",{"title":1300,"path":1301,"stem":1302},"Cart Sheet","/laioutr-ui/shop/cart/cart-sheet","3.laioutr-ui/shop/cart/cart-sheet",{"title":1304,"path":1305,"stem":1306},"Cart Summary Box","/laioutr-ui/shop/cart/cart-summary-box","3.laioutr-ui/shop/cart/cart-summary-box",{"title":1308,"path":1309,"stem":1310},"Empty State Cart","/laioutr-ui/shop/cart/empty-state-cart","3.laioutr-ui/shop/cart/empty-state-cart",{"title":1312,"path":1313,"stem":1314},"Free Delivery Progress","/laioutr-ui/shop/cart/free-delivery-progress","3.laioutr-ui/shop/cart/free-delivery-progress",{"title":1316,"path":1317,"stem":1318},"Category Card Grid","/laioutr-ui/shop/category-card-grid","3.laioutr-ui/shop/category-card-grid",{"title":1320,"path":1321,"stem":1322},"Category Card Slider","/laioutr-ui/shop/category-card-slider","3.laioutr-ui/shop/category-card-slider",{"title":1324,"path":1325,"stem":1326},"Filter Bar","/laioutr-ui/shop/filter-bar","3.laioutr-ui/shop/filter-bar",{"title":1328,"path":1329,"stem":1330},"Filter Off Canvas","/laioutr-ui/shop/filter-off-canvas","3.laioutr-ui/shop/filter-off-canvas",{"title":1332,"path":1333,"stem":1334,"children":1335,"page":55},"Product Detail","/laioutr-ui/shop/product-detail","3.laioutr-ui/shop/product-detail",[1336,1340,1344,1348,1352,1356,1360,1363,1367,1371,1375,1379,1383,1387,1391],{"title":1337,"path":1338,"stem":1339},"Add to Cart","/laioutr-ui/shop/product-detail/add-to-cart","3.laioutr-ui/shop/product-detail/add-to-cart",{"title":1341,"path":1342,"stem":1343},"Benefits Box","/laioutr-ui/shop/product-detail/benefits-box","3.laioutr-ui/shop/product-detail/benefits-box",{"title":1345,"path":1346,"stem":1347},"Button Group","/laioutr-ui/shop/product-detail/button-group","3.laioutr-ui/shop/product-detail/button-group",{"title":1349,"path":1350,"stem":1351},"Coupon Box","/laioutr-ui/shop/product-detail/coupon-box","3.laioutr-ui/shop/product-detail/coupon-box",{"title":1353,"path":1354,"stem":1355},"Energy Label","/laioutr-ui/shop/product-detail/energy-label","3.laioutr-ui/shop/product-detail/energy-label",{"title":1357,"path":1358,"stem":1359},"Price Info","/laioutr-ui/shop/product-detail/price-info","3.laioutr-ui/shop/product-detail/price-info",{"title":1332,"path":1361,"stem":1362},"/laioutr-ui/shop/product-detail/product-detail","3.laioutr-ui/shop/product-detail/product-detail",{"title":1364,"path":1365,"stem":1366},"Product Image Gallery","/laioutr-ui/shop/product-detail/product-image-gallery","3.laioutr-ui/shop/product-detail/product-image-gallery",{"title":1368,"path":1369,"stem":1370},"Product Specifications Table","/laioutr-ui/shop/product-detail/product-specifications","3.laioutr-ui/shop/product-detail/product-specifications",{"title":1372,"path":1373,"stem":1374},"Product Title","/laioutr-ui/shop/product-detail/product-title","3.laioutr-ui/shop/product-detail/product-title",{"title":1376,"path":1377,"stem":1378},"Quantity Discount","/laioutr-ui/shop/product-detail/quantity-discount","3.laioutr-ui/shop/product-detail/quantity-discount",{"title":1380,"path":1381,"stem":1382},"Variant Off Canvas","/laioutr-ui/shop/product-detail/variant-off-canvas","3.laioutr-ui/shop/product-detail/variant-off-canvas",{"title":1384,"path":1385,"stem":1386},"Variant Selector Configurator","/laioutr-ui/shop/product-detail/variant-selector-configurator","3.laioutr-ui/shop/product-detail/variant-selector-configurator",{"title":1388,"path":1389,"stem":1390},"Variant Selector (Multiple)","/laioutr-ui/shop/product-detail/variant-selector-multiple","3.laioutr-ui/shop/product-detail/variant-selector-multiple",{"title":1392,"path":1393,"stem":1394},"Variant Selector Options","/laioutr-ui/shop/product-detail/variant-selector-options","3.laioutr-ui/shop/product-detail/variant-selector-options",{"title":1396,"path":1397,"stem":1398},"Product Listing Grid","/laioutr-ui/shop/product-listing-grid","3.laioutr-ui/shop/product-listing-grid",{"title":1400,"path":1401,"stem":1402},"Product Slider","/laioutr-ui/shop/product-slider","3.laioutr-ui/shop/product-slider",{"title":1404,"path":1405,"stem":1406},"Product Slider Showcase","/laioutr-ui/shop/product-slider-showcase","3.laioutr-ui/shop/product-slider-showcase",{"title":1408,"path":1409,"stem":1410},"Product Tile (Basic)","/laioutr-ui/shop/product-tile-basic","3.laioutr-ui/shop/product-tile-basic",{"title":1412,"path":1413,"stem":1414},"Search Result Hero","/laioutr-ui/shop/search-result-hero","3.laioutr-ui/shop/search-result-hero",{"title":1416,"path":1417,"stem":1418},"Sort Modes","/laioutr-ui/shop/sort-modes","3.laioutr-ui/shop/sort-modes",{"title":1420,"path":1421,"stem":1422,"children":1423},"UI Kit","/laioutr-ui/ui-kit","3.laioutr-ui/ui-kit/0.index",[1424,1425,1597,1621,1642,1659,1696,1809,1838],{"title":1420,"path":1421,"stem":1422},{"title":1426,"path":1427,"stem":1428,"children":1429,"page":55},"General","/laioutr-ui/ui-kit/general","3.laioutr-ui/ui-kit/01.general",[1430,1434,1438,1442,1446,1450,1454,1458,1462,1466,1470,1473,1477,1481,1485,1489,1493,1497,1501,1505,1509,1513,1517,1521,1525,1529,1533,1537,1541,1545,1549,1553,1557,1561,1565,1569,1573,1577,1581,1585,1589,1593],{"title":1431,"path":1432,"stem":1433},"Accordion","/laioutr-ui/ui-kit/general/accordion","3.laioutr-ui/ui-kit/01.general/Accordion",{"title":1435,"path":1436,"stem":1437},"Avatar","/laioutr-ui/ui-kit/general/avatar","3.laioutr-ui/ui-kit/01.general/Avatar",{"title":1439,"path":1440,"stem":1441},"Backdrop","/laioutr-ui/ui-kit/general/backdrop","3.laioutr-ui/ui-kit/01.general/Backdrop",{"title":1443,"path":1444,"stem":1445},"Dropdown Menu","/laioutr-ui/ui-kit/general/dropdownmenu","3.laioutr-ui/ui-kit/01.general/DropdownMenu",{"title":1447,"path":1448,"stem":1449},"Edge Glow","/laioutr-ui/ui-kit/general/edgeglow","3.laioutr-ui/ui-kit/01.general/EdgeGlow",{"title":1451,"path":1452,"stem":1453},"Empty State","/laioutr-ui/ui-kit/general/emptystate","3.laioutr-ui/ui-kit/01.general/EmptyState",{"title":1455,"path":1456,"stem":1457},"Icon","/laioutr-ui/ui-kit/general/icon","3.laioutr-ui/ui-kit/01.general/Icon",{"title":1459,"path":1460,"stem":1461},"Image Contrast Overlay","/laioutr-ui/ui-kit/general/imagecontrastoverlay","3.laioutr-ui/ui-kit/01.general/ImageContrastOverlay",{"title":1463,"path":1464,"stem":1465},"Lightbox","/laioutr-ui/ui-kit/general/lightbox","3.laioutr-ui/ui-kit/01.general/Lightbox",{"title":1467,"path":1468,"stem":1469},"Loading Spinner","/laioutr-ui/ui-kit/general/loadingspinner","3.laioutr-ui/ui-kit/01.general/LoadingSpinner",{"title":469,"path":1471,"stem":1472},"/laioutr-ui/ui-kit/general/media","3.laioutr-ui/ui-kit/01.general/Media",{"title":1474,"path":1475,"stem":1476},"Navigation Bullets","/laioutr-ui/ui-kit/general/navigationbullets","3.laioutr-ui/ui-kit/01.general/NavigationBullets",{"title":1478,"path":1479,"stem":1480},"Placeholder","/laioutr-ui/ui-kit/general/placeholder","3.laioutr-ui/ui-kit/01.general/Placeholder",{"title":1482,"path":1483,"stem":1484},"Progress Bar","/laioutr-ui/ui-kit/general/progressbar","3.laioutr-ui/ui-kit/01.general/ProgressBar",{"title":1486,"path":1487,"stem":1488},"Scrollbar","/laioutr-ui/ui-kit/general/scrollbar","3.laioutr-ui/ui-kit/01.general/Scrollbar",{"title":1490,"path":1491,"stem":1492},"Swatch","/laioutr-ui/ui-kit/general/swatch","3.laioutr-ui/ui-kit/01.general/Swatch",{"title":1494,"path":1495,"stem":1496},"SwiperScrollbar","/laioutr-ui/ui-kit/general/swiperscrollbar","3.laioutr-ui/ui-kit/01.general/SwiperScrollbar",{"title":1498,"path":1499,"stem":1500},"Thumbnail","/laioutr-ui/ui-kit/general/thumbnail","3.laioutr-ui/ui-kit/01.general/Thumbnail",{"title":1502,"path":1503,"stem":1504},"Tooltip","/laioutr-ui/ui-kit/general/tooltip","3.laioutr-ui/ui-kit/01.general/Tooltip",{"title":1506,"path":1507,"stem":1508},"Amount Pill","/laioutr-ui/ui-kit/general/amount-pill","3.laioutr-ui/ui-kit/01.general/amount-pill",{"title":1510,"path":1511,"stem":1512},"Animated Icon","/laioutr-ui/ui-kit/general/animated-icon","3.laioutr-ui/ui-kit/01.general/animated-icon",{"title":1514,"path":1515,"stem":1516},"Countdown","/laioutr-ui/ui-kit/general/countdown","3.laioutr-ui/ui-kit/01.general/countdown",{"title":1518,"path":1519,"stem":1520},"Countdown Boxed","/laioutr-ui/ui-kit/general/countdown-boxed","3.laioutr-ui/ui-kit/01.general/countdown-boxed",{"title":1522,"path":1523,"stem":1524},"Dark Mode Switch","/laioutr-ui/ui-kit/general/dark-mode-switch","3.laioutr-ui/ui-kit/01.general/dark-mode-switch",{"title":1526,"path":1527,"stem":1528},"Language Switcher","/laioutr-ui/ui-kit/general/language-switcher","3.laioutr-ui/ui-kit/01.general/language-switcher",{"title":1530,"path":1531,"stem":1532},"Media Preview","/laioutr-ui/ui-kit/general/media-preview","3.laioutr-ui/ui-kit/01.general/media-preview",{"title":1534,"path":1535,"stem":1536},"Media Stage","/laioutr-ui/ui-kit/general/media-stage","3.laioutr-ui/ui-kit/01.general/media-stage",{"title":1538,"path":1539,"stem":1540},"Nav Link Item","/laioutr-ui/ui-kit/general/nav-link-item","3.laioutr-ui/ui-kit/01.general/nav-link-item",{"title":1542,"path":1543,"stem":1544},"Nav Section Heading","/laioutr-ui/ui-kit/general/nav-section-heading","3.laioutr-ui/ui-kit/01.general/nav-section-heading",{"title":1546,"path":1547,"stem":1548},"OnSurface","/laioutr-ui/ui-kit/general/on-surface","3.laioutr-ui/ui-kit/01.general/on-surface",{"title":1550,"path":1551,"stem":1552},"Opening Status","/laioutr-ui/ui-kit/general/opening-status","3.laioutr-ui/ui-kit/01.general/opening-status",{"title":1554,"path":1555,"stem":1556},"Opening Status Detail","/laioutr-ui/ui-kit/general/opening-status-detail","3.laioutr-ui/ui-kit/01.general/opening-status-detail",{"title":1558,"path":1559,"stem":1560},"Opening Status Indicator","/laioutr-ui/ui-kit/general/opening-status-indicator","3.laioutr-ui/ui-kit/01.general/opening-status-indicator",{"title":1562,"path":1563,"stem":1564},"Rating Progress Bar Filter","/laioutr-ui/ui-kit/general/rating-progress-bar-filter","3.laioutr-ui/ui-kit/01.general/rating-progress-bar-filter",{"title":1566,"path":1567,"stem":1568},"Status Message","/laioutr-ui/ui-kit/general/status-message","3.laioutr-ui/ui-kit/01.general/status-message",{"title":1570,"path":1571,"stem":1572},"Stock Info Summary","/laioutr-ui/ui-kit/general/stock-info-summary","3.laioutr-ui/ui-kit/01.general/stock-info-summary",{"title":1574,"path":1575,"stem":1576},"Swatch Chip","/laioutr-ui/ui-kit/general/swatch-chip","3.laioutr-ui/ui-kit/01.general/swatch-chip",{"title":1578,"path":1579,"stem":1580},"Swatch Option","/laioutr-ui/ui-kit/general/swatch-option","3.laioutr-ui/ui-kit/01.general/swatch-option",{"title":1582,"path":1583,"stem":1584},"Swatch Summary","/laioutr-ui/ui-kit/general/swatch-summary","3.laioutr-ui/ui-kit/01.general/swatch-summary",{"title":1586,"path":1587,"stem":1588},"Table of Contents","/laioutr-ui/ui-kit/general/table-of-contents","3.laioutr-ui/ui-kit/01.general/table-of-contents",{"title":1590,"path":1591,"stem":1592},"Zoom Level (Segmented)","/laioutr-ui/ui-kit/general/zoom-level-segmented","3.laioutr-ui/ui-kit/01.general/zoom-level-segmented",{"title":1594,"path":1595,"stem":1596},"Zoom Level (Stepper)","/laioutr-ui/ui-kit/general/zoom-level-stepper","3.laioutr-ui/ui-kit/01.general/zoom-level-stepper",{"title":1598,"path":1599,"stem":1600,"children":1601,"page":55},"Typography","/laioutr-ui/ui-kit/typography","3.laioutr-ui/ui-kit/02.typography",[1602,1606,1609,1613,1617],{"title":1603,"path":1604,"stem":1605},"Icon List","/laioutr-ui/ui-kit/typography/iconlist","3.laioutr-ui/ui-kit/02.typography/IconList",{"title":465,"path":1607,"stem":1608},"/laioutr-ui/ui-kit/typography/link","3.laioutr-ui/ui-kit/02.typography/Link",{"title":1610,"path":1611,"stem":1612},"Rich Content","/laioutr-ui/ui-kit/typography/richcontent","3.laioutr-ui/ui-kit/02.typography/RichContent",{"title":1614,"path":1615,"stem":1616},"Text","/laioutr-ui/ui-kit/typography/text","3.laioutr-ui/ui-kit/02.typography/Text",{"title":1618,"path":1619,"stem":1620},"Text Group","/laioutr-ui/ui-kit/typography/text-group","3.laioutr-ui/ui-kit/02.typography/text-group",{"title":1622,"path":1623,"stem":1624,"children":1625,"page":55},"Layout","/laioutr-ui/ui-kit/layout","3.laioutr-ui/ui-kit/03.layout",[1626,1630,1634,1638],{"title":1627,"path":1628,"stem":1629},"Grid Fill","/laioutr-ui/ui-kit/layout/gridfill","3.laioutr-ui/ui-kit/03.layout/GridFill",{"title":1631,"path":1632,"stem":1633},"Grid Masonry","/laioutr-ui/ui-kit/layout/gridmasonry","3.laioutr-ui/ui-kit/03.layout/GridMasonry",{"title":1635,"path":1636,"stem":1637},"Scroll Area","/laioutr-ui/ui-kit/layout/scrollarea","3.laioutr-ui/ui-kit/03.layout/ScrollArea",{"title":1639,"path":1640,"stem":1641},"Separator","/laioutr-ui/ui-kit/layout/separator","3.laioutr-ui/ui-kit/03.layout/Separator",{"title":1643,"path":1644,"stem":1645,"children":1646,"page":55},"Content","/laioutr-ui/ui-kit/content","3.laioutr-ui/ui-kit/04.content",[1647,1651,1655],{"title":1648,"path":1649,"stem":1650},"Card","/laioutr-ui/ui-kit/content/card","3.laioutr-ui/ui-kit/04.content/Card",{"title":1652,"path":1653,"stem":1654},"Basic Table","/laioutr-ui/ui-kit/content/basic-table","3.laioutr-ui/ui-kit/04.content/basic-table",{"title":1656,"path":1657,"stem":1658},"Link Tile","/laioutr-ui/ui-kit/content/link-tile","3.laioutr-ui/ui-kit/04.content/link-tile",{"title":1660,"path":1661,"stem":1662,"children":1663,"page":55},"Surfaces","/laioutr-ui/ui-kit/surfaces","3.laioutr-ui/ui-kit/05.surfaces",[1664,1668,1672,1676,1680,1684,1688,1692],{"title":1665,"path":1666,"stem":1667},"Alert Dialog","/laioutr-ui/ui-kit/surfaces/alertdialog","3.laioutr-ui/ui-kit/05.surfaces/AlertDialog",{"title":1669,"path":1670,"stem":1671},"Popover","/laioutr-ui/ui-kit/surfaces/popover","3.laioutr-ui/ui-kit/05.surfaces/Popover",{"title":1673,"path":1674,"stem":1675},"Sheet","/laioutr-ui/ui-kit/surfaces/sheet","3.laioutr-ui/ui-kit/05.surfaces/Sheet",{"title":1677,"path":1678,"stem":1679},"Tabs","/laioutr-ui/ui-kit/surfaces/tabs","3.laioutr-ui/ui-kit/05.surfaces/Tabs",{"title":1681,"path":1682,"stem":1683},"Toast","/laioutr-ui/ui-kit/surfaces/toast","3.laioutr-ui/ui-kit/05.surfaces/Toast",{"title":1685,"path":1686,"stem":1687},"Toaster","/laioutr-ui/ui-kit/surfaces/toaster","3.laioutr-ui/ui-kit/05.surfaces/Toaster",{"title":1689,"path":1690,"stem":1691},"Context Menu","/laioutr-ui/ui-kit/surfaces/context-menu","3.laioutr-ui/ui-kit/05.surfaces/context-menu",{"title":1693,"path":1694,"stem":1695},"Navigation Menu","/laioutr-ui/ui-kit/surfaces/navigation-menu","3.laioutr-ui/ui-kit/05.surfaces/navigation-menu",{"title":1697,"path":1698,"stem":1699,"children":1700,"page":55},"Form","/laioutr-ui/ui-kit/form","3.laioutr-ui/ui-kit/06.form",[1701,1705,1709,1713,1717,1721,1725,1729,1733,1737,1741,1745,1749,1753,1757,1761,1765,1769,1773,1777,1781,1785,1789,1793,1797,1801,1805],{"title":1702,"path":1703,"stem":1704},"Button","/laioutr-ui/ui-kit/form/button","3.laioutr-ui/ui-kit/06.form/Button",{"title":1706,"path":1707,"stem":1708},"Checkbox","/laioutr-ui/ui-kit/form/checkbox","3.laioutr-ui/ui-kit/06.form/Checkbox",{"title":1710,"path":1711,"stem":1712},"Field","/laioutr-ui/ui-kit/form/field","3.laioutr-ui/ui-kit/06.form/Field",{"title":1714,"path":1715,"stem":1716},"Input","/laioutr-ui/ui-kit/form/input","3.laioutr-ui/ui-kit/06.form/Input",{"title":1718,"path":1719,"stem":1720},"Label","/laioutr-ui/ui-kit/form/label","3.laioutr-ui/ui-kit/06.form/Label",{"title":1722,"path":1723,"stem":1724},"Load More","/laioutr-ui/ui-kit/form/loadmore","3.laioutr-ui/ui-kit/06.form/LoadMore",{"title":1726,"path":1727,"stem":1728},"Pagination","/laioutr-ui/ui-kit/form/pagination","3.laioutr-ui/ui-kit/06.form/Pagination",{"title":1730,"path":1731,"stem":1732},"Quantity Picker","/laioutr-ui/ui-kit/form/quantitypicker","3.laioutr-ui/ui-kit/06.form/QuantityPicker",{"title":1734,"path":1735,"stem":1736},"Select","/laioutr-ui/ui-kit/form/select","3.laioutr-ui/ui-kit/06.form/Select",{"title":1738,"path":1739,"stem":1740},"Switch","/laioutr-ui/ui-kit/form/switch","3.laioutr-ui/ui-kit/06.form/Switch",{"title":1742,"path":1743,"stem":1744},"Animated Button","/laioutr-ui/ui-kit/form/animated-button","3.laioutr-ui/ui-kit/06.form/animated-button",{"title":1746,"path":1747,"stem":1748},"Highlight Toggle","/laioutr-ui/ui-kit/form/highlight-toggle","3.laioutr-ui/ui-kit/06.form/highlight-toggle",{"title":1750,"path":1751,"stem":1752},"Icon Button","/laioutr-ui/ui-kit/form/icon-button","3.laioutr-ui/ui-kit/06.form/icon-button",{"title":1754,"path":1755,"stem":1756},"Input Autocomplete","/laioutr-ui/ui-kit/form/input-autocomplete","3.laioutr-ui/ui-kit/06.form/input-autocomplete",{"title":1758,"path":1759,"stem":1760},"Input Checkbox","/laioutr-ui/ui-kit/form/input-checkbox","3.laioutr-ui/ui-kit/06.form/input-checkbox",{"title":1762,"path":1763,"stem":1764},"Input Combobox","/laioutr-ui/ui-kit/form/input-combobox","3.laioutr-ui/ui-kit/06.form/input-combobox",{"title":1766,"path":1767,"stem":1768},"Input Group","/laioutr-ui/ui-kit/form/input-group","3.laioutr-ui/ui-kit/06.form/input-group",{"title":1770,"path":1771,"stem":1772},"Input Password","/laioutr-ui/ui-kit/form/input-password","3.laioutr-ui/ui-kit/06.form/input-password",{"title":1774,"path":1775,"stem":1776},"Input Pin","/laioutr-ui/ui-kit/form/input-pin","3.laioutr-ui/ui-kit/06.form/input-pin",{"title":1778,"path":1779,"stem":1780},"Input Radio","/laioutr-ui/ui-kit/form/input-radio","3.laioutr-ui/ui-kit/06.form/input-radio",{"title":1782,"path":1783,"stem":1784},"Input Rating","/laioutr-ui/ui-kit/form/input-rating","3.laioutr-ui/ui-kit/06.form/input-rating",{"title":1786,"path":1787,"stem":1788},"Input Search","/laioutr-ui/ui-kit/form/input-search","3.laioutr-ui/ui-kit/06.form/input-search",{"title":1790,"path":1791,"stem":1792},"Input Slider","/laioutr-ui/ui-kit/form/input-slider","3.laioutr-ui/ui-kit/06.form/input-slider",{"title":1794,"path":1795,"stem":1796},"Listbox","/laioutr-ui/ui-kit/form/listbox","3.laioutr-ui/ui-kit/06.form/listbox",{"title":1798,"path":1799,"stem":1800},"Option Tile (Image)","/laioutr-ui/ui-kit/form/option-tile-image","3.laioutr-ui/ui-kit/06.form/option-tile-image",{"title":1802,"path":1803,"stem":1804},"Option Tile (Text)","/laioutr-ui/ui-kit/form/option-tile-text","3.laioutr-ui/ui-kit/06.form/option-tile-text",{"title":1806,"path":1807,"stem":1808},"Variant Selection Card","/laioutr-ui/ui-kit/form/variant-selection-card","3.laioutr-ui/ui-kit/06.form/variant-selection-card",{"title":1810,"path":1811,"stem":1812,"children":1813,"page":55},"Indicators","/laioutr-ui/ui-kit/indicators","3.laioutr-ui/ui-kit/07.indicators",[1814,1818,1822,1826,1830,1834],{"title":1815,"path":1816,"stem":1817},"Badge","/laioutr-ui/ui-kit/indicators/badge","3.laioutr-ui/ui-kit/07.indicators/Badge",{"title":1819,"path":1820,"stem":1821},"Caption Flag","/laioutr-ui/ui-kit/indicators/captionflag","3.laioutr-ui/ui-kit/07.indicators/CaptionFlag",{"title":1823,"path":1824,"stem":1825},"Product Tile Flag","/laioutr-ui/ui-kit/indicators/producttileflag","3.laioutr-ui/ui-kit/07.indicators/ProductTileFlag",{"title":1827,"path":1828,"stem":1829},"Rating Summary","/laioutr-ui/ui-kit/indicators/ratingsummary","3.laioutr-ui/ui-kit/07.indicators/RatingSummary",{"title":1831,"path":1832,"stem":1833},"Stars Rating","/laioutr-ui/ui-kit/indicators/starsrating","3.laioutr-ui/ui-kit/07.indicators/StarsRating",{"title":1835,"path":1836,"stem":1837},"Badge Promotion","/laioutr-ui/ui-kit/indicators/badge-promotion","3.laioutr-ui/ui-kit/07.indicators/badge-promotion",{"title":1839,"path":1840,"stem":1841,"children":1842,"page":55},"Utility Components","/laioutr-ui/ui-kit/utility-components","3.laioutr-ui/ui-kit/08.utility-components",[1843,1847],{"title":1844,"path":1845,"stem":1846},"Highlighted Text","/laioutr-ui/ui-kit/utility-components/highlighted-text","3.laioutr-ui/ui-kit/08.utility-components/highlighted-text",{"title":1848,"path":1849,"stem":1850},"Sizer","/laioutr-ui/ui-kit/utility-components/sizer","3.laioutr-ui/ui-kit/08.utility-components/sizer",{"title":1852,"path":1853,"stem":1854,"children":1855},"Hosting","/hosting","4.hosting/0.index",[1856,1857,1879,1909,1927,1957],{"title":1852,"path":1853,"stem":1854},{"title":1858,"path":1859,"stem":1860,"children":1861},"Laioutr Cloud","/hosting/laioutr-cloud","4.hosting/0.laioutr-cloud/0.index",[1862,1863,1867,1871,1875],{"title":1858,"path":1859,"stem":1860},{"title":1864,"path":1865,"stem":1866},"Limits","/hosting/laioutr-cloud/limits","4.hosting/0.laioutr-cloud/1.limits",{"title":1868,"path":1869,"stem":1870},"Fair use","/hosting/laioutr-cloud/fair-use","4.hosting/0.laioutr-cloud/2.fair-use",{"title":1872,"path":1873,"stem":1874},"Logs","/hosting/laioutr-cloud/logs","4.hosting/0.laioutr-cloud/3.logs",{"title":1876,"path":1877,"stem":1878},"Password protection","/hosting/laioutr-cloud/password-protection","4.hosting/0.laioutr-cloud/4.password-protection",{"title":1880,"path":1881,"stem":1882,"children":1883},"Hyperscaler","/hosting/hyperscaler","4.hosting/1.hyperscaler/0.index",[1884,1885,1889,1893,1897,1901,1905],{"title":1880,"path":1881,"stem":1882},{"title":1886,"path":1887,"stem":1888},"Akamai Adapter","/hosting/hyperscaler/akamai-adapter","4.hosting/1.hyperscaler/akamai-adapter",{"title":1890,"path":1891,"stem":1892},"AWS Adapter","/hosting/hyperscaler/aws-adapter","4.hosting/1.hyperscaler/aws-adapter",{"title":1894,"path":1895,"stem":1896},"Azure Adapter","/hosting/hyperscaler/azure-adapter","4.hosting/1.hyperscaler/azure-adapter",{"title":1898,"path":1899,"stem":1900},"Google Adapter","/hosting/hyperscaler/google-adapter","4.hosting/1.hyperscaler/google-adapter",{"title":1902,"path":1903,"stem":1904},"Netlify Adapter","/hosting/hyperscaler/netlify-adapter","4.hosting/1.hyperscaler/netlify-adapter",{"title":1906,"path":1907,"stem":1908},"Vercel Adapter","/hosting/hyperscaler/vercel-adapter","4.hosting/1.hyperscaler/vercel-adapter",{"title":1910,"path":1911,"stem":1912,"children":1913},"Native Hosting","/hosting/native-hosting-providers","4.hosting/2.native-hosting-providers/0.index",[1914,1915,1919,1923],{"title":1910,"path":1911,"stem":1912},{"title":1916,"path":1917,"stem":1918},"maxcluster","/hosting/native-hosting-providers/maxcluster","4.hosting/2.native-hosting-providers/maxcluster",{"title":1920,"path":1921,"stem":1922},"profihost","/hosting/native-hosting-providers/profihost","4.hosting/2.native-hosting-providers/profihost",{"title":1924,"path":1925,"stem":1926},"ScaleCommerce","/hosting/native-hosting-providers/scale-commerce","4.hosting/2.native-hosting-providers/scale-commerce",{"title":1928,"path":1929,"stem":1930,"children":1931},"Bring Your Own Server (BYOS)","/hosting/bring-your-own-server-byos","4.hosting/3.bring-your-own-server-byos/0.index",[1932,1933,1937,1941,1945,1949,1953],{"title":1928,"path":1929,"stem":1930},{"title":1934,"path":1935,"stem":1936},"BYOS Agent","/hosting/bring-your-own-server-byos/byos-agent","4.hosting/3.bring-your-own-server-byos/byos-agent",{"title":1938,"path":1939,"stem":1940},"Changelog","/hosting/bring-your-own-server-byos/changelog","4.hosting/3.bring-your-own-server-byos/changelog",{"title":1942,"path":1943,"stem":1944},"DevOps Components","/hosting/bring-your-own-server-byos/devops","4.hosting/3.bring-your-own-server-byos/devops",{"title":1946,"path":1947,"stem":1948},"Infrastructure Requirements","/hosting/bring-your-own-server-byos/infrastructure","4.hosting/3.bring-your-own-server-byos/infrastructure",{"title":1950,"path":1951,"stem":1952},"Software Requirements","/hosting/bring-your-own-server-byos/software","4.hosting/3.bring-your-own-server-byos/software",{"title":1954,"path":1955,"stem":1956},"Webhook Configuration","/hosting/bring-your-own-server-byos/webhook-config","4.hosting/3.bring-your-own-server-byos/webhook-config",{"title":1958,"path":1959,"stem":1960,"children":1961},"CDN","/hosting/cdn","4.hosting/4.cdn/0.index",[1962,1963,1967],{"title":1958,"path":1959,"stem":1960},{"title":1964,"path":1965,"stem":1966},"Video CDN","/hosting/cdn/video-cdn","4.hosting/4.cdn/1.video-cdn",{"title":1968,"path":1969,"stem":1970},"Files","/hosting/cdn/files","4.hosting/4.cdn/2.files",{"title":605,"path":1972,"stem":1973,"children":1974},"/checkout","5.Checkout/0.index",[1975],{"title":605,"path":1972,"stem":1973},{"title":617,"path":1977,"stem":1978,"children":1979},"/larry-ai","6.Larry-AI/0.index",[1980],{"title":617,"path":1977,"stem":1978},{"title":944,"path":1982,"stem":1983,"children":1984},"/figma-kit","7.Figma Kit/0.index",[1985,1986,2002],{"title":944,"path":1982,"stem":1983},{"title":125,"path":1987,"stem":1988,"children":1989,"page":55},"/figma-kit/introduction","7.Figma Kit/1.Introduction",[1990,1994,1998],{"title":1991,"path":1992,"stem":1993},"How to Start","/figma-kit/introduction/howtostart","7.Figma Kit/1.Introduction/0.howtostart",{"title":1995,"path":1996,"stem":1997},"Figma Variables","/figma-kit/introduction/figma-variables","7.Figma Kit/1.Introduction/figma-variables",{"title":1999,"path":2000,"stem":2001},"Library Connections","/figma-kit/introduction/library-connections","7.Figma Kit/1.Introduction/library-connections",{"title":2003,"path":2004,"stem":2005,"children":2006,"page":55},"Kits","/figma-kit/kits","7.Figma Kit/Kits",[2007,2010,2013,2016,2020,2023,2027,2031,2034,2037],{"title":959,"path":2008,"stem":2009},"/figma-kit/kits/b2b","7.Figma Kit/Kits/b2b",{"title":965,"path":2011,"stem":2012},"/figma-kit/kits/booking","7.Figma Kit/Kits/booking",{"title":971,"path":2014,"stem":2015},"/figma-kit/kits/cms","7.Figma Kit/Kits/cms",{"title":2017,"path":2018,"stem":2019},"Inpage Navigation","/figma-kit/kits/inpage-navigation","7.Figma Kit/Kits/inpage-navigation",{"title":1188,"path":2021,"stem":2022},"/figma-kit/kits/marketplace","7.Figma Kit/Kits/marketplace",{"title":2024,"path":2025,"stem":2026},"Retail & Multichannel","/figma-kit/kits/multichannel","7.Figma Kit/Kits/multichannel",{"title":2028,"path":2029,"stem":2030},"Navigation","/figma-kit/kits/navigation","7.Figma Kit/Kits/navigation",{"title":1264,"path":2032,"stem":2033},"/figma-kit/kits/saas","7.Figma Kit/Kits/saas",{"title":1282,"path":2035,"stem":2036},"/figma-kit/kits/shop","7.Figma Kit/Kits/shop",{"title":1420,"path":2038,"stem":2039},"/figma-kit/kits/ui-kit","7.Figma Kit/Kits/ui-kit",{"title":599,"path":2041,"stem":2042,"children":2043},"/cockpit","8.Cockpit/0.index",[2044,2045,2087,2104,2121],{"title":599,"path":2041,"stem":2042},{"title":158,"path":2046,"stem":2047,"children":2048,"page":55},"/cockpit/features","8.Cockpit/1.Features",[2049,2052,2056,2060,2064,2068,2072,2076,2079,2083],{"title":705,"path":2050,"stem":2051},"/cockpit/features/apps","8.Cockpit/1.Features/apps",{"title":2053,"path":2054,"stem":2055},"Configuration","/cockpit/features/configuration","8.Cockpit/1.Features/configuration",{"title":2057,"path":2058,"stem":2059},"Content (Collections)","/cockpit/features/content-collections","8.Cockpit/1.Features/content-collections",{"title":2061,"path":2062,"stem":2063},"Deployments","/cockpit/features/deployments","8.Cockpit/1.Features/deployments",{"title":2065,"path":2066,"stem":2067},"Distributr","/cockpit/features/distributr","8.Cockpit/1.Features/distributr",{"title":2069,"path":2070,"stem":2071},"Environments","/cockpit/features/environments","8.Cockpit/1.Features/environments",{"title":2073,"path":2074,"stem":2075},"Markets","/cockpit/features/markets","8.Cockpit/1.Features/markets",{"title":208,"path":2077,"stem":2078},"/cockpit/features/redirects","8.Cockpit/1.Features/redirects",{"title":2080,"path":2081,"stem":2082},"Studio","/cockpit/features/studio","8.Cockpit/1.Features/studio",{"title":2084,"path":2085,"stem":2086},"Translations","/cockpit/features/translations","8.Cockpit/1.Features/translations",{"title":2088,"path":2089,"stem":2090,"children":2091,"page":55},"Project Settings","/cockpit/project-settings","8.Cockpit/2.Project-Settings",[2092,2096,2100],{"title":2093,"path":2094,"stem":2095},"Delete a project","/cockpit/project-settings/delete-project","8.Cockpit/2.Project-Settings/delete-project",{"title":2097,"path":2098,"stem":2099},"NPM","/cockpit/project-settings/npm","8.Cockpit/2.Project-Settings/npm",{"title":2101,"path":2102,"stem":2103},"Project secret key","/cockpit/project-settings/project-secret-key","8.Cockpit/2.Project-Settings/project-secret-key",{"title":2105,"path":2106,"stem":2107,"children":2108,"page":55},"Account Settings","/cockpit/account-settings","8.Cockpit/3.Account-Settings",[2109,2113,2117],{"title":2110,"path":2111,"stem":2112},"Notifications","/cockpit/account-settings/notifications","8.Cockpit/3.Account-Settings/notifications",{"title":2114,"path":2115,"stem":2116},"Preferences","/cockpit/account-settings/preferences","8.Cockpit/3.Account-Settings/preferences",{"title":2118,"path":2119,"stem":2120},"Security","/cockpit/account-settings/security","8.Cockpit/3.Account-Settings/security",{"title":2122,"path":2123,"stem":2124,"children":2125,"page":55},"Organisation Settings","/cockpit/organisation-settings","8.Cockpit/4.Organisation-Settings",[2126,2130,2134,2138,2142,2146],{"title":2127,"path":2128,"stem":2129},"API keys","/cockpit/organisation-settings/api-keys","8.Cockpit/4.Organisation-Settings/api-keys",{"title":2131,"path":2132,"stem":2133},"Billing","/cockpit/organisation-settings/billing","8.Cockpit/4.Organisation-Settings/billing",{"title":2135,"path":2136,"stem":2137},"General settings","/cockpit/organisation-settings/general-settings","8.Cockpit/4.Organisation-Settings/general-settings",{"title":2139,"path":2140,"stem":2141},"Members","/cockpit/organisation-settings/members","8.Cockpit/4.Organisation-Settings/members",{"title":2143,"path":2144,"stem":2145},"Projects","/cockpit/organisation-settings/projects","8.Cockpit/4.Organisation-Settings/projects",{"title":2147,"path":2148,"stem":2149},"Roles","/cockpit/organisation-settings/roles","8.Cockpit/4.Organisation-Settings/roles",{"title":2151,"path":2152,"stem":2153,"children":2154},"Data API","/data-api","9.Data-API/0.index",[2155,2156,2176,2186],{"title":2151,"path":2152,"stem":2153},{"title":2157,"path":2158,"stem":2159,"children":2160,"page":55},"Api Info","/data-api/api-info","9.Data-API/1.API-Info",[2161,2165,2169,2172],{"title":2162,"path":2163,"stem":2164},"API Basics","/data-api/api-info/api-basics","9.Data-API/1.API-Info/1.api-basics",{"title":2166,"path":2167,"stem":2168},"Authentication","/data-api/api-info/authentication","9.Data-API/1.API-Info/2.authentication",{"title":505,"path":2170,"stem":2171},"/data-api/api-info/errors","9.Data-API/1.API-Info/3.errors",{"title":2173,"path":2174,"stem":2175},"HTTP details","/data-api/api-info/http-details","9.Data-API/1.API-Info/4.http-details",{"title":2177,"path":2178,"stem":2179,"children":2180},"Management API","/data-api/management-api","9.Data-API/2.Management-API/0.index",[2181,2182],{"title":2177,"path":2178,"stem":2179},{"title":2183,"path":2184,"stem":2185},"Assets","/data-api/management-api/assets","9.Data-API/2.Management-API/1.assets",{"title":2187,"path":2188,"stem":2189,"children":2190},"Delivery API","/data-api/delivery-api","9.Data-API/3.Delivery-API/0.index",[2191],{"title":2187,"path":2188,"stem":2189},{"id":2193,"title":833,"aliases":2194,"body":2195,"changelogKeys":2194,"description":2855,"extension":2856,"links":2194,"meta":2857,"navigation":2858,"path":834,"playground":2194,"seo":2859,"sitemap":2860,"stem":835,"__hash__":2863},"docs/2.apps/app-docs/cap.md",null,{"type":2196,"value":2197,"toc":2837},"minimark",[2198,2203,2226,2234,2247,2251,2256,2259,2301,2308,2312,2319,2413,2528,2534,2537,2544,2551,2555,2558,2585,2588,2602,2634,2638,2647,2651,2658,2666,2676,2680,2697,2700,2711,2715,2718,2722,2743,2747,2812,2815,2833],[2199,2200,2202],"h2",{"id":2201},"overview","Overview",[2204,2205,2206,2207,2211,2212,2218,2219,2222,2223,2225],"p",{},"The ",[2208,2209,2210],"code",{},"@laioutr/app-cap"," package makes ",[2213,2214,833],"a",{"href":2215,"rel":2216},"https://trycap.dev",[2217],"nofollow",", an open-source proof-of-work check with browser instrumentation, the ",[2213,2220,2221],{"href":760},"bot-protection provider"," of a Laioutr storefront. Every action the project lists must carry a proof, and the storefront's own server checks it before the action runs. For how bot protection works in a storefront, read ",[2213,2224,164],{"href":165},".",[2204,2227,2228,2229,2233],{},"The app needs ",[2230,2231,2232],"strong",{},"no vendor account",". Cap runs inside the storefront's own server, and the browser contacts no third party. The app runs on any host that gives the project Redis: Laioutr Cloud, Vercel with a Redis URL, or your own server.",[2235,2236,2239,2242,2243,2246],"callout",{"color":2237,"icon":2238},"warning","i-lucide-triangle-alert",[2230,2240,2241],{},"A visitor whose browser cannot finish a proof cannot run a protected action",", even with ",[2208,2244,2245],{},"whenUnavailable: \"open\"",". This includes a browser that the automation check takes for an automated one, a browser without WebAssembly or web workers, and a Content Security Policy that blocks the solve. Cap shows no challenge the visitor could pass instead.",[2199,2248,2250],{"id":2249},"configuration-requirements","Configuration requirements",[2252,2253,2255],"h3",{"id":2254},"redis","Redis",[2204,2257,2258],{},"Each proof is good for one action, so the server must remember every proof it accepted, across all instances. The app keeps that record in the Redis connection of orchestr's cache.",[2260,2261,2262,2268,2278],"ul",{},[2263,2264,2265,2267],"li",{},[2230,2266,1858],{}," has Redis. Nothing to do.",[2263,2269,2270,2273,2274,2277],{},[2230,2271,2272],{},"Vercel:"," enter a Redis URL in the environment's ",[2213,2275,2276],{"href":1907},"hosting settings",". Without a URL, the project uses Vercel's runtime cache, the app finds no Redis, and every protected action is rejected.",[2263,2279,2280,2283,2284,2286,2287,2290,2291,2294,2295,2297,2298,2300],{},[2230,2281,2282],{},"Your own server:"," mount a driver named ",[2208,2285,2254],{}," with a ",[2208,2288,2289],{},"url"," option at Nitro's ",[2208,2292,2293],{},"cache"," storage, for example unstorage's ",[2208,2296,2254],{}," driver. A driver configured with a host and a port instead of a ",[2208,2299,2289],{}," is not found.",[2204,2302,2303,2304,2307],{},"Without Redis, a built server rejects every protected action and logs why. The same happens when Redis refuses the app's command, for example with ",[2208,2305,2306],{},"NOPERM",". The log then names the reply code. On the dev server, the app keeps the record in memory and warns once.",[2252,2309,2311],{"id":2310},"install-and-configure-the-app","Install and configure the app",[2204,2313,2314,2315,2318],{},"Add the app to the project's ",[2208,2316,2317],{},"laioutrrc.json"," and list the actions to protect. No option is required:",[2320,2321,2326],"pre",{"className":2322,"code":2323,"filename":2317,"language":2324,"meta":2325,"style":2325},"language-jsonc shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"apps\": [\n    {\n      \"name\": \"@laioutr/app-cap\",\n      \"config\": { \"blockAutomatedBrowsers\": true, \"difficulty\": 1000000 }\n    }\n  ],\n  \"config\": {\n    \"botProtection\": {\n      \"actions\": [\"newsletter/subscribe\", \"ecommerce/auth/login\"],\n      \"whenUnavailable\": \"open\"\n    }\n  }\n}\n","jsonc","",[2208,2327,2328,2336,2342,2348,2354,2360,2366,2372,2378,2384,2390,2396,2401,2407],{"__ignoreMap":2325},[2329,2330,2333],"span",{"class":2331,"line":2332},"line",1,[2329,2334,2335],{},"{\n",[2329,2337,2339],{"class":2331,"line":2338},2,[2329,2340,2341],{},"  \"apps\": [\n",[2329,2343,2345],{"class":2331,"line":2344},3,[2329,2346,2347],{},"    {\n",[2329,2349,2351],{"class":2331,"line":2350},4,[2329,2352,2353],{},"      \"name\": \"@laioutr/app-cap\",\n",[2329,2355,2357],{"class":2331,"line":2356},5,[2329,2358,2359],{},"      \"config\": { \"blockAutomatedBrowsers\": true, \"difficulty\": 1000000 }\n",[2329,2361,2363],{"class":2331,"line":2362},6,[2329,2364,2365],{},"    }\n",[2329,2367,2369],{"class":2331,"line":2368},7,[2329,2370,2371],{},"  ],\n",[2329,2373,2375],{"class":2331,"line":2374},8,[2329,2376,2377],{},"  \"config\": {\n",[2329,2379,2381],{"class":2331,"line":2380},9,[2329,2382,2383],{},"    \"botProtection\": {\n",[2329,2385,2387],{"class":2331,"line":2386},10,[2329,2388,2389],{},"      \"actions\": [\"newsletter/subscribe\", \"ecommerce/auth/login\"],\n",[2329,2391,2393],{"class":2331,"line":2392},11,[2329,2394,2395],{},"      \"whenUnavailable\": \"open\"\n",[2329,2397,2399],{"class":2331,"line":2398},12,[2329,2400,2365],{},[2329,2402,2404],{"class":2331,"line":2403},13,[2329,2405,2406],{},"  }\n",[2329,2408,2410],{"class":2331,"line":2409},14,[2329,2411,2412],{},"}\n",[2414,2415,2416,2432],"table",{},[2417,2418,2419],"thead",{},[2420,2421,2422,2426,2429],"tr",{},[2423,2424,2425],"th",{},"Option",[2423,2427,2428],{},"Type",[2423,2430,2431],{},"Description",[2433,2434,2435,2456,2484,2501],"tbody",{},[2420,2436,2437,2445,2450],{},[2438,2439,2440],"td",{},[2230,2441,2442],{},[2208,2443,2444],{},"blockAutomatedBrowsers",[2438,2446,2447],{},[2208,2448,2449],{},"boolean",[2438,2451,2452,2453,2225],{},"Rejects a browser that Cap's instrumentation identifies as automated, such as headless Chromium. Default: ",[2208,2454,2455],{},"true",[2420,2457,2458,2465,2470],{},[2438,2459,2460],{},[2230,2461,2462],{},[2208,2463,2464],{},"difficulty",[2438,2466,2467],{},[2208,2468,2469],{},"number",[2438,2471,2472,2473,2476,2477,2480,2481,2225],{},"The expected number of hashes for one proof. A higher value costs a bot more time, and every visitor too. Default: ",[2208,2474,2475],{},"1000000",". Allowed range: ",[2208,2478,2479],{},"50000"," to ",[2208,2482,2483],{},"5000000",[2420,2485,2486,2493,2498],{},[2438,2487,2488],{},[2230,2489,2490],{},[2208,2491,2492],{},"actions",[2438,2494,2495],{},[2208,2496,2497],{},"string[]",[2438,2499,2500],{},"The actions to protect. An action that is not listed is never checked.",[2420,2502,2503,2510,2515],{},[2438,2504,2505],{},[2230,2506,2507],{},[2208,2508,2509],{},"whenUnavailable",[2438,2511,2512],{},[2208,2513,2514],{},"'open' | 'closed'",[2438,2516,2517,2518,2521,2522,2525,2526,2225],{},"What happens when Redis cannot be reached or does not answer within 1 second. ",[2208,2519,2520],{},"open"," runs the action and logs a warning; ",[2208,2523,2524],{},"closed"," answers 503. A missing, wrong or reused proof is rejected under either value. Default: ",[2208,2527,2520],{},[2204,2529,2530,2531,2533],{},"A value of the wrong type falls back to the default, and a ",[2208,2532,2464],{}," outside the range is clamped. The build logs a warning that names the option and the value it uses.",[2252,2535,2101],{"id":2536},"project-secret-key",[2204,2538,2539,2540,2543],{},"The project secret key signs the proofs. Cockpit writes a stable key into the ",[2208,2541,2542],{},"laioutrrc",", so a new deployment keeps the issued proofs valid. Without a key, a built server rejects every protected action.",[2204,2545,2546,2547,2550],{},"All environments of a project share one secret key. The app therefore also signs with the two options, so a proof from an environment with other options does not pass. A test environment with ",[2208,2548,2549],{},"blockAutomatedBrowsers: false"," cannot produce proofs for production. Between two environments with the same options, a proof can pass once in either of them.",[2199,2552,2554],{"id":2553},"runtime-behaviour","Runtime behaviour",[2204,2556,2557],{},"In the browser, nothing loads on page load. On the first protected action, the app loads Cap's widget and its WebAssembly files from the storefront's own origin. The browser then solves a proof of work in a web worker, runs Cap's instrumentation, and exchanges the solution at the storefront's server for a proof that is valid for 10 minutes.",[2260,2559,2560,2566,2572,2582],{},[2263,2561,2562,2565],{},[2230,2563,2564],{},"The visitor sees nothing."," The widget stays hidden, and there is no checkbox and no puzzle.",[2263,2567,2568,2571],{},[2230,2569,2570],{},"Only the first protected action waits for a solve."," At the default difficulty, a solve took about 330 ms (median) on an Apple M4 Pro. Phones are not measured. After each use, the app solves the next proof in the background, so a later action does not wait.",[2263,2573,2574,2577,2578,2581],{},[2230,2575,2576],{},"The solve is part of the action."," The app produces the proof inside the action request, so the loading state of ",[2208,2579,2580],{},"useMutationAction"," covers the solve too.",[2263,2583,2584],{},"A second action at the same moment waits for the next proof.",[2204,2586,2587],{},"On the server, the app checks each proof:",[2260,2589,2590,2593,2596],{},[2263,2591,2592],{},"A valid proof that was not used before runs the action. Each proof is good for one action.",[2263,2594,2595],{},"Any other request is rejected with 403. That includes a request without a proof, a proof used twice, an expired proof, and a proof from an environment with other options.",[2263,2597,2598,2599,2601],{},"When Redis cannot be reached or does not answer within 1 second, the project's ",[2208,2600,2509],{}," decides.",[2204,2603,2604,2605,2609,2610,2613,2614,2617,2618,2621,2622,2625,2626,2629,2630,2633],{},"A rejected request reaches the storefront as an error. ",[2213,2606,2608],{"href":2607},"/frontend/features/bot-protection#show-a-message-when-a-request-is-rejected","Show a message"," with ",[2208,2611,2612],{},"botProtectionErrorOf(error)"," from ",[2208,2615,2616],{},"#frontend/bot-protection",", which returns ",[2208,2619,2620],{},"'rejected'"," or ",[2208,2623,2624],{},"'unavailable'",". A solve that fails in the browser stops the action before a request goes out. ",[2208,2627,2628],{},"botProtectionErrorOf"," returns ",[2208,2631,2632],{},"undefined"," for that error, so the visitor sees your generic error message.",[2252,2635,2637],{"id":2636},"while-redis-is-down","While Redis is down",[2204,2639,2640,2641,2643,2644,2646],{},"Under ",[2208,2642,2245],{},", replay protection stops while Redis is down: a proof issued during the outage passes as often as it is used. When Redis answers again, the app records the solution behind each such proof, so each solution passes at most once more. Under ",[2208,2645,2524],{},", protected actions get 503 during the outage.",[2199,2648,2650],{"id":2649},"content-security-policy","Content Security Policy",[2204,2652,2653,2654,2657],{},"With a Content Security Policy, allow these sources in addition to ",[2208,2655,2656],{},"'self'",", or every protected action fails:",[2320,2659,2664],{"className":2660,"code":2662,"language":2663},[2661],"language-text","script-src 'wasm-unsafe-eval' 'unsafe-eval';\nworker-src blob:;\n","text",[2208,2665,2662],{"__ignoreMap":2325},[2204,2667,2668,2669,2672,2673,2675],{},"Without ",[2208,2670,2671],{},"'unsafe-eval'",", Cap's instrumentation cannot run. A storefront whose policy must not allow ",[2208,2674,2671],{}," cannot use this app. These sources were measured in Chromium on a production build. A nonce-based policy is not tested.",[2199,2677,2679],{"id":2678},"test-suites","Test suites",[2204,2681,2682,2683,2686,2687,2613,2690,2693,2694,2696],{},"Headless Chromium fails the automation check, so an end-to-end suite cannot solve a proof. Send frontend-core's signed bypass header ",[2208,2684,2685],{},"x-laioutr-bypass-bot-protection"," with the value of ",[2208,2688,2689],{},"signBotProtectionBypass(projectSecretKey, action, nowSeconds)",[2208,2691,2692],{},"@laioutr-core/frontend-core/bot-protection",". Or set ",[2208,2695,2549],{}," in a test environment. Its proofs do not pass an environment with the check on.",[2199,2698,1864],{"id":2699},"limits",[2260,2701,2702,2708],{},[2263,2703,2704,2707],{},[2230,2705,2706],{},"The automation check raises the cost for a bot. It does not stop every bot."," undetected-chromedriver, nodriver and headless Firefox pass it.",[2263,2709,2710],{},"Not measured: phones, Tor Browser, and setups with screens of mixed pixel density.",[2199,2712,2714],{"id":2713},"consent","Consent",[2204,2716,2717],{},"The app adds no consent integration. Before the first protected action, nothing loads. At that action, the browser loads Cap's widget and WebAssembly files from the storefront's own origin, and the instrumentation script reads browser and screen properties. No request goes to a third party. Whether this needs consent for your storefront is your decision.",[2199,2719,2721],{"id":2720},"backend-requirements","Backend requirements",[2260,2723,2724,2731,2737],{},[2263,2725,2726,2727,2730],{},"Redis for orchestr's cache (see ",[2213,2728,2255],{"href":2729},"#redis",").",[2263,2732,2733,2736],{},[2208,2734,2735],{},"@laioutr-core/frontend-core"," 0.72.0 or newer in the host app.",[2263,2738,2739,2740,2742],{},"A project secret key in the ",[2208,2741,2542],{},". Cockpit writes it.",[2199,2744,2746],{"id":2745},"summary-checklist","Summary checklist",[2260,2748,2749,2759,2771,2777,2796,2805],{},[2263,2750,2751,2752,2754,2755,2758],{},"Make sure the project has ",[2230,2753,2255],{}," for orchestr's cache. On Vercel, enter a ",[2230,2756,2757],{},"Redis URL"," in the hosting settings.",[2263,2760,2761,2762,2764,2765,2767,2768,2770],{},"Add ",[2230,2763,2210],{}," to the project's apps. ",[2230,2766,2444],{}," and ",[2230,2769,2464],{}," are optional.",[2263,2772,2773,2774,2225],{},"List the actions to protect under ",[2230,2775,2776],{},"config.botProtection.actions",[2263,2778,2779,2780,2784,2785,2767,2790,2795],{},"With a Content Security Policy, allow ",[2230,2781,2782],{},[2208,2783,2671],{},", ",[2230,2786,2787],{},[2208,2788,2789],{},"'wasm-unsafe-eval'",[2230,2791,2792],{},[2208,2793,2794],{},"blob:"," workers.",[2263,2797,2798,2799,2801,2802,2804],{},"Choose ",[2230,2800,2509],{}," if ",[2208,2803,2520],{}," does not fit.",[2263,2806,2807,2808,2811],{},"Send the signed ",[2230,2809,2810],{},"bypass header"," from end-to-end suites.",[2199,2813,1938],{"id":2814},"changelog",[2204,2816,2817,2818,2825,2826,2225],{},"Version history is maintained in ",[2213,2819,2822],{"href":2820,"rel":2821},"https://github.com/laioutr/app-cap/blob/main/CHANGELOG.md",[2217],[2208,2823,2824],{},"CHANGELOG.md"," in the public repository ",[2213,2827,2830],{"href":2828,"rel":2829},"https://github.com/laioutr/app-cap",[2217],[2230,2831,2832],{},"laioutr/app-cap",[2834,2835,2836],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":2325,"searchDepth":2338,"depth":2338,"links":2838},[2839,2840,2845,2848,2849,2850,2851,2852,2853,2854],{"id":2201,"depth":2338,"text":2202},{"id":2249,"depth":2338,"text":2250,"children":2841},[2842,2843,2844],{"id":2254,"depth":2344,"text":2255},{"id":2310,"depth":2344,"text":2311},{"id":2536,"depth":2344,"text":2101},{"id":2553,"depth":2338,"text":2554,"children":2846},[2847],{"id":2636,"depth":2344,"text":2637},{"id":2649,"depth":2338,"text":2650},{"id":2678,"depth":2338,"text":2679},{"id":2699,"depth":2338,"text":1864},{"id":2713,"depth":2338,"text":2714},{"id":2720,"depth":2338,"text":2721},{"id":2745,"depth":2338,"text":2746},{"id":2814,"depth":2338,"text":1938},"Developer documentation for the Laioutr Cap app package. Protect selected actions from bots with a proof of work that the storefront checks itself, without a vendor account.","md",{},true,{"title":833,"description":2855},{"loc":834,"lastmod":2861,"changefreq":2862,"priority":2332},"2026-10-23","monthly","cIEkw5SHMKVxh0XaedqAK2cxHlAkDcr2dw96F1PM6nM",[2865,2867],{"title":829,"path":830,"stem":831,"description":2866,"children":-1},"Developer documentation for the Laioutr Vercel BotID app package. Protect selected actions from bots with Vercel BotID on storefronts hosted on Vercel.",{"title":837,"path":838,"stem":839,"description":2868,"children":-1},"Developer documentation for the Laioutr CCM19 app package. Add CCM19 cookie consent management to your Nuxt app via the Laioutr consent store.",1792770871844]