{
  "version": 3,
  "sources": ["../../src/renderer/utils/getStylePresetBreakpointClassNames.ts"],
  "sourcesContent": ["import { RuleType, createFramerClassName } from \"code-generation/utils/createFramerClassName.ts\"\nimport type { CanvasTree } from \"document/models/CanvasTree/CanvasTree.ts\"\nimport type { CanvasNode } from \"document/models/CanvasTree/nodes/CanvasNode.ts\"\nimport { PresetsListNode } from \"document/models/CanvasTree/nodes/PresetsListNode.ts\"\nimport type { StylePresetNode } from \"document/models/CanvasTree/nodes/utils/isStylePresetNode.ts\"\nimport { isStylePresetNode } from \"document/models/CanvasTree/nodes/utils/isStylePresetNode.ts\"\nimport { withSize } from \"document/models/CanvasTree/traits/WithSize.ts\"\nimport type { WithStylePresetBreakpoint } from \"document/models/CanvasTree/traits/WithStylePresetBreakpoint.ts\"\nimport { withStylePresetBreakpoint } from \"document/models/CanvasTree/traits/WithStylePresetBreakpoint.ts\"\nimport type { IsReplica } from \"document/models/CanvasTree/traits/WithTemplate.ts\"\nimport { isReplica } from \"document/models/CanvasTree/traits/WithTemplate.ts\"\nimport { isBreakpointVariant } from \"document/models/CanvasTree/traits/WithVariant.ts\"\nimport { useMemo } from \"react\"\n\ntype BreakpointStylePresetNode = StylePresetNode & WithStylePresetBreakpoint & IsReplica\nexport type StylePresetBreakpoints = Record<string, BreakpointStylePresetNode[]>\n\nfunction isBreakpointStylePresetNode(node: StylePresetNode): node is BreakpointStylePresetNode {\n\treturn isStylePresetNode(node) && withStylePresetBreakpoint(node) && isReplica(node)\n}\n\n/**\n * Calculates a map of text styles and their breakpoints sorted by the\n * breakpointWidth from lowest to highest.\n */\nexport function getStylePresetBreakpoints(listNode: PresetsListNode | null | undefined) {\n\tconst breakpoints: StylePresetBreakpoints = {}\n\tif (!listNode) return breakpoints\n\n\tconst breakpointNodes = listNode.children\n\t\t.filter(isBreakpointStylePresetNode)\n\t\t.sort((left, right) => (left.breakpointWidth ?? 0) - (right.breakpointWidth ?? 0))\n\n\tfor (const preset of breakpointNodes) {\n\t\tconst masterId = preset.originalid\n\t\tconst masterStylePresets = breakpoints[masterId] ?? []\n\t\tmasterStylePresets.push(preset)\n\t\tbreakpoints[masterId] = masterStylePresets\n\t}\n\n\treturn breakpoints\n}\n\n/**\n * Calculates a map of text styles and their breakpoints sorted by the\n * breakpointWidth from lowest to highest.\n */\nexport function useStylePresetBreakpoints(tree: CanvasTree) {\n\tconst listNode = PresetsListNode.get(tree)\n\treturn useMemo(() => getStylePresetBreakpoints(listNode), [listNode])\n}\n\nexport function getStylePresetBreakpointClassNamesForGroundNode(\n\tstylePresetBreakpoints: StylePresetBreakpoints,\n\tgroundNode: CanvasNode,\n) {\n\tif (!isBreakpointVariant(groundNode) || !withSize(groundNode)) return \"\"\n\treturn getStylePresetBreakpointClassNames(stylePresetBreakpoints, groundNode.width)\n}\n\nexport function getStylePresetBreakpointClassNames(\n\tstylePresetBreakpoints: StylePresetBreakpoints,\n\tscreenWidth: number,\n) {\n\tconst classNames: string[] = []\n\tconst breakpointsByStylePreset = Object.values(stylePresetBreakpoints)\n\n\tfor (const breakpoints of breakpointsByStylePreset) {\n\t\t// Find the smallest breakpoint that is larger than the width of the\n\t\t// ground node.\n\t\tconst breakpoint = breakpoints.find(b => (b.breakpointWidth ?? 0) > screenWidth)\n\n\t\tif (breakpoint) {\n\t\t\tconst className = createFramerClassName(RuleType.StylePresetBreakpoint, breakpoint.id)\n\t\t\tclassNames.push(className)\n\t\t}\n\t}\n\n\treturn classNames.join(\" \")\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;AAYA,mBAAwB;AAKxB,SAAS,4BAA4B,MAA0D;AAC9F,SAAO,kBAAkB,IAAI,KAAK,0BAA0B,IAAI,KAAK,UAAU,IAAI;AACpF;AAMO,SAAS,0BAA0B,UAA8C;AACvF,QAAM,cAAsC,CAAC;AAC7C,MAAI,CAAC,SAAU,QAAO;AAEtB,QAAM,kBAAkB,SAAS,SAC/B,OAAO,2BAA2B,EAClC,KAAK,CAAC,MAAM,WAAW,KAAK,mBAAmB,MAAM,MAAM,mBAAmB,EAAE;AAElF,aAAW,UAAU,iBAAiB;AACrC,UAAM,WAAW,OAAO;AACxB,UAAM,qBAAqB,YAAY,QAAQ,KAAK,CAAC;AACrD,uBAAmB,KAAK,MAAM;AAC9B,gBAAY,QAAQ,IAAI;AAAA,EACzB;AAEA,SAAO;AACR;AAMO,SAAS,0BAA0B,MAAkB;AAC3D,QAAM,WAAW,gBAAgB,IAAI,IAAI;AACzC,aAAO,sBAAQ,MAAM,0BAA0B,QAAQ,GAAG,CAAC,QAAQ,CAAC;AACrE;AAEO,SAAS,gDACf,wBACA,YACC;AACD,MAAI,CAAC,oBAAoB,UAAU,KAAK,CAAC,SAAS,UAAU,EAAG,QAAO;AACtE,SAAO,mCAAmC,wBAAwB,WAAW,KAAK;AACnF;AAEO,SAAS,mCACf,wBACA,aACC;AACD,QAAM,aAAuB,CAAC;AAC9B,QAAM,2BAA2B,OAAO,OAAO,sBAAsB;AAErE,aAAW,eAAe,0BAA0B;AAGnD,UAAM,aAAa,YAAY,KAAK,QAAM,EAAE,mBAAmB,KAAK,WAAW;AAE/E,QAAI,YAAY;AACf,YAAM,YAAY,qDAAsD,WAAW,EAAE;AACrF,iBAAW,KAAK,SAAS;AAAA,IAC1B;AAAA,EACD;AAEA,SAAO,WAAW,KAAK,GAAG;AAC3B;",
  "names": []
}
