{
  "version": 3,
  "sources": ["../../src/app/ai/agents/evals2/scenarios/layout/fullWidthSibling.eval.ts"],
  "sourcesContent": ["import { assert } from \"@framerjs/shared\"\nimport type { VekterEngine } from \"document/VekterEngine.ts\"\nimport type { CanvasNode } from \"document/models/CanvasTree/nodes/CanvasNode.ts\"\nimport type FrameNode from \"document/models/CanvasTree/nodes/FrameNode.ts\"\nimport { isFrameNode } from \"document/models/CanvasTree/nodes/utils/nodeCheck.ts\"\nimport { withSize } from \"document/models/CanvasTree/traits/WithSize.ts\"\nimport { withSizeDimensionType } from \"document/models/CanvasTree/traits/WithSizeDimensionType.ts\"\nimport { DimensionType } from \"library/index.ts\"\nimport { agentEvalAsset } from \"../../harness/asset.ts\"\nimport { createEvalExportZipFixture } from \"../../harness/fixture.ts\"\nimport { getDescendantText, getNode } from \"../helpers.ts\"\n\nconst requestId = \"DBI6SFGKL\"\nconst clockId = \"f5ax_rOb2\"\n\nfunction getClockRow(engine: VekterEngine): FrameNode {\n\tconst clock = getNode(engine, clockId)\n\tconst parentId = clock.parentid\n\tassert(parentId, `Expected clock '${clockId}' to have a parent.`)\n\n\tconst row = engine.tree.getNodeWithTrait(parentId, isFrameNode)\n\tassert(row, `Expected clock '${clockId}' to be inside a frame row.`)\n\treturn row\n}\n\nfunction isFullRowWidth(node: CanvasNode): boolean {\n\tif (!withSizeDimensionType(node) || !withSize(node)) return false\n\treturn (node.widthType === DimensionType.Percentage || node.widthType === DimensionType.Viewport) && node.width >= 1\n}\n\nevaluation(\n\t\"Full Width Child Does Not Push Other Children Out\",\n\tcreateEvalExportZipFixture(\"full-width-sibling\", agentEvalAsset(\"fullWidthSibling.fixture.zip\"), {\n\t\truntimeTarget: \"cli\",\n\t}),\n\t{\n\t\tid: \"full-width-sibling\",\n\t\trequestId,\n\t\tmaxSteps: 2,\n\t},\n\t({ engine, report, tools }) => {\n\t\ttools.reportReplayChecks(report, {\n\t\t\trequestId,\n\t\t})\n\n\t\tconst row = getClockRow(engine)\n\n\t\treport.correctness.required(\"keeps email and clock in the same horizontal row\", () => {\n\t\t\texpect(row.layout).toBe(\"stack\")\n\t\t\texpect(row.stackDirection).toBe(\"horizontal\")\n\t\t\texpect(getDescendantText(row)).toContain(\"hello@studio.com\")\n\t\t\texpect(row.children?.some(child => child.id === clockId)).toBe(true)\n\t\t})\n\n\t\treport.correctness.required(\"does not put a full-width child next to the clock\", () => {\n\t\t\tconst fullWidthChildren = row.children?.filter(isFullRowWidth) ?? []\n\t\t\texpect(fullWidthChildren.map(child => child.id)).toEqual([])\n\t\t})\n\t},\n)\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,YAAY;AAClB,IAAM,UAAU;AAEhB,SAAS,YAAY,QAAiC;AACrD,QAAM,QAAQ,QAAQ,QAAQ,OAAO;AACrC,QAAM,WAAW,MAAM;AACvB,SAAO,UAAU,mBAAmB,OAAO,qBAAqB;AAEhE,QAAM,MAAM,OAAO,KAAK,iBAAiB,UAAU,WAAW;AAC9D,SAAO,KAAK,mBAAmB,OAAO,6BAA6B;AACnE,SAAO;AACR;AAEA,SAAS,eAAe,MAA2B;AAClD,MAAI,CAAC,sBAAsB,IAAI,KAAK,CAAC,SAAS,IAAI,EAAG,QAAO;AAC5D,UAAQ,KAAK,oCAA0C,KAAK,mCAAyC,KAAK,SAAS;AACpH;AAEA;AAAA,EACC;AAAA,EACA,2BAA2B,sBAAsB,eAAe,8BAA8B,GAAG;AAAA,IAChG,eAAe;AAAA,EAChB,CAAC;AAAA,EACD;AAAA,IACC,IAAI;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,EACX;AAAA,EACA,CAAC,EAAE,QAAQ,QAAQ,MAAM,MAAM;AAC9B,UAAM,mBAAmB,QAAQ;AAAA,MAChC;AAAA,IACD,CAAC;AAED,UAAM,MAAM,YAAY,MAAM;AAE9B,WAAO,YAAY,SAAS,oDAAoD,MAAM;AACrF,aAAO,IAAI,MAAM,EAAE,KAAK,OAAO;AAC/B,aAAO,IAAI,cAAc,EAAE,KAAK,YAAY;AAC5C,aAAO,kBAAkB,GAAG,CAAC,EAAE,UAAU,kBAAkB;AAC3D,aAAO,IAAI,UAAU,KAAK,WAAS,MAAM,OAAO,OAAO,CAAC,EAAE,KAAK,IAAI;AAAA,IACpE,CAAC;AAED,WAAO,YAAY,SAAS,qDAAqD,MAAM;AACtF,YAAM,oBAAoB,IAAI,UAAU,OAAO,cAAc,KAAK,CAAC;AACnE,aAAO,kBAAkB,IAAI,WAAS,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,IAC5D,CAAC;AAAA,EACF;AACD;",
  "names": []
}
