{"version":3,"file":"util.mjs","names":["stable: { [index: string]: any }"],"sources":["../../src/core/util.ts"],"sourcesContent":["import type React from 'react';\n\nexport type ExtractSecondParam<T extends (arg1: any, arg2: any) => any> =\n  T extends (arg1: any, arg2: infer P) => any ? P : never;\nexport type CombineWithIntrinsicAttributes<T> =\n  T extends Record<PropertyKey, never>\n    ? React.JSX.IntrinsicAttributes\n    : T & React.JSX.IntrinsicAttributes;\n\nexport type Arguments = Argument[];\nexport type Argument = [ArgumentName, ArgumentValue];\nexport type ArgumentName = string;\nexport type ArgumentValue =\n  | {\n      readonly kind: 'Variable';\n      readonly name: string;\n    }\n  | {\n      readonly kind: 'Literal';\n      readonly value: any;\n    }\n  | {\n      readonly kind: 'String';\n      readonly value: string;\n    }\n  | {\n      readonly kind: 'Enum';\n      readonly value: string;\n    }\n  | {\n      readonly kind: 'Object';\n      readonly value: Arguments;\n    };\n\nexport function isArray(value: unknown): value is readonly unknown[] {\n  return Array.isArray(value);\n}\n\n/**\n * Creates a copy of the provided value, ensuring any nested objects have their\n * keys sorted such that equivalent values would have identical JSON.stringify\n * results.\n */\nexport function stableCopy<T>(value: T): T {\n  if (value == null || typeof value !== 'object') {\n    return value;\n  }\n  if (isArray(value)) {\n    // @ts-ignore\n    return value.map(stableCopy);\n  }\n  const keys = Object.keys(value).sort();\n  const stable: { [index: string]: any } = {};\n  for (let i = 0; i < keys.length; i++) {\n    // @ts-ignore\n    stable[keys[i]] = stableCopy(value[keys[i]]);\n  }\n  return stable as any;\n}\n"],"mappings":";AAkCA,SAAgB,QAAQ,OAA6C;AACnE,QAAO,MAAM,QAAQ,MAAM;;;;;;;AAQ7B,SAAgB,WAAc,OAAa;AACzC,KAAI,SAAS,QAAQ,OAAO,UAAU,SACpC,QAAO;AAET,KAAI,QAAQ,MAAM,CAEhB,QAAO,MAAM,IAAI,WAAW;CAE9B,MAAM,OAAO,OAAO,KAAK,MAAM,CAAC,MAAM;CACtC,MAAMA,SAAmC,EAAE;AAC3C,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,IAE/B,QAAO,KAAK,MAAM,WAAW,MAAM,KAAK,IAAI;AAE9C,QAAO"}