[{"data":1,"prerenderedAt":4614},["ShallowReactive",2],{"navigation-landing-en":3,"navigation-nuxt-auto-en":180,"navigation-nuxt-protokit-en":338,"/docs/nuxt-protokit/advanced/custom-schema-patterns-en":444,"/docs/nuxt-protokit/advanced/custom-schema-patterns-surround-en":4609},[4,8,13,28,41,51,64,77,94,110,134,150,157,172],{"title":5,"path":6,"stem":7},"Overview","/docs/landing","0.docs/1.landing/001.index",{"title":9,"path":10,"stem":11,"badge":12},"Built-in Features","/docs/landing/built-in-features","0.docs/1.landing/002.built-in-features","New",{"title":14,"path":15,"stem":16,"children":17,"icon":27},"Content Foundation","/docs/landing/content","0.docs/1.landing/02.content/1.index",[18,19,23],{"title":5,"path":15,"stem":16},{"title":20,"path":21,"stem":22},"Details","/docs/landing/content/details","0.docs/1.landing/02.content/2.details",{"title":24,"path":25,"stem":26},"Technical","/docs/landing/content/technical","0.docs/1.landing/02.content/4.technical","i-heroicons-document-text",{"title":29,"path":30,"stem":31,"children":32,"icon":40},"Regional Content","/docs/landing/regional","0.docs/1.landing/03.regional/1.index",[33,34,37],{"title":5,"path":30,"stem":31},{"title":20,"path":35,"stem":36},"/docs/landing/regional/details","0.docs/1.landing/03.regional/2.details",{"title":24,"path":38,"stem":39},"/docs/landing/regional/technical","0.docs/1.landing/03.regional/4.technical","i-heroicons-globe-alt",{"title":42,"path":43,"stem":44,"children":45,"icon":50},"Multi-language","/docs/landing/multilang","0.docs/1.landing/04.multilang/1.index",[46,47],{"title":5,"path":43,"stem":44},{"title":20,"path":48,"stem":49},"/docs/landing/multilang/details","0.docs/1.landing/04.multilang/2.details","i-heroicons-language",{"title":52,"path":53,"stem":54,"children":55,"icon":63},"Blog","/docs/landing/blog","0.docs/1.landing/05.blog/1.index",[56,57,60],{"title":5,"path":53,"stem":54},{"title":20,"path":58,"stem":59},"/docs/landing/blog/details","0.docs/1.landing/05.blog/2.details",{"title":24,"path":61,"stem":62},"/docs/landing/blog/technical","0.docs/1.landing/05.blog/4.technical","i-heroicons-pencil-square",{"title":65,"path":66,"stem":67,"children":68,"icon":76},"Documentation","/docs/landing/docs","0.docs/1.landing/06.docs/1.index",[69,70,73],{"title":5,"path":66,"stem":67},{"title":20,"path":71,"stem":72},"/docs/landing/docs/details","0.docs/1.landing/06.docs/2.details",{"title":24,"path":74,"stem":75},"/docs/landing/docs/technical","0.docs/1.landing/06.docs/4.technical","i-heroicons-book-open",{"title":78,"path":79,"stem":80,"children":81,"icon":93},"Forms","/docs/landing/forms","0.docs/1.landing/07.forms/1.index",[82,83,86,90],{"title":5,"path":79,"stem":80},{"title":20,"path":84,"stem":85},"/docs/landing/forms/details","0.docs/1.landing/07.forms/2.details",{"title":87,"path":88,"stem":89},"Admin","/docs/landing/forms/admin","0.docs/1.landing/07.forms/3.admin",{"title":24,"path":91,"stem":92},"/docs/landing/forms/technical","0.docs/1.landing/07.forms/4.technical","i-heroicons-clipboard-document-list",{"title":95,"path":96,"stem":97,"children":98,"icon":109},"Email","/docs/landing/email","0.docs/1.landing/08.email/1.index",[99,100,103,106],{"title":5,"path":96,"stem":97},{"title":20,"path":101,"stem":102},"/docs/landing/email/details","0.docs/1.landing/08.email/2.details",{"title":87,"path":104,"stem":105},"/docs/landing/email/admin","0.docs/1.landing/08.email/3.admin",{"title":24,"path":107,"stem":108},"/docs/landing/email/technical","0.docs/1.landing/08.email/4.technical","i-heroicons-envelope",{"title":111,"path":112,"stem":113,"children":114,"icon":133},"Feedback Platform","/docs/landing/feedback","0.docs/1.landing/09.feedback/1.index",[115,116,119,122,125,129],{"title":5,"path":112,"stem":113},{"title":20,"path":117,"stem":118},"/docs/landing/feedback/details","0.docs/1.landing/09.feedback/2.details",{"title":87,"path":120,"stem":121},"/docs/landing/feedback/admin","0.docs/1.landing/09.feedback/3.admin",{"title":24,"path":123,"stem":124},"/docs/landing/feedback/technical","0.docs/1.landing/09.feedback/4.technical",{"title":126,"path":127,"stem":128},"Compare vs SaaS","/docs/landing/feedback/compare","0.docs/1.landing/09.feedback/5.compare",{"title":130,"path":131,"stem":132},"FAQ","/docs/landing/feedback/faq","0.docs/1.landing/09.feedback/6.faq","i-heroicons-chat-bubble-left-right",{"title":135,"path":136,"stem":137,"children":138,"icon":149},"Storage","/docs/landing/storage","0.docs/1.landing/10.storage/1.index",[139,140,143,146],{"title":5,"path":136,"stem":137},{"title":20,"path":141,"stem":142},"/docs/landing/storage/details","0.docs/1.landing/10.storage/2.details",{"title":87,"path":144,"stem":145},"/docs/landing/storage/admin","0.docs/1.landing/10.storage/3.admin",{"title":24,"path":147,"stem":148},"/docs/landing/storage/technical","0.docs/1.landing/10.storage/4.technical","i-heroicons-circle-stack",{"title":151,"path":152,"stem":153,"children":154,"icon":156},"Offline First","/docs/landing/offline-first","0.docs/1.landing/11.offline-first/1.index",[155],{"title":151,"path":152,"stem":153},"i-heroicons-users",{"title":158,"path":159,"stem":160,"children":161,"icon":156},"Yjs Sync","/docs/landing/yjs-sync","0.docs/1.landing/12.yjs-sync/1.index",[162,163,166,169],{"title":5,"path":159,"stem":160},{"title":20,"path":164,"stem":165},"/docs/landing/yjs-sync/details","0.docs/1.landing/12.yjs-sync/2.details",{"title":87,"path":167,"stem":168},"/docs/landing/yjs-sync/admin","0.docs/1.landing/12.yjs-sync/3.admin",{"title":24,"path":170,"stem":171},"/docs/landing/yjs-sync/technical","0.docs/1.landing/12.yjs-sync/4.technical",{"title":173,"path":174,"stem":175,"children":176,"badge":178,"icon":179},"Newsletter","/docs/landing/newsletter","0.docs/1.landing/13.newsletter/index",[177],{"title":173,"path":174,"stem":175,"badge":178},"Coming Soon","i-lucide-send",[181,184,202,298],{"title":5,"path":182,"stem":183},"/docs/nuxt-auto","0.docs/3.nuxt-auto/index",{"title":185,"path":186,"stem":187,"children":188,"page":201},"Getting Started","/docs/nuxt-auto/getting-started","0.docs/3.nuxt-auto/1.getting-started",[189,193,197],{"title":190,"path":191,"stem":192},"Introduction","/docs/nuxt-auto/getting-started/introduction","0.docs/3.nuxt-auto/1.getting-started/1.introduction",{"title":194,"path":195,"stem":196},"Installation","/docs/nuxt-auto/getting-started/installation","0.docs/3.nuxt-auto/1.getting-started/2.installation",{"title":198,"path":199,"stem":200},"Quick Start","/docs/nuxt-auto/getting-started/quick-start","0.docs/3.nuxt-auto/1.getting-started/3.quick-start",false,{"title":203,"path":204,"stem":205,"children":206,"page":201},"Auto API","/docs/nuxt-auto/auto-api","0.docs/3.nuxt-auto/2.auto-api",[207,210,214,218,222,226,230,234,238,242,246,250,254,258,262,266,270,274,278,282,286,290,294],{"title":185,"path":208,"stem":209},"/docs/nuxt-auto/auto-api/getting-started","0.docs/3.nuxt-auto/2.auto-api/1.getting-started",{"title":211,"path":212,"stem":213},"Aggregations","/docs/nuxt-auto/auto-api/aggregations","0.docs/3.nuxt-auto/2.auto-api/10.aggregations",{"title":215,"path":216,"stem":217},"Lifecycle Hooks","/docs/nuxt-auto/auto-api/lifecycle-hooks","0.docs/3.nuxt-auto/2.auto-api/11.lifecycle-hooks",{"title":219,"path":220,"stem":221},"Many-to-Many (M2M) Relationships","/docs/nuxt-auto/auto-api/m2m-relationships","0.docs/3.nuxt-auto/2.auto-api/12.m2m-relationships",{"title":223,"path":224,"stem":225},"Plugin System","/docs/nuxt-auto/auto-api/plugin-system","0.docs/3.nuxt-auto/2.auto-api/13.plugin-system",{"title":227,"path":228,"stem":229},"Database Adapters","/docs/nuxt-auto/auto-api/database-adapters","0.docs/3.nuxt-auto/2.auto-api/14.database-adapters",{"title":231,"path":232,"stem":233},"Custom Endpoints","/docs/nuxt-auto/auto-api/custom-endpoints","0.docs/3.nuxt-auto/2.auto-api/15.custom-endpoints",{"title":235,"path":236,"stem":237},"Multi-Tenancy","/docs/nuxt-auto/auto-api/multi-tenancy","0.docs/3.nuxt-auto/2.auto-api/16.multi-tenancy",{"title":239,"path":240,"stem":241},"Validation","/docs/nuxt-auto/auto-api/validation","0.docs/3.nuxt-auto/2.auto-api/2.validation",{"title":243,"path":244,"stem":245},"Rate Limiting","/docs/nuxt-auto/auto-api/rate-limiting","0.docs/3.nuxt-auto/2.auto-api/20.rate-limiting",{"title":247,"path":248,"stem":249},"Request Metadata Plugin","/docs/nuxt-auto/auto-api/request-metadata","0.docs/3.nuxt-auto/2.auto-api/21.request-metadata",{"title":251,"path":252,"stem":253},"Plugin Catalog","/docs/nuxt-auto/auto-api/plugin-catalog","0.docs/3.nuxt-auto/2.auto-api/22.plugin-catalog",{"title":255,"path":256,"stem":257},"Handler Overrides","/docs/nuxt-auto/auto-api/handler-overrides","0.docs/3.nuxt-auto/2.auto-api/3.handler-overrides",{"title":259,"path":260,"stem":261},"Cloudflare D1","/docs/nuxt-auto/auto-api/cloudflare-d1","0.docs/3.nuxt-auto/2.auto-api/30.cloudflare-d1",{"title":263,"path":264,"stem":265},"SQLite to D1 Migration","/docs/nuxt-auto/auto-api/migration-sqlite-d1","0.docs/3.nuxt-auto/2.auto-api/31.migration-sqlite-d1",{"title":267,"path":268,"stem":269},"Frontend Composables","/docs/nuxt-auto/auto-api/frontend-composables","0.docs/3.nuxt-auto/2.auto-api/32.frontend-composables",{"title":271,"path":272,"stem":273},"Testing","/docs/nuxt-auto/auto-api/testing","0.docs/3.nuxt-auto/2.auto-api/33.testing",{"title":275,"path":276,"stem":277},"Pagination","/docs/nuxt-auto/auto-api/pagination","0.docs/3.nuxt-auto/2.auto-api/4.pagination",{"title":279,"path":280,"stem":281},"Soft Deletes","/docs/nuxt-auto/auto-api/soft-deletes","0.docs/3.nuxt-auto/2.auto-api/5.soft-deletes",{"title":283,"path":284,"stem":285},"Authentication & Authorization","/docs/nuxt-auto/auto-api/authentication-authorization","0.docs/3.nuxt-auto/2.auto-api/6.authentication-authorization",{"title":287,"path":288,"stem":289},"Better-Auth Integration","/docs/nuxt-auto/auto-api/better-auth","0.docs/3.nuxt-auto/2.auto-api/7.better-auth",{"title":291,"path":292,"stem":293},"Nested Relations","/docs/nuxt-auto/auto-api/nested-relationships","0.docs/3.nuxt-auto/2.auto-api/8.nested-relationships",{"title":295,"path":296,"stem":297},"Bulk Operations","/docs/nuxt-auto/auto-api/bulk-operations","0.docs/3.nuxt-auto/2.auto-api/9.bulk-operations",{"title":299,"path":300,"stem":301,"children":302,"page":201},"Auto Admin","/docs/nuxt-auto/auto-admin","0.docs/3.nuxt-auto/3.auto-admin",[303,306,310,314,318,322,326,330,334],{"title":185,"path":304,"stem":305},"/docs/nuxt-auto/auto-admin/getting-started","0.docs/3.nuxt-auto/3.auto-admin/1.getting-started",{"title":307,"path":308,"stem":309},"Configuration & Theming","/docs/nuxt-auto/auto-admin/configuration-theming","0.docs/3.nuxt-auto/3.auto-admin/2.configuration-theming",{"title":311,"path":312,"stem":313},"Resource Configuration","/docs/nuxt-auto/auto-admin/resource-configuration","0.docs/3.nuxt-auto/3.auto-admin/3.resource-configuration",{"title":315,"path":316,"stem":317},"Form Fields & Widgets","/docs/nuxt-auto/auto-admin/form-fields-widgets","0.docs/3.nuxt-auto/3.auto-admin/4.form-fields-widgets",{"title":319,"path":320,"stem":321},"Permissions","/docs/nuxt-auto/auto-admin/permissions","0.docs/3.nuxt-auto/3.auto-admin/5.permissions",{"title":323,"path":324,"stem":325},"Custom Pages","/docs/nuxt-auto/auto-admin/custom-pages","0.docs/3.nuxt-auto/3.auto-admin/6.custom-pages",{"title":327,"path":328,"stem":329},"M2M Relationships","/docs/nuxt-auto/auto-admin/m2m-relationships","0.docs/3.nuxt-auto/3.auto-admin/7.m2m-relationships",{"title":331,"path":332,"stem":333},"Custom Actions","/docs/nuxt-auto/auto-admin/custom-actions","0.docs/3.nuxt-auto/3.auto-admin/8.custom-actions",{"title":335,"path":336,"stem":337},"Composables","/docs/nuxt-auto/auto-admin/composables","0.docs/3.nuxt-auto/3.auto-admin/9.composables",[339,342,355,382,400,415,425],{"title":5,"path":340,"stem":341},"/docs/nuxt-protokit","0.docs/4.nuxt-protokit/index",{"title":185,"path":343,"stem":344,"children":345,"icon":354},"/docs/nuxt-protokit/getting-started","0.docs/4.nuxt-protokit/1.getting-started/1.index",[346,347,351],{"title":190,"path":343,"stem":344},{"title":348,"path":349,"stem":350},"Core Concepts","/docs/nuxt-protokit/getting-started/concepts","0.docs/4.nuxt-protokit/1.getting-started/2.concepts",{"title":198,"path":352,"stem":353},"/docs/nuxt-protokit/getting-started/quick-start","0.docs/4.nuxt-protokit/1.getting-started/3.quick-start","i-lucide-rocket",{"title":356,"path":357,"stem":358,"children":359,"icon":381},"Schemas","/docs/nuxt-protokit/schemas","0.docs/4.nuxt-protokit/2.schemas/1.index",[360,361,365,369,373,377],{"title":5,"path":357,"stem":358},{"title":362,"path":363,"stem":364},"Field Types","/docs/nuxt-protokit/schemas/fields","0.docs/4.nuxt-protokit/2.schemas/2.fields",{"title":366,"path":367,"stem":368},"Collections","/docs/nuxt-protokit/schemas/collections","0.docs/4.nuxt-protokit/2.schemas/3.collections",{"title":370,"path":371,"stem":372},"Derived & Computed","/docs/nuxt-protokit/schemas/derived-computed","0.docs/4.nuxt-protokit/2.schemas/4.derived-computed",{"title":374,"path":375,"stem":376},"Connections","/docs/nuxt-protokit/schemas/connections","0.docs/4.nuxt-protokit/2.schemas/5.connections",{"title":378,"path":379,"stem":380},"Visualizations & Layouts","/docs/nuxt-protokit/schemas/visualizations","0.docs/4.nuxt-protokit/2.schemas/6.visualizations","i-lucide-file-code",{"title":335,"path":383,"stem":384,"children":385,"icon":399},"/docs/nuxt-protokit/composables","0.docs/4.nuxt-protokit/3.composables/1.index",[386,387,391,395],{"title":5,"path":383,"stem":384},{"title":388,"path":389,"stem":390},"usePrototype","/docs/nuxt-protokit/composables/use-prototype","0.docs/4.nuxt-protokit/3.composables/2.use-prototype",{"title":392,"path":393,"stem":394},"useProtoDoc","/docs/nuxt-protokit/composables/use-proto-doc","0.docs/4.nuxt-protokit/3.composables/3.use-proto-doc",{"title":396,"path":397,"stem":398},"useProtoCollection","/docs/nuxt-protokit/composables/use-proto-collection","0.docs/4.nuxt-protokit/3.composables/4.use-proto-collection","i-lucide-layers",{"title":401,"path":402,"stem":403,"children":404,"icon":414},"Components","/docs/nuxt-protokit/components","0.docs/4.nuxt-protokit/4.components/1.index",[405,406,410],{"title":5,"path":402,"stem":403},{"title":407,"path":408,"stem":409},"ProtoTool","/docs/nuxt-protokit/components/proto-tool","0.docs/4.nuxt-protokit/4.components/2.proto-tool",{"title":411,"path":412,"stem":413},"ProtoCrudModal","/docs/nuxt-protokit/components/proto-crud-modal","0.docs/4.nuxt-protokit/4.components/3.proto-crud-modal","i-lucide-puzzle",{"title":151,"path":416,"stem":417,"children":418,"icon":424},"/docs/nuxt-protokit/offline-first","0.docs/4.nuxt-protokit/5.offline-first/1.index",[419,420],{"title":151,"path":416,"stem":417},{"title":421,"path":422,"stem":423},"Corruption Recovery","/docs/nuxt-protokit/offline-first/corruption-recovery","0.docs/4.nuxt-protokit/5.offline-first/2.corruption-recovery","i-lucide-wifi-off",{"title":426,"icon":427,"path":428,"stem":429,"children":430},"Advanced","i-lucide-graduation-cap","/docs/nuxt-protokit/advanced","0.docs/4.nuxt-protokit/6.advanced/1.index",[431,432,436,440],{"title":5,"path":428,"stem":429},{"title":433,"path":434,"stem":435},"Multi-Tool Apps","/docs/nuxt-protokit/advanced/building-a-toolkit","0.docs/4.nuxt-protokit/6.advanced/1.building-a-toolkit",{"title":437,"path":438,"stem":439},"Schema Patterns","/docs/nuxt-protokit/advanced/custom-schema-patterns","0.docs/4.nuxt-protokit/6.advanced/2.custom-schema-patterns",{"title":441,"path":442,"stem":443},"Custom Fields & Viz","/docs/nuxt-protokit/advanced/extensibility","0.docs/4.nuxt-protokit/6.advanced/3.extensibility",{"page":445,"fallbackPage":4604},{"id":446,"title":437,"body":447,"description":4602,"extension":4603,"links":4604,"meta":4605,"navigation":4606,"ogImage":4604,"path":438,"seo":4607,"stem":439,"__hash__":4608},"nuxt_protokit/0.docs/4.nuxt-protokit/6.advanced/2.custom-schema-patterns.md",{"type":448,"value":449,"toc":4592},"minimark",[450,454,458,463,466,829,836,840,843,1180,1184,1187,1698,1702,1705,2923,2927,2930,3351,3355,3914,3918,3921,4260,4264,4267,4364,4367,4588],[451,452,437],"h1",{"id":453},"schema-patterns",[455,456,457],"p",{},"A cookbook of advanced patterns for real-world tool schemas.",[459,460,462],"h2",{"id":461},"pattern-multi-threshold-result-badge","Pattern: Multi-threshold result badge",[455,464,465],{},"Use tiers to guide users toward a specific goal range:",[467,468,473],"pre",{"className":469,"code":470,"language":471,"meta":472,"style":472},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","results: {\n  badge: ({ derived }) => {\n    const ratio = derived.coverageRatio\n    if (ratio === null) return null\n    if (ratio >= 5)    return { label: `${ratio.toFixed(1)}x — Excellent`, color: 'success' }\n    if (ratio >= 3)    return { label: `${ratio.toFixed(1)}x — Healthy`,   color: 'primary' }\n    if (ratio >= 1.5)  return { label: `${ratio.toFixed(1)}x — Marginal`,  color: 'warning' }\n    return                   { label: `${ratio.toFixed(1)}x — Critical`,   color: 'error' }\n  },\n}\n","typescript","",[474,475,476,492,516,537,566,645,706,768,817,823],"code",{"__ignoreMap":472},[477,478,481,485,489],"span",{"class":479,"line":480},"line",1,[477,482,484],{"class":483},"sBMFI","results",[477,486,488],{"class":487},"sMK4o",":",[477,490,491],{"class":487}," {\n",[477,493,495,498,500,503,507,510,514],{"class":479,"line":494},2,[477,496,497],{"class":483},"  badge",[477,499,488],{"class":487},[477,501,502],{"class":487}," ({",[477,504,506],{"class":505},"sHdIc"," derived",[477,508,509],{"class":487}," })",[477,511,513],{"class":512},"spNyl"," =>",[477,515,491],{"class":487},[477,517,519,522,526,529,531,534],{"class":479,"line":518},3,[477,520,521],{"class":512},"    const",[477,523,525],{"class":524},"sTEyZ"," ratio",[477,527,528],{"class":487}," =",[477,530,506],{"class":524},[477,532,533],{"class":487},".",[477,535,536],{"class":524},"coverageRatio\n",[477,538,540,544,548,551,554,557,560,563],{"class":479,"line":539},4,[477,541,543],{"class":542},"s7zQu","    if",[477,545,547],{"class":546},"swJcz"," (",[477,549,550],{"class":524},"ratio",[477,552,553],{"class":487}," ===",[477,555,556],{"class":487}," null",[477,558,559],{"class":546},") ",[477,561,562],{"class":542},"return",[477,564,565],{"class":487}," null\n",[477,567,569,571,573,575,578,582,585,587,590,593,595,598,600,602,606,609,612,615,618,622,625,628,631,633,636,639,642],{"class":479,"line":568},5,[477,570,543],{"class":542},[477,572,547],{"class":546},[477,574,550],{"class":524},[477,576,577],{"class":487}," >=",[477,579,581],{"class":580},"sbssI"," 5",[477,583,584],{"class":546},")    ",[477,586,562],{"class":542},[477,588,589],{"class":487}," {",[477,591,592],{"class":546}," label",[477,594,488],{"class":487},[477,596,597],{"class":487}," `${",[477,599,550],{"class":524},[477,601,533],{"class":487},[477,603,605],{"class":604},"s2Zo4","toFixed",[477,607,608],{"class":524},"(",[477,610,611],{"class":580},"1",[477,613,614],{"class":524},")",[477,616,617],{"class":487},"}",[477,619,621],{"class":620},"sfazB","x — Excellent",[477,623,624],{"class":487},"`",[477,626,627],{"class":487},",",[477,629,630],{"class":546}," color",[477,632,488],{"class":487},[477,634,635],{"class":487}," '",[477,637,638],{"class":620},"success",[477,640,641],{"class":487},"'",[477,643,644],{"class":487}," }\n",[477,646,648,650,652,654,656,659,661,663,665,667,669,671,673,675,677,679,681,683,685,688,690,692,695,697,699,702,704],{"class":479,"line":647},6,[477,649,543],{"class":542},[477,651,547],{"class":546},[477,653,550],{"class":524},[477,655,577],{"class":487},[477,657,658],{"class":580}," 3",[477,660,584],{"class":546},[477,662,562],{"class":542},[477,664,589],{"class":487},[477,666,592],{"class":546},[477,668,488],{"class":487},[477,670,597],{"class":487},[477,672,550],{"class":524},[477,674,533],{"class":487},[477,676,605],{"class":604},[477,678,608],{"class":524},[477,680,611],{"class":580},[477,682,614],{"class":524},[477,684,617],{"class":487},[477,686,687],{"class":620},"x — Healthy",[477,689,624],{"class":487},[477,691,627],{"class":487},[477,693,694],{"class":546},"   color",[477,696,488],{"class":487},[477,698,635],{"class":487},[477,700,701],{"class":620},"primary",[477,703,641],{"class":487},[477,705,644],{"class":487},[477,707,709,711,713,715,717,720,723,725,727,729,731,733,735,737,739,741,743,745,747,750,752,754,757,759,761,764,766],{"class":479,"line":708},7,[477,710,543],{"class":542},[477,712,547],{"class":546},[477,714,550],{"class":524},[477,716,577],{"class":487},[477,718,719],{"class":580}," 1.5",[477,721,722],{"class":546},")  ",[477,724,562],{"class":542},[477,726,589],{"class":487},[477,728,592],{"class":546},[477,730,488],{"class":487},[477,732,597],{"class":487},[477,734,550],{"class":524},[477,736,533],{"class":487},[477,738,605],{"class":604},[477,740,608],{"class":524},[477,742,611],{"class":580},[477,744,614],{"class":524},[477,746,617],{"class":487},[477,748,749],{"class":620},"x — Marginal",[477,751,624],{"class":487},[477,753,627],{"class":487},[477,755,756],{"class":546},"  color",[477,758,488],{"class":487},[477,760,635],{"class":487},[477,762,763],{"class":620},"warning",[477,765,641],{"class":487},[477,767,644],{"class":487},[477,769,771,774,777,779,781,783,785,787,789,791,793,795,797,800,802,804,806,808,810,813,815],{"class":479,"line":770},8,[477,772,773],{"class":542},"    return",[477,775,776],{"class":487},"                   {",[477,778,592],{"class":546},[477,780,488],{"class":487},[477,782,597],{"class":487},[477,784,550],{"class":524},[477,786,533],{"class":487},[477,788,605],{"class":604},[477,790,608],{"class":524},[477,792,611],{"class":580},[477,794,614],{"class":524},[477,796,617],{"class":487},[477,798,799],{"class":620},"x — Critical",[477,801,624],{"class":487},[477,803,627],{"class":487},[477,805,694],{"class":546},[477,807,488],{"class":487},[477,809,635],{"class":487},[477,811,812],{"class":620},"error",[477,814,641],{"class":487},[477,816,644],{"class":487},[477,818,820],{"class":479,"line":819},9,[477,821,822],{"class":487},"  },\n",[477,824,826],{"class":479,"line":825},10,[477,827,828],{"class":487},"}\n",[455,830,831,832,835],{},"Returning ",[474,833,834],{},"null"," hides the badge entirely — useful when there is not enough data to form a verdict.",[459,837,839],{"id":838},"pattern-null-safe-connection-with-local-fallback","Pattern: Null-safe connection with local fallback",[455,841,842],{},"Always guard against missing upstream data. Provide a local input field as a fallback so the tool remains useful standalone:",[467,844,846],{"className":469,"code":845,"language":471,"meta":472,"style":472},"fields: {\n  // Used when no upstream tool is connected\n  localMonthlyRevenue: {\n    type: 'number',\n    label: 'Monthly Revenue (€)',\n    help: 'Auto-filled from Revenue tool when linked',\n  },\n},\n\nconsumes: {\n  upstreamRevenue: 'revenue-tool.monthlyRevenue',\n},\n\nderived: {\n  effectiveRevenue: {\n    compute: ({ fields, connections }) =>\n      connections.upstreamRevenue ?? fields.localMonthlyRevenue ?? 0,\n  },\n  margin: {\n    compute: ({ fields, derived }) => {\n      if (!derived.effectiveRevenue) return null\n      return (derived.effectiveRevenue - fields.monthlyCosts) / derived.effectiveRevenue\n    },\n    format: { type: 'percent' },\n  },\n}\n",[474,847,848,857,863,872,889,905,921,925,930,936,945,962,967,972,982,992,1015,1043,1048,1058,1079,1103,1139,1145,1170,1175],{"__ignoreMap":472},[477,849,850,853,855],{"class":479,"line":480},[477,851,852],{"class":483},"fields",[477,854,488],{"class":487},[477,856,491],{"class":487},[477,858,859],{"class":479,"line":494},[477,860,862],{"class":861},"sHwdD","  // Used when no upstream tool is connected\n",[477,864,865,868,870],{"class":479,"line":518},[477,866,867],{"class":483},"  localMonthlyRevenue",[477,869,488],{"class":487},[477,871,491],{"class":487},[477,873,874,877,879,881,884,886],{"class":479,"line":539},[477,875,876],{"class":483},"    type",[477,878,488],{"class":487},[477,880,635],{"class":487},[477,882,883],{"class":620},"number",[477,885,641],{"class":487},[477,887,888],{"class":487},",\n",[477,890,891,894,896,898,901,903],{"class":479,"line":568},[477,892,893],{"class":483},"    label",[477,895,488],{"class":487},[477,897,635],{"class":487},[477,899,900],{"class":620},"Monthly Revenue (€)",[477,902,641],{"class":487},[477,904,888],{"class":487},[477,906,907,910,912,914,917,919],{"class":479,"line":647},[477,908,909],{"class":483},"    help",[477,911,488],{"class":487},[477,913,635],{"class":487},[477,915,916],{"class":620},"Auto-filled from Revenue tool when linked",[477,918,641],{"class":487},[477,920,888],{"class":487},[477,922,923],{"class":479,"line":708},[477,924,822],{"class":487},[477,926,927],{"class":479,"line":770},[477,928,929],{"class":487},"},\n",[477,931,932],{"class":479,"line":819},[477,933,935],{"emptyLinePlaceholder":934},true,"\n",[477,937,938,941,943],{"class":479,"line":825},[477,939,940],{"class":483},"consumes",[477,942,488],{"class":487},[477,944,491],{"class":487},[477,946,948,951,953,955,958,960],{"class":479,"line":947},11,[477,949,950],{"class":483},"  upstreamRevenue",[477,952,488],{"class":487},[477,954,635],{"class":487},[477,956,957],{"class":620},"revenue-tool.monthlyRevenue",[477,959,641],{"class":487},[477,961,888],{"class":487},[477,963,965],{"class":479,"line":964},12,[477,966,929],{"class":487},[477,968,970],{"class":479,"line":969},13,[477,971,935],{"emptyLinePlaceholder":934},[477,973,975,978,980],{"class":479,"line":974},14,[477,976,977],{"class":483},"derived",[477,979,488],{"class":487},[477,981,491],{"class":487},[477,983,985,988,990],{"class":479,"line":984},15,[477,986,987],{"class":483},"  effectiveRevenue",[477,989,488],{"class":487},[477,991,491],{"class":487},[477,993,995,998,1000,1002,1005,1007,1010,1012],{"class":479,"line":994},16,[477,996,997],{"class":483},"    compute",[477,999,488],{"class":487},[477,1001,502],{"class":487},[477,1003,1004],{"class":505}," fields",[477,1006,627],{"class":487},[477,1008,1009],{"class":505}," connections",[477,1011,509],{"class":487},[477,1013,1014],{"class":512}," =>\n",[477,1016,1018,1021,1023,1026,1029,1031,1033,1036,1038,1041],{"class":479,"line":1017},17,[477,1019,1020],{"class":524},"      connections",[477,1022,533],{"class":487},[477,1024,1025],{"class":524},"upstreamRevenue",[477,1027,1028],{"class":487}," ??",[477,1030,1004],{"class":524},[477,1032,533],{"class":487},[477,1034,1035],{"class":524},"localMonthlyRevenue",[477,1037,1028],{"class":487},[477,1039,1040],{"class":580}," 0",[477,1042,888],{"class":487},[477,1044,1046],{"class":479,"line":1045},18,[477,1047,822],{"class":487},[477,1049,1051,1054,1056],{"class":479,"line":1050},19,[477,1052,1053],{"class":483},"  margin",[477,1055,488],{"class":487},[477,1057,491],{"class":487},[477,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077],{"class":479,"line":1060},20,[477,1062,997],{"class":483},[477,1064,488],{"class":487},[477,1066,502],{"class":487},[477,1068,1004],{"class":505},[477,1070,627],{"class":487},[477,1072,506],{"class":505},[477,1074,509],{"class":487},[477,1076,513],{"class":512},[477,1078,491],{"class":487},[477,1080,1082,1085,1087,1090,1092,1094,1097,1099,1101],{"class":479,"line":1081},21,[477,1083,1084],{"class":542},"      if",[477,1086,547],{"class":546},[477,1088,1089],{"class":487},"!",[477,1091,977],{"class":524},[477,1093,533],{"class":487},[477,1095,1096],{"class":524},"effectiveRevenue",[477,1098,559],{"class":546},[477,1100,562],{"class":542},[477,1102,565],{"class":487},[477,1104,1106,1109,1111,1113,1115,1117,1120,1122,1124,1127,1129,1132,1134,1136],{"class":479,"line":1105},22,[477,1107,1108],{"class":542},"      return",[477,1110,547],{"class":546},[477,1112,977],{"class":524},[477,1114,533],{"class":487},[477,1116,1096],{"class":524},[477,1118,1119],{"class":487}," -",[477,1121,1004],{"class":524},[477,1123,533],{"class":487},[477,1125,1126],{"class":524},"monthlyCosts",[477,1128,559],{"class":546},[477,1130,1131],{"class":487},"/",[477,1133,506],{"class":524},[477,1135,533],{"class":487},[477,1137,1138],{"class":524},"effectiveRevenue\n",[477,1140,1142],{"class":479,"line":1141},23,[477,1143,1144],{"class":487},"    },\n",[477,1146,1148,1151,1153,1155,1158,1160,1162,1165,1167],{"class":479,"line":1147},24,[477,1149,1150],{"class":483},"    format",[477,1152,488],{"class":487},[477,1154,589],{"class":487},[477,1156,1157],{"class":483}," type",[477,1159,488],{"class":487},[477,1161,635],{"class":487},[477,1163,1164],{"class":620},"percent",[477,1166,641],{"class":487},[477,1168,1169],{"class":487}," },\n",[477,1171,1173],{"class":479,"line":1172},25,[477,1174,822],{"class":487},[477,1176,1178],{"class":479,"line":1177},26,[477,1179,828],{"class":487},[459,1181,1183],{"id":1182},"pattern-collection-driven-bar-chart","Pattern: Collection-driven bar chart",[455,1185,1186],{},"Generate visualization data dynamically from CRUD items:",[467,1188,1190],{"className":469,"code":1189,"language":471,"meta":472,"style":472},"collections: {\n  categories: {\n    label: 'Budget Categories',\n    fields: {\n      name:   { type: 'text',   label: 'Category' },\n      amount: { type: 'number', label: 'Monthly Amount (€)' },\n    },\n  },\n},\n\nderived: {\n  totalBudget: {\n    compute: ({ collections }) =>\n      (collections.categories ?? []).reduce((sum, c) => sum + (c.amount ?? 0), 0),\n    format: { type: 'money', currency: '€' },\n  },\n},\n\nvisualizations: [\n  {\n    type: 'bar-chart',\n    label: 'Budget by Category',\n    orientation: 'horizontal',\n    items: ({ collections }) =>\n      (collections.categories ?? [])\n        .sort((a, b) => (b.amount ?? 0) - (a.amount ?? 0))\n        .map(c => ({ label: c.name, value: c.amount ?? 0 })),\n    format: 'money',\n  },\n],\n",[474,1191,1192,1201,1210,1225,1234,1271,1305,1309,1313,1317,1321,1329,1338,1353,1421,1456,1460,1464,1468,1478,1483,1498,1513,1529,1544,1560,1615,1670,1685,1690],{"__ignoreMap":472},[477,1193,1194,1197,1199],{"class":479,"line":480},[477,1195,1196],{"class":483},"collections",[477,1198,488],{"class":487},[477,1200,491],{"class":487},[477,1202,1203,1206,1208],{"class":479,"line":494},[477,1204,1205],{"class":483},"  categories",[477,1207,488],{"class":487},[477,1209,491],{"class":487},[477,1211,1212,1214,1216,1218,1221,1223],{"class":479,"line":518},[477,1213,893],{"class":483},[477,1215,488],{"class":487},[477,1217,635],{"class":487},[477,1219,1220],{"class":620},"Budget Categories",[477,1222,641],{"class":487},[477,1224,888],{"class":487},[477,1226,1227,1230,1232],{"class":479,"line":539},[477,1228,1229],{"class":483},"    fields",[477,1231,488],{"class":487},[477,1233,491],{"class":487},[477,1235,1236,1239,1241,1244,1246,1248,1250,1253,1255,1257,1260,1262,1264,1267,1269],{"class":479,"line":568},[477,1237,1238],{"class":483},"      name",[477,1240,488],{"class":487},[477,1242,1243],{"class":487},"   {",[477,1245,1157],{"class":483},[477,1247,488],{"class":487},[477,1249,635],{"class":487},[477,1251,1252],{"class":620},"text",[477,1254,641],{"class":487},[477,1256,627],{"class":487},[477,1258,1259],{"class":483},"   label",[477,1261,488],{"class":487},[477,1263,635],{"class":487},[477,1265,1266],{"class":620},"Category",[477,1268,641],{"class":487},[477,1270,1169],{"class":487},[477,1272,1273,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1301,1303],{"class":479,"line":647},[477,1274,1275],{"class":483},"      amount",[477,1277,488],{"class":487},[477,1279,589],{"class":487},[477,1281,1157],{"class":483},[477,1283,488],{"class":487},[477,1285,635],{"class":487},[477,1287,883],{"class":620},[477,1289,641],{"class":487},[477,1291,627],{"class":487},[477,1293,592],{"class":483},[477,1295,488],{"class":487},[477,1297,635],{"class":487},[477,1299,1300],{"class":620},"Monthly Amount (€)",[477,1302,641],{"class":487},[477,1304,1169],{"class":487},[477,1306,1307],{"class":479,"line":708},[477,1308,1144],{"class":487},[477,1310,1311],{"class":479,"line":770},[477,1312,822],{"class":487},[477,1314,1315],{"class":479,"line":819},[477,1316,929],{"class":487},[477,1318,1319],{"class":479,"line":825},[477,1320,935],{"emptyLinePlaceholder":934},[477,1322,1323,1325,1327],{"class":479,"line":947},[477,1324,977],{"class":483},[477,1326,488],{"class":487},[477,1328,491],{"class":487},[477,1330,1331,1334,1336],{"class":479,"line":964},[477,1332,1333],{"class":483},"  totalBudget",[477,1335,488],{"class":487},[477,1337,491],{"class":487},[477,1339,1340,1342,1344,1346,1349,1351],{"class":479,"line":969},[477,1341,997],{"class":483},[477,1343,488],{"class":487},[477,1345,502],{"class":487},[477,1347,1348],{"class":505}," collections",[477,1350,509],{"class":487},[477,1352,1014],{"class":512},[477,1354,1355,1358,1360,1362,1365,1367,1370,1372,1375,1377,1379,1382,1384,1387,1389,1391,1394,1397,1399,1402,1404,1407,1409,1411,1413,1415,1417,1419],{"class":479,"line":974},[477,1356,1357],{"class":546},"      (",[477,1359,1196],{"class":524},[477,1361,533],{"class":487},[477,1363,1364],{"class":524},"categories",[477,1366,1028],{"class":487},[477,1368,1369],{"class":546}," [])",[477,1371,533],{"class":487},[477,1373,1374],{"class":604},"reduce",[477,1376,608],{"class":546},[477,1378,608],{"class":487},[477,1380,1381],{"class":505},"sum",[477,1383,627],{"class":487},[477,1385,1386],{"class":505}," c",[477,1388,614],{"class":487},[477,1390,513],{"class":512},[477,1392,1393],{"class":524}," sum",[477,1395,1396],{"class":487}," +",[477,1398,547],{"class":546},[477,1400,1401],{"class":524},"c",[477,1403,533],{"class":487},[477,1405,1406],{"class":524},"amount",[477,1408,1028],{"class":487},[477,1410,1040],{"class":580},[477,1412,614],{"class":546},[477,1414,627],{"class":487},[477,1416,1040],{"class":580},[477,1418,614],{"class":546},[477,1420,888],{"class":487},[477,1422,1423,1425,1427,1429,1431,1433,1435,1438,1440,1442,1445,1447,1449,1452,1454],{"class":479,"line":984},[477,1424,1150],{"class":483},[477,1426,488],{"class":487},[477,1428,589],{"class":487},[477,1430,1157],{"class":483},[477,1432,488],{"class":487},[477,1434,635],{"class":487},[477,1436,1437],{"class":620},"money",[477,1439,641],{"class":487},[477,1441,627],{"class":487},[477,1443,1444],{"class":483}," currency",[477,1446,488],{"class":487},[477,1448,635],{"class":487},[477,1450,1451],{"class":620},"€",[477,1453,641],{"class":487},[477,1455,1169],{"class":487},[477,1457,1458],{"class":479,"line":994},[477,1459,822],{"class":487},[477,1461,1462],{"class":479,"line":1017},[477,1463,929],{"class":487},[477,1465,1466],{"class":479,"line":1045},[477,1467,935],{"emptyLinePlaceholder":934},[477,1469,1470,1473,1475],{"class":479,"line":1050},[477,1471,1472],{"class":483},"visualizations",[477,1474,488],{"class":487},[477,1476,1477],{"class":524}," [\n",[477,1479,1480],{"class":479,"line":1060},[477,1481,1482],{"class":487},"  {\n",[477,1484,1485,1487,1489,1491,1494,1496],{"class":479,"line":1081},[477,1486,876],{"class":546},[477,1488,488],{"class":487},[477,1490,635],{"class":487},[477,1492,1493],{"class":620},"bar-chart",[477,1495,641],{"class":487},[477,1497,888],{"class":487},[477,1499,1500,1502,1504,1506,1509,1511],{"class":479,"line":1105},[477,1501,893],{"class":546},[477,1503,488],{"class":487},[477,1505,635],{"class":487},[477,1507,1508],{"class":620},"Budget by Category",[477,1510,641],{"class":487},[477,1512,888],{"class":487},[477,1514,1515,1518,1520,1522,1525,1527],{"class":479,"line":1141},[477,1516,1517],{"class":546},"    orientation",[477,1519,488],{"class":487},[477,1521,635],{"class":487},[477,1523,1524],{"class":620},"horizontal",[477,1526,641],{"class":487},[477,1528,888],{"class":487},[477,1530,1531,1534,1536,1538,1540,1542],{"class":479,"line":1147},[477,1532,1533],{"class":604},"    items",[477,1535,488],{"class":487},[477,1537,502],{"class":487},[477,1539,1348],{"class":505},[477,1541,509],{"class":487},[477,1543,1014],{"class":512},[477,1545,1546,1549,1551,1554,1557],{"class":479,"line":1172},[477,1547,1548],{"class":524},"      (collections",[477,1550,533],{"class":487},[477,1552,1553],{"class":524},"categories ",[477,1555,1556],{"class":487},"??",[477,1558,1559],{"class":524}," [])\n",[477,1561,1562,1565,1568,1570,1572,1575,1577,1580,1582,1584,1587,1589,1592,1594,1596,1598,1601,1604,1606,1608,1610,1612],{"class":479,"line":1177},[477,1563,1564],{"class":487},"        .",[477,1566,1567],{"class":604},"sort",[477,1569,608],{"class":524},[477,1571,608],{"class":487},[477,1573,1574],{"class":505},"a",[477,1576,627],{"class":487},[477,1578,1579],{"class":505}," b",[477,1581,614],{"class":487},[477,1583,513],{"class":512},[477,1585,1586],{"class":524}," (b",[477,1588,533],{"class":487},[477,1590,1591],{"class":524},"amount ",[477,1593,1556],{"class":487},[477,1595,1040],{"class":580},[477,1597,559],{"class":524},[477,1599,1600],{"class":487},"-",[477,1602,1603],{"class":524}," (a",[477,1605,533],{"class":487},[477,1607,1591],{"class":524},[477,1609,1556],{"class":487},[477,1611,1040],{"class":580},[477,1613,1614],{"class":524},"))\n",[477,1616,1618,1620,1623,1625,1627,1629,1631,1634,1636,1638,1640,1642,1645,1647,1650,1652,1654,1656,1658,1660,1662,1665,1668],{"class":479,"line":1617},27,[477,1619,1564],{"class":487},[477,1621,1622],{"class":604},"map",[477,1624,608],{"class":524},[477,1626,1401],{"class":505},[477,1628,513],{"class":512},[477,1630,547],{"class":524},[477,1632,1633],{"class":487},"{",[477,1635,592],{"class":546},[477,1637,488],{"class":487},[477,1639,1386],{"class":524},[477,1641,533],{"class":487},[477,1643,1644],{"class":524},"name",[477,1646,627],{"class":487},[477,1648,1649],{"class":546}," value",[477,1651,488],{"class":487},[477,1653,1386],{"class":524},[477,1655,533],{"class":487},[477,1657,1591],{"class":524},[477,1659,1556],{"class":487},[477,1661,1040],{"class":580},[477,1663,1664],{"class":487}," }",[477,1666,1667],{"class":524},"))",[477,1669,888],{"class":487},[477,1671,1673,1675,1677,1679,1681,1683],{"class":479,"line":1672},28,[477,1674,1150],{"class":546},[477,1676,488],{"class":487},[477,1678,635],{"class":487},[477,1680,1437],{"class":620},[477,1682,641],{"class":487},[477,1684,888],{"class":487},[477,1686,1688],{"class":479,"line":1687},29,[477,1689,822],{"class":487},[477,1691,1693,1696],{"class":479,"line":1692},30,[477,1694,1695],{"class":524},"]",[477,1697,888],{"class":487},[459,1699,1701],{"id":1700},"pattern-linked-question-response-collection","Pattern: Linked question-response collection",[455,1703,1704],{},"For tools where you have a list of questions and a list of sessions/records — with one answer per question inside each session:",[467,1706,1708],{"className":469,"code":1707,"language":471,"meta":472,"style":472},"collections: {\n  questions: {\n    label: 'Questions',\n    fields: {\n      text:     { type: 'text',   label: 'Question Text', required: true },\n      category: { type: 'select', label: 'Category',\n                  options: [\n                    { value: 'open',   label: 'Open-ended' },\n                    { value: 'rating', label: 'Rating' },\n                    { value: 'yn',     label: 'Yes/No' },\n                  ] },\n    },\n    presets: [\n      {\n        id: 'discovery-pack',\n        label: 'Discovery Questions',\n        description: '6 open-ended questions for a first session',\n        items: [\n          { text: 'What is the biggest challenge you face with X?', category: 'open' },\n          { text: 'How are you handling X today?',                  category: 'open' },\n          { text: 'What have you tried that did not work?',         category: 'open' },\n        ],\n      },\n    ],\n  },\n\n  sessions: {\n    label: 'Sessions',\n    singularLabel: 'Session',\n    fields: {\n      participant:  { type: 'text',   label: 'Participant Name' },\n      date:         { type: 'date',   label: 'Date' },\n      overallRating: {\n        type: 'segmented',\n        label: 'Overall Rating',\n        options: [\n          { value: 'negative', label: '👎' },\n          { value: 'neutral',  label: '😐' },\n          { value: 'positive', label: '👍' },\n        ],\n      },\n      tags:          { type: 'tags',    label: 'Key Themes' },\n      // One textarea per question from the 'questions' collection\n      responses: {\n        type: 'linked-responses',\n        label: 'Question Responses',\n        sourceCollection: 'questions',\n        questionField: 'text',\n      },\n      keyTakeaway:   { type: 'textarea', label: 'Key Takeaway', colSpan: 2 },\n    },\n    editMode:  'modal',\n    modalSize: '3xl',\n  },\n},\n\nderived: {\n  sessionCount:    { compute: ({ collections }) => collections.sessions?.length ?? 0 },\n  allThemes: {\n    compute: ({ collections }) =>\n      [...new Set((collections.sessions ?? []).flatMap(s => s.tags ?? []))],\n  },\n  positiveCount: {\n    compute: ({ collections }) =>\n      (collections.sessions ?? []).filter(s => s.overallRating === 'positive').length,\n  },\n},\n\nproduces: {\n  sessionCount:  'derived.sessionCount',\n  themes:        'derived.allThemes',\n  positiveRate:  'derived.positiveRate',\n},\n",[474,1709,1710,1718,1727,1742,1750,1796,1830,1839,1870,1900,1931,1938,1942,1951,1956,1972,1988,2004,2013,2045,2075,2105,2112,2117,2124,2128,2132,2141,2156,2172,2180,2216,2253,2263,2280,2296,2306,2337,2369,2400,2407,2412,2448,2454,2464,2480,2496,2513,2529,2534,2580,2585,2603,2620,2625,2630,2635,2644,2687,2697,2712,2763,2768,2778,2793,2842,2847,2852,2857,2867,2883,2901,2918],{"__ignoreMap":472},[477,1711,1712,1714,1716],{"class":479,"line":480},[477,1713,1196],{"class":483},[477,1715,488],{"class":487},[477,1717,491],{"class":487},[477,1719,1720,1723,1725],{"class":479,"line":494},[477,1721,1722],{"class":483},"  questions",[477,1724,488],{"class":487},[477,1726,491],{"class":487},[477,1728,1729,1731,1733,1735,1738,1740],{"class":479,"line":518},[477,1730,893],{"class":483},[477,1732,488],{"class":487},[477,1734,635],{"class":487},[477,1736,1737],{"class":620},"Questions",[477,1739,641],{"class":487},[477,1741,888],{"class":487},[477,1743,1744,1746,1748],{"class":479,"line":539},[477,1745,1229],{"class":483},[477,1747,488],{"class":487},[477,1749,491],{"class":487},[477,1751,1752,1755,1757,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1781,1783,1785,1788,1790,1794],{"class":479,"line":568},[477,1753,1754],{"class":483},"      text",[477,1756,488],{"class":487},[477,1758,1759],{"class":487},"     {",[477,1761,1157],{"class":483},[477,1763,488],{"class":487},[477,1765,635],{"class":487},[477,1767,1252],{"class":620},[477,1769,641],{"class":487},[477,1771,627],{"class":487},[477,1773,1259],{"class":483},[477,1775,488],{"class":487},[477,1777,635],{"class":487},[477,1779,1780],{"class":620},"Question Text",[477,1782,641],{"class":487},[477,1784,627],{"class":487},[477,1786,1787],{"class":483}," required",[477,1789,488],{"class":487},[477,1791,1793],{"class":1792},"sfNiH"," true",[477,1795,1169],{"class":487},[477,1797,1798,1801,1803,1805,1807,1809,1811,1814,1816,1818,1820,1822,1824,1826,1828],{"class":479,"line":647},[477,1799,1800],{"class":483},"      category",[477,1802,488],{"class":487},[477,1804,589],{"class":487},[477,1806,1157],{"class":483},[477,1808,488],{"class":487},[477,1810,635],{"class":487},[477,1812,1813],{"class":620},"select",[477,1815,641],{"class":487},[477,1817,627],{"class":487},[477,1819,592],{"class":483},[477,1821,488],{"class":487},[477,1823,635],{"class":487},[477,1825,1266],{"class":620},[477,1827,641],{"class":487},[477,1829,888],{"class":487},[477,1831,1832,1835,1837],{"class":479,"line":708},[477,1833,1834],{"class":483},"                  options",[477,1836,488],{"class":487},[477,1838,1477],{"class":546},[477,1840,1841,1844,1846,1848,1850,1853,1855,1857,1859,1861,1863,1866,1868],{"class":479,"line":770},[477,1842,1843],{"class":487},"                    {",[477,1845,1649],{"class":546},[477,1847,488],{"class":487},[477,1849,635],{"class":487},[477,1851,1852],{"class":620},"open",[477,1854,641],{"class":487},[477,1856,627],{"class":487},[477,1858,1259],{"class":546},[477,1860,488],{"class":487},[477,1862,635],{"class":487},[477,1864,1865],{"class":620},"Open-ended",[477,1867,641],{"class":487},[477,1869,1169],{"class":487},[477,1871,1872,1874,1876,1878,1880,1883,1885,1887,1889,1891,1893,1896,1898],{"class":479,"line":819},[477,1873,1843],{"class":487},[477,1875,1649],{"class":546},[477,1877,488],{"class":487},[477,1879,635],{"class":487},[477,1881,1882],{"class":620},"rating",[477,1884,641],{"class":487},[477,1886,627],{"class":487},[477,1888,592],{"class":546},[477,1890,488],{"class":487},[477,1892,635],{"class":487},[477,1894,1895],{"class":620},"Rating",[477,1897,641],{"class":487},[477,1899,1169],{"class":487},[477,1901,1902,1904,1906,1908,1910,1913,1915,1917,1920,1922,1924,1927,1929],{"class":479,"line":825},[477,1903,1843],{"class":487},[477,1905,1649],{"class":546},[477,1907,488],{"class":487},[477,1909,635],{"class":487},[477,1911,1912],{"class":620},"yn",[477,1914,641],{"class":487},[477,1916,627],{"class":487},[477,1918,1919],{"class":546},"     label",[477,1921,488],{"class":487},[477,1923,635],{"class":487},[477,1925,1926],{"class":620},"Yes/No",[477,1928,641],{"class":487},[477,1930,1169],{"class":487},[477,1932,1933,1936],{"class":479,"line":947},[477,1934,1935],{"class":546},"                  ] ",[477,1937,929],{"class":487},[477,1939,1940],{"class":479,"line":964},[477,1941,1144],{"class":487},[477,1943,1944,1947,1949],{"class":479,"line":969},[477,1945,1946],{"class":483},"    presets",[477,1948,488],{"class":487},[477,1950,1477],{"class":546},[477,1952,1953],{"class":479,"line":974},[477,1954,1955],{"class":487},"      {\n",[477,1957,1958,1961,1963,1965,1968,1970],{"class":479,"line":984},[477,1959,1960],{"class":546},"        id",[477,1962,488],{"class":487},[477,1964,635],{"class":487},[477,1966,1967],{"class":620},"discovery-pack",[477,1969,641],{"class":487},[477,1971,888],{"class":487},[477,1973,1974,1977,1979,1981,1984,1986],{"class":479,"line":994},[477,1975,1976],{"class":546},"        label",[477,1978,488],{"class":487},[477,1980,635],{"class":487},[477,1982,1983],{"class":620},"Discovery Questions",[477,1985,641],{"class":487},[477,1987,888],{"class":487},[477,1989,1990,1993,1995,1997,2000,2002],{"class":479,"line":1017},[477,1991,1992],{"class":546},"        description",[477,1994,488],{"class":487},[477,1996,635],{"class":487},[477,1998,1999],{"class":620},"6 open-ended questions for a first session",[477,2001,641],{"class":487},[477,2003,888],{"class":487},[477,2005,2006,2009,2011],{"class":479,"line":1045},[477,2007,2008],{"class":546},"        items",[477,2010,488],{"class":487},[477,2012,1477],{"class":546},[477,2014,2015,2018,2021,2023,2025,2028,2030,2032,2035,2037,2039,2041,2043],{"class":479,"line":1050},[477,2016,2017],{"class":487},"          {",[477,2019,2020],{"class":546}," text",[477,2022,488],{"class":487},[477,2024,635],{"class":487},[477,2026,2027],{"class":620},"What is the biggest challenge you face with X?",[477,2029,641],{"class":487},[477,2031,627],{"class":487},[477,2033,2034],{"class":546}," category",[477,2036,488],{"class":487},[477,2038,635],{"class":487},[477,2040,1852],{"class":620},[477,2042,641],{"class":487},[477,2044,1169],{"class":487},[477,2046,2047,2049,2051,2053,2055,2058,2060,2062,2065,2067,2069,2071,2073],{"class":479,"line":1060},[477,2048,2017],{"class":487},[477,2050,2020],{"class":546},[477,2052,488],{"class":487},[477,2054,635],{"class":487},[477,2056,2057],{"class":620},"How are you handling X today?",[477,2059,641],{"class":487},[477,2061,627],{"class":487},[477,2063,2064],{"class":546},"                  category",[477,2066,488],{"class":487},[477,2068,635],{"class":487},[477,2070,1852],{"class":620},[477,2072,641],{"class":487},[477,2074,1169],{"class":487},[477,2076,2077,2079,2081,2083,2085,2088,2090,2092,2095,2097,2099,2101,2103],{"class":479,"line":1081},[477,2078,2017],{"class":487},[477,2080,2020],{"class":546},[477,2082,488],{"class":487},[477,2084,635],{"class":487},[477,2086,2087],{"class":620},"What have you tried that did not work?",[477,2089,641],{"class":487},[477,2091,627],{"class":487},[477,2093,2094],{"class":546},"         category",[477,2096,488],{"class":487},[477,2098,635],{"class":487},[477,2100,1852],{"class":620},[477,2102,641],{"class":487},[477,2104,1169],{"class":487},[477,2106,2107,2110],{"class":479,"line":1105},[477,2108,2109],{"class":546},"        ]",[477,2111,888],{"class":487},[477,2113,2114],{"class":479,"line":1141},[477,2115,2116],{"class":487},"      },\n",[477,2118,2119,2122],{"class":479,"line":1147},[477,2120,2121],{"class":546},"    ]",[477,2123,888],{"class":487},[477,2125,2126],{"class":479,"line":1172},[477,2127,822],{"class":487},[477,2129,2130],{"class":479,"line":1177},[477,2131,935],{"emptyLinePlaceholder":934},[477,2133,2134,2137,2139],{"class":479,"line":1617},[477,2135,2136],{"class":483},"  sessions",[477,2138,488],{"class":487},[477,2140,491],{"class":487},[477,2142,2143,2145,2147,2149,2152,2154],{"class":479,"line":1672},[477,2144,893],{"class":483},[477,2146,488],{"class":487},[477,2148,635],{"class":487},[477,2150,2151],{"class":620},"Sessions",[477,2153,641],{"class":487},[477,2155,888],{"class":487},[477,2157,2158,2161,2163,2165,2168,2170],{"class":479,"line":1687},[477,2159,2160],{"class":483},"    singularLabel",[477,2162,488],{"class":487},[477,2164,635],{"class":487},[477,2166,2167],{"class":620},"Session",[477,2169,641],{"class":487},[477,2171,888],{"class":487},[477,2173,2174,2176,2178],{"class":479,"line":1692},[477,2175,1229],{"class":483},[477,2177,488],{"class":487},[477,2179,491],{"class":487},[477,2181,2183,2186,2188,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2212,2214],{"class":479,"line":2182},31,[477,2184,2185],{"class":483},"      participant",[477,2187,488],{"class":487},[477,2189,2190],{"class":487},"  {",[477,2192,1157],{"class":483},[477,2194,488],{"class":487},[477,2196,635],{"class":487},[477,2198,1252],{"class":620},[477,2200,641],{"class":487},[477,2202,627],{"class":487},[477,2204,1259],{"class":483},[477,2206,488],{"class":487},[477,2208,635],{"class":487},[477,2210,2211],{"class":620},"Participant Name",[477,2213,641],{"class":487},[477,2215,1169],{"class":487},[477,2217,2219,2222,2224,2227,2229,2231,2233,2236,2238,2240,2242,2244,2246,2249,2251],{"class":479,"line":2218},32,[477,2220,2221],{"class":483},"      date",[477,2223,488],{"class":487},[477,2225,2226],{"class":487},"         {",[477,2228,1157],{"class":483},[477,2230,488],{"class":487},[477,2232,635],{"class":487},[477,2234,2235],{"class":620},"date",[477,2237,641],{"class":487},[477,2239,627],{"class":487},[477,2241,1259],{"class":483},[477,2243,488],{"class":487},[477,2245,635],{"class":487},[477,2247,2248],{"class":620},"Date",[477,2250,641],{"class":487},[477,2252,1169],{"class":487},[477,2254,2256,2259,2261],{"class":479,"line":2255},33,[477,2257,2258],{"class":483},"      overallRating",[477,2260,488],{"class":487},[477,2262,491],{"class":487},[477,2264,2266,2269,2271,2273,2276,2278],{"class":479,"line":2265},34,[477,2267,2268],{"class":483},"        type",[477,2270,488],{"class":487},[477,2272,635],{"class":487},[477,2274,2275],{"class":620},"segmented",[477,2277,641],{"class":487},[477,2279,888],{"class":487},[477,2281,2283,2285,2287,2289,2292,2294],{"class":479,"line":2282},35,[477,2284,1976],{"class":483},[477,2286,488],{"class":487},[477,2288,635],{"class":487},[477,2290,2291],{"class":620},"Overall Rating",[477,2293,641],{"class":487},[477,2295,888],{"class":487},[477,2297,2299,2302,2304],{"class":479,"line":2298},36,[477,2300,2301],{"class":483},"        options",[477,2303,488],{"class":487},[477,2305,1477],{"class":546},[477,2307,2309,2311,2313,2315,2317,2320,2322,2324,2326,2328,2330,2333,2335],{"class":479,"line":2308},37,[477,2310,2017],{"class":487},[477,2312,1649],{"class":546},[477,2314,488],{"class":487},[477,2316,635],{"class":487},[477,2318,2319],{"class":620},"negative",[477,2321,641],{"class":487},[477,2323,627],{"class":487},[477,2325,592],{"class":546},[477,2327,488],{"class":487},[477,2329,635],{"class":487},[477,2331,2332],{"class":620},"👎",[477,2334,641],{"class":487},[477,2336,1169],{"class":487},[477,2338,2340,2342,2344,2346,2348,2351,2353,2355,2358,2360,2362,2365,2367],{"class":479,"line":2339},38,[477,2341,2017],{"class":487},[477,2343,1649],{"class":546},[477,2345,488],{"class":487},[477,2347,635],{"class":487},[477,2349,2350],{"class":620},"neutral",[477,2352,641],{"class":487},[477,2354,627],{"class":487},[477,2356,2357],{"class":546},"  label",[477,2359,488],{"class":487},[477,2361,635],{"class":487},[477,2363,2364],{"class":620},"😐",[477,2366,641],{"class":487},[477,2368,1169],{"class":487},[477,2370,2372,2374,2376,2378,2380,2383,2385,2387,2389,2391,2393,2396,2398],{"class":479,"line":2371},39,[477,2373,2017],{"class":487},[477,2375,1649],{"class":546},[477,2377,488],{"class":487},[477,2379,635],{"class":487},[477,2381,2382],{"class":620},"positive",[477,2384,641],{"class":487},[477,2386,627],{"class":487},[477,2388,592],{"class":546},[477,2390,488],{"class":487},[477,2392,635],{"class":487},[477,2394,2395],{"class":620},"👍",[477,2397,641],{"class":487},[477,2399,1169],{"class":487},[477,2401,2403,2405],{"class":479,"line":2402},40,[477,2404,2109],{"class":546},[477,2406,888],{"class":487},[477,2408,2410],{"class":479,"line":2409},41,[477,2411,2116],{"class":487},[477,2413,2415,2418,2420,2422,2424,2426,2428,2431,2433,2435,2437,2439,2441,2444,2446],{"class":479,"line":2414},42,[477,2416,2417],{"class":483},"      tags",[477,2419,488],{"class":487},[477,2421,2017],{"class":487},[477,2423,1157],{"class":483},[477,2425,488],{"class":487},[477,2427,635],{"class":487},[477,2429,2430],{"class":620},"tags",[477,2432,641],{"class":487},[477,2434,627],{"class":487},[477,2436,893],{"class":483},[477,2438,488],{"class":487},[477,2440,635],{"class":487},[477,2442,2443],{"class":620},"Key Themes",[477,2445,641],{"class":487},[477,2447,1169],{"class":487},[477,2449,2451],{"class":479,"line":2450},43,[477,2452,2453],{"class":861},"      // One textarea per question from the 'questions' collection\n",[477,2455,2457,2460,2462],{"class":479,"line":2456},44,[477,2458,2459],{"class":483},"      responses",[477,2461,488],{"class":487},[477,2463,491],{"class":487},[477,2465,2467,2469,2471,2473,2476,2478],{"class":479,"line":2466},45,[477,2468,2268],{"class":483},[477,2470,488],{"class":487},[477,2472,635],{"class":487},[477,2474,2475],{"class":620},"linked-responses",[477,2477,641],{"class":487},[477,2479,888],{"class":487},[477,2481,2483,2485,2487,2489,2492,2494],{"class":479,"line":2482},46,[477,2484,1976],{"class":483},[477,2486,488],{"class":487},[477,2488,635],{"class":487},[477,2490,2491],{"class":620},"Question Responses",[477,2493,641],{"class":487},[477,2495,888],{"class":487},[477,2497,2499,2502,2504,2506,2509,2511],{"class":479,"line":2498},47,[477,2500,2501],{"class":483},"        sourceCollection",[477,2503,488],{"class":487},[477,2505,635],{"class":487},[477,2507,2508],{"class":620},"questions",[477,2510,641],{"class":487},[477,2512,888],{"class":487},[477,2514,2516,2519,2521,2523,2525,2527],{"class":479,"line":2515},48,[477,2517,2518],{"class":483},"        questionField",[477,2520,488],{"class":487},[477,2522,635],{"class":487},[477,2524,1252],{"class":620},[477,2526,641],{"class":487},[477,2528,888],{"class":487},[477,2530,2532],{"class":479,"line":2531},49,[477,2533,2116],{"class":487},[477,2535,2537,2540,2542,2544,2546,2548,2550,2553,2555,2557,2559,2561,2563,2566,2568,2570,2573,2575,2578],{"class":479,"line":2536},50,[477,2538,2539],{"class":483},"      keyTakeaway",[477,2541,488],{"class":487},[477,2543,1243],{"class":487},[477,2545,1157],{"class":483},[477,2547,488],{"class":487},[477,2549,635],{"class":487},[477,2551,2552],{"class":620},"textarea",[477,2554,641],{"class":487},[477,2556,627],{"class":487},[477,2558,592],{"class":483},[477,2560,488],{"class":487},[477,2562,635],{"class":487},[477,2564,2565],{"class":620},"Key Takeaway",[477,2567,641],{"class":487},[477,2569,627],{"class":487},[477,2571,2572],{"class":483}," colSpan",[477,2574,488],{"class":487},[477,2576,2577],{"class":580}," 2",[477,2579,1169],{"class":487},[477,2581,2583],{"class":479,"line":2582},51,[477,2584,1144],{"class":487},[477,2586,2588,2591,2593,2596,2599,2601],{"class":479,"line":2587},52,[477,2589,2590],{"class":483},"    editMode",[477,2592,488],{"class":487},[477,2594,2595],{"class":487},"  '",[477,2597,2598],{"class":620},"modal",[477,2600,641],{"class":487},[477,2602,888],{"class":487},[477,2604,2606,2609,2611,2613,2616,2618],{"class":479,"line":2605},53,[477,2607,2608],{"class":483},"    modalSize",[477,2610,488],{"class":487},[477,2612,635],{"class":487},[477,2614,2615],{"class":620},"3xl",[477,2617,641],{"class":487},[477,2619,888],{"class":487},[477,2621,2623],{"class":479,"line":2622},54,[477,2624,822],{"class":487},[477,2626,2628],{"class":479,"line":2627},55,[477,2629,929],{"class":487},[477,2631,2633],{"class":479,"line":2632},56,[477,2634,935],{"emptyLinePlaceholder":934},[477,2636,2638,2640,2642],{"class":479,"line":2637},57,[477,2639,977],{"class":483},[477,2641,488],{"class":487},[477,2643,491],{"class":487},[477,2645,2647,2650,2652,2655,2658,2660,2662,2664,2666,2668,2670,2672,2675,2678,2681,2683,2685],{"class":479,"line":2646},58,[477,2648,2649],{"class":483},"  sessionCount",[477,2651,488],{"class":487},[477,2653,2654],{"class":487},"    {",[477,2656,2657],{"class":483}," compute",[477,2659,488],{"class":487},[477,2661,502],{"class":487},[477,2663,1348],{"class":505},[477,2665,509],{"class":487},[477,2667,513],{"class":512},[477,2669,1348],{"class":524},[477,2671,533],{"class":487},[477,2673,2674],{"class":524},"sessions",[477,2676,2677],{"class":487},"?.",[477,2679,2680],{"class":524},"length",[477,2682,1028],{"class":487},[477,2684,1040],{"class":580},[477,2686,1169],{"class":487},[477,2688,2690,2693,2695],{"class":479,"line":2689},59,[477,2691,2692],{"class":483},"  allThemes",[477,2694,488],{"class":487},[477,2696,491],{"class":487},[477,2698,2700,2702,2704,2706,2708,2710],{"class":479,"line":2699},60,[477,2701,997],{"class":483},[477,2703,488],{"class":487},[477,2705,502],{"class":487},[477,2707,1348],{"class":505},[477,2709,509],{"class":487},[477,2711,1014],{"class":512},[477,2713,2715,2718,2721,2724,2727,2729,2731,2733,2735,2737,2739,2742,2744,2747,2749,2752,2754,2756,2758,2761],{"class":479,"line":2714},61,[477,2716,2717],{"class":546},"      [",[477,2719,2720],{"class":487},"...new",[477,2722,2723],{"class":604}," Set",[477,2725,2726],{"class":546},"((",[477,2728,1196],{"class":524},[477,2730,533],{"class":487},[477,2732,2674],{"class":524},[477,2734,1028],{"class":487},[477,2736,1369],{"class":546},[477,2738,533],{"class":487},[477,2740,2741],{"class":604},"flatMap",[477,2743,608],{"class":546},[477,2745,2746],{"class":505},"s",[477,2748,513],{"class":512},[477,2750,2751],{"class":524}," s",[477,2753,533],{"class":487},[477,2755,2430],{"class":524},[477,2757,1028],{"class":487},[477,2759,2760],{"class":546}," []))]",[477,2762,888],{"class":487},[477,2764,2766],{"class":479,"line":2765},62,[477,2767,822],{"class":487},[477,2769,2771,2774,2776],{"class":479,"line":2770},63,[477,2772,2773],{"class":483},"  positiveCount",[477,2775,488],{"class":487},[477,2777,491],{"class":487},[477,2779,2781,2783,2785,2787,2789,2791],{"class":479,"line":2780},64,[477,2782,997],{"class":483},[477,2784,488],{"class":487},[477,2786,502],{"class":487},[477,2788,1348],{"class":505},[477,2790,509],{"class":487},[477,2792,1014],{"class":512},[477,2794,2796,2798,2800,2802,2804,2806,2808,2810,2813,2815,2817,2819,2821,2823,2826,2828,2830,2832,2834,2836,2838,2840],{"class":479,"line":2795},65,[477,2797,1357],{"class":546},[477,2799,1196],{"class":524},[477,2801,533],{"class":487},[477,2803,2674],{"class":524},[477,2805,1028],{"class":487},[477,2807,1369],{"class":546},[477,2809,533],{"class":487},[477,2811,2812],{"class":604},"filter",[477,2814,608],{"class":546},[477,2816,2746],{"class":505},[477,2818,513],{"class":512},[477,2820,2751],{"class":524},[477,2822,533],{"class":487},[477,2824,2825],{"class":524},"overallRating",[477,2827,553],{"class":487},[477,2829,635],{"class":487},[477,2831,2382],{"class":620},[477,2833,641],{"class":487},[477,2835,614],{"class":546},[477,2837,533],{"class":487},[477,2839,2680],{"class":524},[477,2841,888],{"class":487},[477,2843,2845],{"class":479,"line":2844},66,[477,2846,822],{"class":487},[477,2848,2850],{"class":479,"line":2849},67,[477,2851,929],{"class":487},[477,2853,2855],{"class":479,"line":2854},68,[477,2856,935],{"emptyLinePlaceholder":934},[477,2858,2860,2863,2865],{"class":479,"line":2859},69,[477,2861,2862],{"class":483},"produces",[477,2864,488],{"class":487},[477,2866,491],{"class":487},[477,2868,2870,2872,2874,2876,2879,2881],{"class":479,"line":2869},70,[477,2871,2649],{"class":483},[477,2873,488],{"class":487},[477,2875,2595],{"class":487},[477,2877,2878],{"class":620},"derived.sessionCount",[477,2880,641],{"class":487},[477,2882,888],{"class":487},[477,2884,2886,2889,2891,2894,2897,2899],{"class":479,"line":2885},71,[477,2887,2888],{"class":483},"  themes",[477,2890,488],{"class":487},[477,2892,2893],{"class":487},"        '",[477,2895,2896],{"class":620},"derived.allThemes",[477,2898,641],{"class":487},[477,2900,888],{"class":487},[477,2902,2904,2907,2909,2911,2914,2916],{"class":479,"line":2903},72,[477,2905,2906],{"class":483},"  positiveRate",[477,2908,488],{"class":487},[477,2910,2595],{"class":487},[477,2912,2913],{"class":620},"derived.positiveRate",[477,2915,641],{"class":487},[477,2917,888],{"class":487},[477,2919,2921],{"class":479,"line":2920},73,[477,2922,929],{"class":487},[459,2924,2926],{"id":2925},"pattern-tab-layout-with-live-badges","Pattern: Tab layout with live badges",[455,2928,2929],{},"Show real-time item counts in tab labels:",[467,2931,2933],{"className":469,"code":2932,"language":471,"meta":472,"style":472},"layout: {\n  tabs: [\n    {\n      id: 'questions',\n      label: 'Questions',\n      badge: ({ collections }) => collections.questions?.length || undefined,\n      rows: [\n        { cols: [{ type: 'collection', collectionKey: 'questions', span: 12 }] },\n      ],\n    },\n    {\n      id: 'sessions',\n      label: 'Sessions',\n      badge: ({ collections }) => collections.sessions?.length || undefined,\n      rows: [\n        { cols: [{ type: 'collection', collectionKey: 'sessions', span: 12 }] },\n      ],\n    },\n    {\n      id: 'insights',\n      label: 'Insights',\n      rows: [\n        { cols: [\n          { type: 'stats', span: 12 },\n          { type: 'viz',   span: 12 },\n        ]},\n      ],\n    },\n  ],\n}\n",[474,2934,2935,2944,2953,2958,2973,2988,3019,3028,3084,3091,3095,3099,3113,3127,3155,3163,3211,3217,3221,3225,3240,3255,3263,3273,3298,3324,3330,3336,3340,3347],{"__ignoreMap":472},[477,2936,2937,2940,2942],{"class":479,"line":480},[477,2938,2939],{"class":483},"layout",[477,2941,488],{"class":487},[477,2943,491],{"class":487},[477,2945,2946,2949,2951],{"class":479,"line":494},[477,2947,2948],{"class":483},"  tabs",[477,2950,488],{"class":487},[477,2952,1477],{"class":546},[477,2954,2955],{"class":479,"line":518},[477,2956,2957],{"class":487},"    {\n",[477,2959,2960,2963,2965,2967,2969,2971],{"class":479,"line":539},[477,2961,2962],{"class":546},"      id",[477,2964,488],{"class":487},[477,2966,635],{"class":487},[477,2968,2508],{"class":620},[477,2970,641],{"class":487},[477,2972,888],{"class":487},[477,2974,2975,2978,2980,2982,2984,2986],{"class":479,"line":568},[477,2976,2977],{"class":546},"      label",[477,2979,488],{"class":487},[477,2981,635],{"class":487},[477,2983,1737],{"class":620},[477,2985,641],{"class":487},[477,2987,888],{"class":487},[477,2989,2990,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3016],{"class":479,"line":647},[477,2991,2992],{"class":604},"      badge",[477,2994,488],{"class":487},[477,2996,502],{"class":487},[477,2998,1348],{"class":505},[477,3000,509],{"class":487},[477,3002,513],{"class":512},[477,3004,1348],{"class":524},[477,3006,533],{"class":487},[477,3008,2508],{"class":524},[477,3010,2677],{"class":487},[477,3012,2680],{"class":524},[477,3014,3015],{"class":487}," ||",[477,3017,3018],{"class":487}," undefined,\n",[477,3020,3021,3024,3026],{"class":479,"line":708},[477,3022,3023],{"class":546},"      rows",[477,3025,488],{"class":487},[477,3027,1477],{"class":546},[477,3029,3030,3033,3036,3038,3041,3043,3045,3047,3049,3052,3054,3056,3059,3061,3063,3065,3067,3069,3072,3074,3077,3079,3082],{"class":479,"line":770},[477,3031,3032],{"class":487},"        {",[477,3034,3035],{"class":546}," cols",[477,3037,488],{"class":487},[477,3039,3040],{"class":546}," [",[477,3042,1633],{"class":487},[477,3044,1157],{"class":546},[477,3046,488],{"class":487},[477,3048,635],{"class":487},[477,3050,3051],{"class":620},"collection",[477,3053,641],{"class":487},[477,3055,627],{"class":487},[477,3057,3058],{"class":546}," collectionKey",[477,3060,488],{"class":487},[477,3062,635],{"class":487},[477,3064,2508],{"class":620},[477,3066,641],{"class":487},[477,3068,627],{"class":487},[477,3070,3071],{"class":546}," span",[477,3073,488],{"class":487},[477,3075,3076],{"class":580}," 12",[477,3078,1664],{"class":487},[477,3080,3081],{"class":546},"] ",[477,3083,929],{"class":487},[477,3085,3086,3089],{"class":479,"line":819},[477,3087,3088],{"class":546},"      ]",[477,3090,888],{"class":487},[477,3092,3093],{"class":479,"line":825},[477,3094,1144],{"class":487},[477,3096,3097],{"class":479,"line":947},[477,3098,2957],{"class":487},[477,3100,3101,3103,3105,3107,3109,3111],{"class":479,"line":964},[477,3102,2962],{"class":546},[477,3104,488],{"class":487},[477,3106,635],{"class":487},[477,3108,2674],{"class":620},[477,3110,641],{"class":487},[477,3112,888],{"class":487},[477,3114,3115,3117,3119,3121,3123,3125],{"class":479,"line":969},[477,3116,2977],{"class":546},[477,3118,488],{"class":487},[477,3120,635],{"class":487},[477,3122,2151],{"class":620},[477,3124,641],{"class":487},[477,3126,888],{"class":487},[477,3128,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151,3153],{"class":479,"line":974},[477,3130,2992],{"class":604},[477,3132,488],{"class":487},[477,3134,502],{"class":487},[477,3136,1348],{"class":505},[477,3138,509],{"class":487},[477,3140,513],{"class":512},[477,3142,1348],{"class":524},[477,3144,533],{"class":487},[477,3146,2674],{"class":524},[477,3148,2677],{"class":487},[477,3150,2680],{"class":524},[477,3152,3015],{"class":487},[477,3154,3018],{"class":487},[477,3156,3157,3159,3161],{"class":479,"line":984},[477,3158,3023],{"class":546},[477,3160,488],{"class":487},[477,3162,1477],{"class":546},[477,3164,3165,3167,3169,3171,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3195,3197,3199,3201,3203,3205,3207,3209],{"class":479,"line":994},[477,3166,3032],{"class":487},[477,3168,3035],{"class":546},[477,3170,488],{"class":487},[477,3172,3040],{"class":546},[477,3174,1633],{"class":487},[477,3176,1157],{"class":546},[477,3178,488],{"class":487},[477,3180,635],{"class":487},[477,3182,3051],{"class":620},[477,3184,641],{"class":487},[477,3186,627],{"class":487},[477,3188,3058],{"class":546},[477,3190,488],{"class":487},[477,3192,635],{"class":487},[477,3194,2674],{"class":620},[477,3196,641],{"class":487},[477,3198,627],{"class":487},[477,3200,3071],{"class":546},[477,3202,488],{"class":487},[477,3204,3076],{"class":580},[477,3206,1664],{"class":487},[477,3208,3081],{"class":546},[477,3210,929],{"class":487},[477,3212,3213,3215],{"class":479,"line":1017},[477,3214,3088],{"class":546},[477,3216,888],{"class":487},[477,3218,3219],{"class":479,"line":1045},[477,3220,1144],{"class":487},[477,3222,3223],{"class":479,"line":1050},[477,3224,2957],{"class":487},[477,3226,3227,3229,3231,3233,3236,3238],{"class":479,"line":1060},[477,3228,2962],{"class":546},[477,3230,488],{"class":487},[477,3232,635],{"class":487},[477,3234,3235],{"class":620},"insights",[477,3237,641],{"class":487},[477,3239,888],{"class":487},[477,3241,3242,3244,3246,3248,3251,3253],{"class":479,"line":1081},[477,3243,2977],{"class":546},[477,3245,488],{"class":487},[477,3247,635],{"class":487},[477,3249,3250],{"class":620},"Insights",[477,3252,641],{"class":487},[477,3254,888],{"class":487},[477,3256,3257,3259,3261],{"class":479,"line":1105},[477,3258,3023],{"class":546},[477,3260,488],{"class":487},[477,3262,1477],{"class":546},[477,3264,3265,3267,3269,3271],{"class":479,"line":1141},[477,3266,3032],{"class":487},[477,3268,3035],{"class":546},[477,3270,488],{"class":487},[477,3272,1477],{"class":546},[477,3274,3275,3277,3279,3281,3283,3286,3288,3290,3292,3294,3296],{"class":479,"line":1147},[477,3276,2017],{"class":487},[477,3278,1157],{"class":546},[477,3280,488],{"class":487},[477,3282,635],{"class":487},[477,3284,3285],{"class":620},"stats",[477,3287,641],{"class":487},[477,3289,627],{"class":487},[477,3291,3071],{"class":546},[477,3293,488],{"class":487},[477,3295,3076],{"class":580},[477,3297,1169],{"class":487},[477,3299,3300,3302,3304,3306,3308,3311,3313,3315,3318,3320,3322],{"class":479,"line":1172},[477,3301,2017],{"class":487},[477,3303,1157],{"class":546},[477,3305,488],{"class":487},[477,3307,635],{"class":487},[477,3309,3310],{"class":620},"viz",[477,3312,641],{"class":487},[477,3314,627],{"class":487},[477,3316,3317],{"class":546},"   span",[477,3319,488],{"class":487},[477,3321,3076],{"class":580},[477,3323,1169],{"class":487},[477,3325,3326,3328],{"class":479,"line":1177},[477,3327,2109],{"class":546},[477,3329,929],{"class":487},[477,3331,3332,3334],{"class":479,"line":1617},[477,3333,3088],{"class":546},[477,3335,888],{"class":487},[477,3337,3338],{"class":479,"line":1672},[477,3339,1144],{"class":487},[477,3341,3342,3345],{"class":479,"line":1687},[477,3343,3344],{"class":546},"  ]",[477,3346,888],{"class":487},[477,3348,3349],{"class":479,"line":1692},[477,3350,828],{"class":487},[459,3352,3354],{"id":3353},"pattern-export-and-copy-actions","Pattern: Export and copy actions",[467,3356,3358],{"className":469,"code":3357,"language":471,"meta":472,"style":472},"actions: [\n  {\n    type: 'copy-text',\n    label: 'Copy Question List',\n    icon: 'i-lucide-clipboard-list',\n    text: ({ collections }) =>\n      (collections.questions ?? [])\n        .map((q, i) => `${i + 1}. ${q.text}`)\n        .join('\\n\\n'),\n  },\n  {\n    type: 'export-markdown',\n    label: 'Export Full Report',\n    icon: 'i-lucide-file-text',\n    markdown: ({ derived, collections }) => [\n      `# Session Report`,\n      ``,\n      `**${derived.sessionCount} sessions completed**`,\n      ``,\n      `## Recurring Themes`,\n      ...(derived.allThemes ?? []).map((t: string) => `- ${t}`),\n      ``,\n      `## Session Notes`,\n      ...(collections.sessions ?? []).map((s: any) =>\n        `### ${s.participant} — ${s.date}\\n${s.keyTakeaway ?? '_No takeaway recorded._'}`\n      ),\n    ].join('\\n'),\n  },\n  {\n    type: 'reset',\n    label: 'Reset All Data',\n    icon: 'i-lucide-trash-2',\n    confirm: true,\n  },\n]\n",[474,3359,3360,3369,3373,3388,3403,3419,3434,3447,3500,3520,3524,3528,3543,3558,3573,3594,3606,3613,3638,3644,3655,3708,3714,3725,3760,3814,3821,3841,3845,3849,3864,3879,3894,3905,3909],{"__ignoreMap":472},[477,3361,3362,3365,3367],{"class":479,"line":480},[477,3363,3364],{"class":483},"actions",[477,3366,488],{"class":487},[477,3368,1477],{"class":524},[477,3370,3371],{"class":479,"line":494},[477,3372,1482],{"class":487},[477,3374,3375,3377,3379,3381,3384,3386],{"class":479,"line":518},[477,3376,876],{"class":546},[477,3378,488],{"class":487},[477,3380,635],{"class":487},[477,3382,3383],{"class":620},"copy-text",[477,3385,641],{"class":487},[477,3387,888],{"class":487},[477,3389,3390,3392,3394,3396,3399,3401],{"class":479,"line":539},[477,3391,893],{"class":546},[477,3393,488],{"class":487},[477,3395,635],{"class":487},[477,3397,3398],{"class":620},"Copy Question List",[477,3400,641],{"class":487},[477,3402,888],{"class":487},[477,3404,3405,3408,3410,3412,3415,3417],{"class":479,"line":568},[477,3406,3407],{"class":546},"    icon",[477,3409,488],{"class":487},[477,3411,635],{"class":487},[477,3413,3414],{"class":620},"i-lucide-clipboard-list",[477,3416,641],{"class":487},[477,3418,888],{"class":487},[477,3420,3421,3424,3426,3428,3430,3432],{"class":479,"line":647},[477,3422,3423],{"class":604},"    text",[477,3425,488],{"class":487},[477,3427,502],{"class":487},[477,3429,1348],{"class":505},[477,3431,509],{"class":487},[477,3433,1014],{"class":512},[477,3435,3436,3438,3440,3443,3445],{"class":479,"line":708},[477,3437,1548],{"class":524},[477,3439,533],{"class":487},[477,3441,3442],{"class":524},"questions ",[477,3444,1556],{"class":487},[477,3446,1559],{"class":524},[477,3448,3449,3451,3453,3455,3457,3460,3462,3465,3467,3469,3471,3474,3477,3480,3482,3485,3488,3490,3492,3494,3497],{"class":479,"line":770},[477,3450,1564],{"class":487},[477,3452,1622],{"class":604},[477,3454,608],{"class":524},[477,3456,608],{"class":487},[477,3458,3459],{"class":505},"q",[477,3461,627],{"class":487},[477,3463,3464],{"class":505}," i",[477,3466,614],{"class":487},[477,3468,513],{"class":512},[477,3470,597],{"class":487},[477,3472,3473],{"class":524},"i ",[477,3475,3476],{"class":487},"+",[477,3478,3479],{"class":580}," 1",[477,3481,617],{"class":487},[477,3483,3484],{"class":620},". ",[477,3486,3487],{"class":487},"${",[477,3489,3459],{"class":524},[477,3491,533],{"class":487},[477,3493,1252],{"class":524},[477,3495,3496],{"class":487},"}`",[477,3498,3499],{"class":524},")\n",[477,3501,3502,3504,3507,3509,3511,3514,3516,3518],{"class":479,"line":819},[477,3503,1564],{"class":487},[477,3505,3506],{"class":604},"join",[477,3508,608],{"class":524},[477,3510,641],{"class":487},[477,3512,3513],{"class":524},"\\n\\n",[477,3515,641],{"class":487},[477,3517,614],{"class":524},[477,3519,888],{"class":487},[477,3521,3522],{"class":479,"line":825},[477,3523,822],{"class":487},[477,3525,3526],{"class":479,"line":947},[477,3527,1482],{"class":487},[477,3529,3530,3532,3534,3536,3539,3541],{"class":479,"line":964},[477,3531,876],{"class":546},[477,3533,488],{"class":487},[477,3535,635],{"class":487},[477,3537,3538],{"class":620},"export-markdown",[477,3540,641],{"class":487},[477,3542,888],{"class":487},[477,3544,3545,3547,3549,3551,3554,3556],{"class":479,"line":969},[477,3546,893],{"class":546},[477,3548,488],{"class":487},[477,3550,635],{"class":487},[477,3552,3553],{"class":620},"Export Full Report",[477,3555,641],{"class":487},[477,3557,888],{"class":487},[477,3559,3560,3562,3564,3566,3569,3571],{"class":479,"line":974},[477,3561,3407],{"class":546},[477,3563,488],{"class":487},[477,3565,635],{"class":487},[477,3567,3568],{"class":620},"i-lucide-file-text",[477,3570,641],{"class":487},[477,3572,888],{"class":487},[477,3574,3575,3578,3580,3582,3584,3586,3588,3590,3592],{"class":479,"line":984},[477,3576,3577],{"class":604},"    markdown",[477,3579,488],{"class":487},[477,3581,502],{"class":487},[477,3583,506],{"class":505},[477,3585,627],{"class":487},[477,3587,1348],{"class":505},[477,3589,509],{"class":487},[477,3591,513],{"class":512},[477,3593,1477],{"class":524},[477,3595,3596,3599,3602,3604],{"class":479,"line":994},[477,3597,3598],{"class":487},"      `",[477,3600,3601],{"class":620},"# Session Report",[477,3603,624],{"class":487},[477,3605,888],{"class":487},[477,3607,3608,3611],{"class":479,"line":1017},[477,3609,3610],{"class":487},"      ``",[477,3612,888],{"class":487},[477,3614,3615,3617,3620,3622,3624,3626,3629,3631,3634,3636],{"class":479,"line":1045},[477,3616,3598],{"class":487},[477,3618,3619],{"class":620},"**",[477,3621,3487],{"class":487},[477,3623,977],{"class":524},[477,3625,533],{"class":487},[477,3627,3628],{"class":524},"sessionCount",[477,3630,617],{"class":487},[477,3632,3633],{"class":620}," sessions completed**",[477,3635,624],{"class":487},[477,3637,888],{"class":487},[477,3639,3640,3642],{"class":479,"line":1050},[477,3641,3610],{"class":487},[477,3643,888],{"class":487},[477,3645,3646,3648,3651,3653],{"class":479,"line":1060},[477,3647,3598],{"class":487},[477,3649,3650],{"class":620},"## Recurring Themes",[477,3652,624],{"class":487},[477,3654,888],{"class":487},[477,3656,3657,3660,3663,3665,3668,3670,3672,3674,3676,3678,3680,3683,3685,3688,3690,3692,3695,3698,3700,3702,3704,3706],{"class":479,"line":1081},[477,3658,3659],{"class":487},"      ...",[477,3661,3662],{"class":524},"(derived",[477,3664,533],{"class":487},[477,3666,3667],{"class":524},"allThemes ",[477,3669,1556],{"class":487},[477,3671,1369],{"class":524},[477,3673,533],{"class":487},[477,3675,1622],{"class":604},[477,3677,608],{"class":524},[477,3679,608],{"class":487},[477,3681,3682],{"class":505},"t",[477,3684,488],{"class":487},[477,3686,3687],{"class":483}," string",[477,3689,614],{"class":487},[477,3691,513],{"class":512},[477,3693,3694],{"class":487}," `",[477,3696,3697],{"class":620},"- ",[477,3699,3487],{"class":487},[477,3701,3682],{"class":524},[477,3703,3496],{"class":487},[477,3705,614],{"class":524},[477,3707,888],{"class":487},[477,3709,3710,3712],{"class":479,"line":1105},[477,3711,3610],{"class":487},[477,3713,888],{"class":487},[477,3715,3716,3718,3721,3723],{"class":479,"line":1141},[477,3717,3598],{"class":487},[477,3719,3720],{"class":620},"## Session Notes",[477,3722,624],{"class":487},[477,3724,888],{"class":487},[477,3726,3727,3729,3732,3734,3737,3739,3741,3743,3745,3747,3749,3751,3753,3756,3758],{"class":479,"line":1147},[477,3728,3659],{"class":487},[477,3730,3731],{"class":524},"(collections",[477,3733,533],{"class":487},[477,3735,3736],{"class":524},"sessions ",[477,3738,1556],{"class":487},[477,3740,1369],{"class":524},[477,3742,533],{"class":487},[477,3744,1622],{"class":604},[477,3746,608],{"class":524},[477,3748,608],{"class":487},[477,3750,2746],{"class":505},[477,3752,488],{"class":487},[477,3754,3755],{"class":483}," any",[477,3757,614],{"class":487},[477,3759,1014],{"class":512},[477,3761,3762,3765,3768,3770,3772,3774,3777,3779,3782,3784,3786,3788,3790,3792,3795,3797,3799,3801,3804,3806,3808,3811],{"class":479,"line":1172},[477,3763,3764],{"class":487},"        `",[477,3766,3767],{"class":620},"### ",[477,3769,3487],{"class":487},[477,3771,2746],{"class":524},[477,3773,533],{"class":487},[477,3775,3776],{"class":524},"participant",[477,3778,617],{"class":487},[477,3780,3781],{"class":620}," — ",[477,3783,3487],{"class":487},[477,3785,2746],{"class":524},[477,3787,533],{"class":487},[477,3789,2235],{"class":524},[477,3791,617],{"class":487},[477,3793,3794],{"class":524},"\\n",[477,3796,3487],{"class":487},[477,3798,2746],{"class":524},[477,3800,533],{"class":487},[477,3802,3803],{"class":524},"keyTakeaway ",[477,3805,1556],{"class":487},[477,3807,635],{"class":487},[477,3809,3810],{"class":620},"_No takeaway recorded._",[477,3812,3813],{"class":487},"'}`\n",[477,3815,3816,3819],{"class":479,"line":1177},[477,3817,3818],{"class":524},"      )",[477,3820,888],{"class":487},[477,3822,3823,3825,3827,3829,3831,3833,3835,3837,3839],{"class":479,"line":1617},[477,3824,2121],{"class":524},[477,3826,533],{"class":487},[477,3828,3506],{"class":604},[477,3830,608],{"class":524},[477,3832,641],{"class":487},[477,3834,3794],{"class":524},[477,3836,641],{"class":487},[477,3838,614],{"class":524},[477,3840,888],{"class":487},[477,3842,3843],{"class":479,"line":1672},[477,3844,822],{"class":487},[477,3846,3847],{"class":479,"line":1687},[477,3848,1482],{"class":487},[477,3850,3851,3853,3855,3857,3860,3862],{"class":479,"line":1692},[477,3852,876],{"class":546},[477,3854,488],{"class":487},[477,3856,635],{"class":487},[477,3858,3859],{"class":620},"reset",[477,3861,641],{"class":487},[477,3863,888],{"class":487},[477,3865,3866,3868,3870,3872,3875,3877],{"class":479,"line":2182},[477,3867,893],{"class":546},[477,3869,488],{"class":487},[477,3871,635],{"class":487},[477,3873,3874],{"class":620},"Reset All Data",[477,3876,641],{"class":487},[477,3878,888],{"class":487},[477,3880,3881,3883,3885,3887,3890,3892],{"class":479,"line":2218},[477,3882,3407],{"class":546},[477,3884,488],{"class":487},[477,3886,635],{"class":487},[477,3888,3889],{"class":620},"i-lucide-trash-2",[477,3891,641],{"class":487},[477,3893,888],{"class":487},[477,3895,3896,3899,3901,3903],{"class":479,"line":2255},[477,3897,3898],{"class":546},"    confirm",[477,3900,488],{"class":487},[477,3902,1793],{"class":1792},[477,3904,888],{"class":487},[477,3906,3907],{"class":479,"line":2265},[477,3908,822],{"class":487},[477,3910,3911],{"class":479,"line":2282},[477,3912,3913],{"class":524},"]\n",[459,3915,3917],{"id":3916},"pattern-conditional-field-visibility","Pattern: Conditional field visibility",[455,3919,3920],{},"Hide fields that are not relevant given the current state:",[467,3922,3924],{"className":469,"code":3923,"language":471,"meta":472,"style":472},"fields: {\n  mode: {\n    type: 'segmented',\n    label: 'Mode',\n    options: [\n      { value: 'simple',   label: 'Simple' },\n      { value: 'advanced', label: 'Advanced' },\n    ],\n    default: 'simple',\n  },\n  basicInput: {\n    type: 'number',\n    label: 'Basic Input',\n  },\n  advancedInputA: {\n    type: 'number',\n    label: 'Factor A',\n    hidden: ({ fields }) => fields.mode !== 'advanced',\n  },\n  advancedInputB: {\n    type: 'number',\n    label: 'Factor B',\n    hidden: ({ fields }) => fields.mode !== 'advanced',\n  },\n},\n",[474,3925,3926,3934,3943,3957,3972,3981,4012,4041,4047,4063,4067,4076,4090,4105,4109,4118,4132,4147,4180,4184,4193,4207,4222,4252,4256],{"__ignoreMap":472},[477,3927,3928,3930,3932],{"class":479,"line":480},[477,3929,852],{"class":483},[477,3931,488],{"class":487},[477,3933,491],{"class":487},[477,3935,3936,3939,3941],{"class":479,"line":494},[477,3937,3938],{"class":483},"  mode",[477,3940,488],{"class":487},[477,3942,491],{"class":487},[477,3944,3945,3947,3949,3951,3953,3955],{"class":479,"line":518},[477,3946,876],{"class":483},[477,3948,488],{"class":487},[477,3950,635],{"class":487},[477,3952,2275],{"class":620},[477,3954,641],{"class":487},[477,3956,888],{"class":487},[477,3958,3959,3961,3963,3965,3968,3970],{"class":479,"line":539},[477,3960,893],{"class":483},[477,3962,488],{"class":487},[477,3964,635],{"class":487},[477,3966,3967],{"class":620},"Mode",[477,3969,641],{"class":487},[477,3971,888],{"class":487},[477,3973,3974,3977,3979],{"class":479,"line":568},[477,3975,3976],{"class":483},"    options",[477,3978,488],{"class":487},[477,3980,1477],{"class":546},[477,3982,3983,3986,3988,3990,3992,3995,3997,3999,4001,4003,4005,4008,4010],{"class":479,"line":647},[477,3984,3985],{"class":487},"      {",[477,3987,1649],{"class":546},[477,3989,488],{"class":487},[477,3991,635],{"class":487},[477,3993,3994],{"class":620},"simple",[477,3996,641],{"class":487},[477,3998,627],{"class":487},[477,4000,1259],{"class":546},[477,4002,488],{"class":487},[477,4004,635],{"class":487},[477,4006,4007],{"class":620},"Simple",[477,4009,641],{"class":487},[477,4011,1169],{"class":487},[477,4013,4014,4016,4018,4020,4022,4025,4027,4029,4031,4033,4035,4037,4039],{"class":479,"line":708},[477,4015,3985],{"class":487},[477,4017,1649],{"class":546},[477,4019,488],{"class":487},[477,4021,635],{"class":487},[477,4023,4024],{"class":620},"advanced",[477,4026,641],{"class":487},[477,4028,627],{"class":487},[477,4030,592],{"class":546},[477,4032,488],{"class":487},[477,4034,635],{"class":487},[477,4036,426],{"class":620},[477,4038,641],{"class":487},[477,4040,1169],{"class":487},[477,4042,4043,4045],{"class":479,"line":770},[477,4044,2121],{"class":546},[477,4046,888],{"class":487},[477,4048,4049,4052,4055,4057,4059,4061],{"class":479,"line":819},[477,4050,4051],{"class":542},"    default",[477,4053,4054],{"class":546},": ",[477,4056,641],{"class":487},[477,4058,3994],{"class":620},[477,4060,641],{"class":487},[477,4062,888],{"class":487},[477,4064,4065],{"class":479,"line":825},[477,4066,822],{"class":487},[477,4068,4069,4072,4074],{"class":479,"line":947},[477,4070,4071],{"class":483},"  basicInput",[477,4073,488],{"class":487},[477,4075,491],{"class":487},[477,4077,4078,4080,4082,4084,4086,4088],{"class":479,"line":964},[477,4079,876],{"class":483},[477,4081,488],{"class":487},[477,4083,635],{"class":487},[477,4085,883],{"class":620},[477,4087,641],{"class":487},[477,4089,888],{"class":487},[477,4091,4092,4094,4096,4098,4101,4103],{"class":479,"line":969},[477,4093,893],{"class":483},[477,4095,488],{"class":487},[477,4097,635],{"class":487},[477,4099,4100],{"class":620},"Basic Input",[477,4102,641],{"class":487},[477,4104,888],{"class":487},[477,4106,4107],{"class":479,"line":974},[477,4108,822],{"class":487},[477,4110,4111,4114,4116],{"class":479,"line":984},[477,4112,4113],{"class":483},"  advancedInputA",[477,4115,488],{"class":487},[477,4117,491],{"class":487},[477,4119,4120,4122,4124,4126,4128,4130],{"class":479,"line":994},[477,4121,876],{"class":483},[477,4123,488],{"class":487},[477,4125,635],{"class":487},[477,4127,883],{"class":620},[477,4129,641],{"class":487},[477,4131,888],{"class":487},[477,4133,4134,4136,4138,4140,4143,4145],{"class":479,"line":1017},[477,4135,893],{"class":483},[477,4137,488],{"class":487},[477,4139,635],{"class":487},[477,4141,4142],{"class":620},"Factor A",[477,4144,641],{"class":487},[477,4146,888],{"class":487},[477,4148,4149,4152,4154,4156,4158,4160,4162,4164,4166,4169,4172,4174,4176,4178],{"class":479,"line":1045},[477,4150,4151],{"class":483},"    hidden",[477,4153,488],{"class":487},[477,4155,502],{"class":487},[477,4157,1004],{"class":505},[477,4159,509],{"class":487},[477,4161,513],{"class":512},[477,4163,1004],{"class":524},[477,4165,533],{"class":487},[477,4167,4168],{"class":524},"mode",[477,4170,4171],{"class":487}," !==",[477,4173,635],{"class":487},[477,4175,4024],{"class":620},[477,4177,641],{"class":487},[477,4179,888],{"class":487},[477,4181,4182],{"class":479,"line":1050},[477,4183,822],{"class":487},[477,4185,4186,4189,4191],{"class":479,"line":1060},[477,4187,4188],{"class":483},"  advancedInputB",[477,4190,488],{"class":487},[477,4192,491],{"class":487},[477,4194,4195,4197,4199,4201,4203,4205],{"class":479,"line":1081},[477,4196,876],{"class":483},[477,4198,488],{"class":487},[477,4200,635],{"class":487},[477,4202,883],{"class":620},[477,4204,641],{"class":487},[477,4206,888],{"class":487},[477,4208,4209,4211,4213,4215,4218,4220],{"class":479,"line":1105},[477,4210,893],{"class":483},[477,4212,488],{"class":487},[477,4214,635],{"class":487},[477,4216,4217],{"class":620},"Factor B",[477,4219,641],{"class":487},[477,4221,888],{"class":487},[477,4223,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246,4248,4250],{"class":479,"line":1141},[477,4225,4151],{"class":483},[477,4227,488],{"class":487},[477,4229,502],{"class":487},[477,4231,1004],{"class":505},[477,4233,509],{"class":487},[477,4235,513],{"class":512},[477,4237,1004],{"class":524},[477,4239,533],{"class":487},[477,4241,4168],{"class":524},[477,4243,4171],{"class":487},[477,4245,635],{"class":487},[477,4247,4024],{"class":620},[477,4249,641],{"class":487},[477,4251,888],{"class":487},[477,4253,4254],{"class":479,"line":1147},[477,4255,822],{"class":487},[477,4257,4258],{"class":479,"line":1172},[477,4259,929],{"class":487},[459,4261,4263],{"id":4262},"pattern-schema-versioning","Pattern: Schema versioning",[455,4265,4266],{},"When you need to break compatibility with stored data (rename fields, change types), use a version suffix:",[467,4268,4270],{"className":469,"code":4269,"language":471,"meta":472,"style":472},"// v1 — original\nconst estimatorV1 = definePrototype({ key: 'cost-estimator', … })\n\n// v2 — breaking change (field renamed, new derived values)\n// New key = fresh IndexedDB store — users get a clean slate\nconst estimatorV2 = definePrototype({ key: 'cost-estimator-v2', … })\n",[474,4271,4272,4277,4316,4320,4325,4330],{"__ignoreMap":472},[477,4273,4274],{"class":479,"line":480},[477,4275,4276],{"class":861},"// v1 — original\n",[477,4278,4279,4282,4285,4288,4291,4293,4295,4298,4300,4302,4305,4307,4309,4312,4314],{"class":479,"line":494},[477,4280,4281],{"class":512},"const",[477,4283,4284],{"class":524}," estimatorV1 ",[477,4286,4287],{"class":487},"=",[477,4289,4290],{"class":604}," definePrototype",[477,4292,608],{"class":524},[477,4294,1633],{"class":487},[477,4296,4297],{"class":546}," key",[477,4299,488],{"class":487},[477,4301,635],{"class":487},[477,4303,4304],{"class":620},"cost-estimator",[477,4306,641],{"class":487},[477,4308,627],{"class":487},[477,4310,4311],{"class":524}," … ",[477,4313,617],{"class":487},[477,4315,3499],{"class":524},[477,4317,4318],{"class":479,"line":518},[477,4319,935],{"emptyLinePlaceholder":934},[477,4321,4322],{"class":479,"line":539},[477,4323,4324],{"class":861},"// v2 — breaking change (field renamed, new derived values)\n",[477,4326,4327],{"class":479,"line":568},[477,4328,4329],{"class":861},"// New key = fresh IndexedDB store — users get a clean slate\n",[477,4331,4332,4334,4337,4339,4341,4343,4345,4347,4349,4351,4354,4356,4358,4360,4362],{"class":479,"line":647},[477,4333,4281],{"class":512},[477,4335,4336],{"class":524}," estimatorV2 ",[477,4338,4287],{"class":487},[477,4340,4290],{"class":604},[477,4342,608],{"class":524},[477,4344,1633],{"class":487},[477,4346,4297],{"class":546},[477,4348,488],{"class":487},[477,4350,635],{"class":487},[477,4352,4353],{"class":620},"cost-estimator-v2",[477,4355,641],{"class":487},[477,4357,627],{"class":487},[477,4359,4311],{"class":524},[477,4361,617],{"class":487},[477,4363,3499],{"class":524},[455,4365,4366],{},"If you need to migrate data from v1 to v2, do it in a one-time migration function:",[467,4368,4370],{"className":469,"code":4369,"language":471,"meta":472,"style":472},"// In a plugin or onMounted hook\nasync function migrateV1toV2(workspaceDoc: Y.Doc) {\n  const v1Fields = workspaceDoc.getMap('fields:cost-estimator')\n  const v2Fields = workspaceDoc.getMap('fields:cost-estimator-v2')\n\n  if (v1Fields.size > 0 && v2Fields.size === 0) {\n    workspaceDoc.transact(() => {\n      // Rename: oldName → newName\n      v2Fields.set('newFieldName', v1Fields.get('oldFieldName'))\n      // … copy remaining fields\n    })\n  }\n}\n",[474,4371,4372,4377,4407,4436,4462,4466,4504,4523,4528,4567,4572,4579,4584],{"__ignoreMap":472},[477,4373,4374],{"class":479,"line":480},[477,4375,4376],{"class":861},"// In a plugin or onMounted hook\n",[477,4378,4379,4382,4385,4388,4390,4393,4395,4398,4400,4403,4405],{"class":479,"line":494},[477,4380,4381],{"class":512},"async",[477,4383,4384],{"class":512}," function",[477,4386,4387],{"class":604}," migrateV1toV2",[477,4389,608],{"class":487},[477,4391,4392],{"class":505},"workspaceDoc",[477,4394,488],{"class":487},[477,4396,4397],{"class":483}," Y",[477,4399,533],{"class":487},[477,4401,4402],{"class":483},"Doc",[477,4404,614],{"class":487},[477,4406,491],{"class":487},[477,4408,4409,4412,4415,4417,4420,4422,4425,4427,4429,4432,4434],{"class":479,"line":518},[477,4410,4411],{"class":512},"  const",[477,4413,4414],{"class":524}," v1Fields",[477,4416,528],{"class":487},[477,4418,4419],{"class":524}," workspaceDoc",[477,4421,533],{"class":487},[477,4423,4424],{"class":604},"getMap",[477,4426,608],{"class":546},[477,4428,641],{"class":487},[477,4430,4431],{"class":620},"fields:cost-estimator",[477,4433,641],{"class":487},[477,4435,3499],{"class":546},[477,4437,4438,4440,4443,4445,4447,4449,4451,4453,4455,4458,4460],{"class":479,"line":539},[477,4439,4411],{"class":512},[477,4441,4442],{"class":524}," v2Fields",[477,4444,528],{"class":487},[477,4446,4419],{"class":524},[477,4448,533],{"class":487},[477,4450,4424],{"class":604},[477,4452,608],{"class":546},[477,4454,641],{"class":487},[477,4456,4457],{"class":620},"fields:cost-estimator-v2",[477,4459,641],{"class":487},[477,4461,3499],{"class":546},[477,4463,4464],{"class":479,"line":568},[477,4465,935],{"emptyLinePlaceholder":934},[477,4467,4468,4471,4473,4476,4478,4481,4484,4486,4489,4491,4493,4495,4497,4499,4501],{"class":479,"line":647},[477,4469,4470],{"class":542},"  if",[477,4472,547],{"class":546},[477,4474,4475],{"class":524},"v1Fields",[477,4477,533],{"class":487},[477,4479,4480],{"class":524},"size",[477,4482,4483],{"class":487}," >",[477,4485,1040],{"class":580},[477,4487,4488],{"class":487}," &&",[477,4490,4442],{"class":524},[477,4492,533],{"class":487},[477,4494,4480],{"class":524},[477,4496,553],{"class":487},[477,4498,1040],{"class":580},[477,4500,559],{"class":546},[477,4502,4503],{"class":487},"{\n",[477,4505,4506,4509,4511,4514,4516,4519,4521],{"class":479,"line":708},[477,4507,4508],{"class":524},"    workspaceDoc",[477,4510,533],{"class":487},[477,4512,4513],{"class":604},"transact",[477,4515,608],{"class":546},[477,4517,4518],{"class":487},"()",[477,4520,513],{"class":512},[477,4522,491],{"class":487},[477,4524,4525],{"class":479,"line":770},[477,4526,4527],{"class":861},"      // Rename: oldName → newName\n",[477,4529,4530,4533,4535,4538,4540,4542,4545,4547,4549,4551,4553,4556,4558,4560,4563,4565],{"class":479,"line":819},[477,4531,4532],{"class":524},"      v2Fields",[477,4534,533],{"class":487},[477,4536,4537],{"class":604},"set",[477,4539,608],{"class":546},[477,4541,641],{"class":487},[477,4543,4544],{"class":620},"newFieldName",[477,4546,641],{"class":487},[477,4548,627],{"class":487},[477,4550,4414],{"class":524},[477,4552,533],{"class":487},[477,4554,4555],{"class":604},"get",[477,4557,608],{"class":546},[477,4559,641],{"class":487},[477,4561,4562],{"class":620},"oldFieldName",[477,4564,641],{"class":487},[477,4566,1614],{"class":546},[477,4568,4569],{"class":479,"line":825},[477,4570,4571],{"class":861},"      // … copy remaining fields\n",[477,4573,4574,4577],{"class":479,"line":947},[477,4575,4576],{"class":487},"    }",[477,4578,3499],{"class":546},[477,4580,4581],{"class":479,"line":964},[477,4582,4583],{"class":487},"  }\n",[477,4585,4586],{"class":479,"line":969},[477,4587,828],{"class":487},[4589,4590,4591],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":472,"searchDepth":494,"depth":494,"links":4593},[4594,4595,4596,4597,4598,4599,4600,4601],{"id":461,"depth":494,"text":462},{"id":838,"depth":494,"text":839},{"id":1182,"depth":494,"text":1183},{"id":1700,"depth":494,"text":1701},{"id":2925,"depth":494,"text":2926},{"id":3353,"depth":494,"text":3354},{"id":3916,"depth":494,"text":3917},{"id":4262,"depth":494,"text":4263},"Real-world schema patterns — multi-threshold badges, null-safe connections, collection-driven charts, linked question responses, tab layouts with badges, and action toolbars.","md",null,{},{"title":437},{"title":437,"description":4602},"Dpke4hFCbIvhOvrvXLvswbduQlUDg1yLuO55_C1Rs4M",[4610,4612],{"title":433,"path":434,"stem":435,"description":4611,"children":-1},"Patterns for building multi-tool applications with protokit — shared Y.js documents, workspace-scoped stores, staged navigation, and the produces/consumes data pipeline.",{"title":441,"path":442,"stem":443,"description":4613,"children":-1},"Add custom field components and visualization types to nuxt-protokit without modifying the module source, using defineProtokitExtension and the protokit:register-extension hook.",1772977477721]