zudoku 0.3.0-dev.53 → 0.3.0-dev.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/lib/components/Bootstrap.js +1 -1
  2. package/dist/lib/components/Bootstrap.js.map +1 -1
  3. package/lib/AnchorLink-BaXHjhF-.js +989 -0
  4. package/lib/{AnchorLink-BCN_a_Uz.js.map → AnchorLink-BaXHjhF-.js.map} +1 -1
  5. package/lib/Combination-BfufJFkX.js +1365 -0
  6. package/lib/{Combination-B0Iu6mhJ.js.map → Combination-BfufJFkX.js.map} +1 -1
  7. package/lib/DevPortalProvider-GjdO0Xr-.js +1610 -0
  8. package/lib/{DevPortalProvider-Do9oJqme.js.map → DevPortalProvider-GjdO0Xr-.js.map} +1 -1
  9. package/lib/Markdown-B8nPVql1.js +19708 -0
  10. package/lib/Markdown-B8nPVql1.js.map +1 -0
  11. package/lib/MdxPage-Dlujuj-J.js +223 -0
  12. package/lib/{MdxPage-Bsc79cD-.js.map → MdxPage-Dlujuj-J.js.map} +1 -1
  13. package/lib/OperationList-krPgt6sE.js +8041 -0
  14. package/lib/{OperationList-K-JWBxau.js.map → OperationList-krPgt6sE.js.map} +1 -1
  15. package/lib/Playground-DOHxca0P.js +539 -0
  16. package/lib/{Playground-Czy7ha9z.js.map → Playground-DOHxca0P.js.map} +1 -1
  17. package/lib/Route-CR6TEwVC.js +13 -0
  18. package/lib/{Route-D-egsGHx.js.map → Route-CR6TEwVC.js.map} +1 -1
  19. package/lib/Select-Boi_pe3L.js +5298 -0
  20. package/lib/{Select-CcBbwJ2R.js.map → Select-Boi_pe3L.js.map} +1 -1
  21. package/lib/Spinner-oU0QJmi_.js +16 -0
  22. package/lib/{Spinner-C9_Opdev.js.map → Spinner-oU0QJmi_.js.map} +1 -1
  23. package/lib/_commonjsHelpers-BxmBWJD2.js +34 -0
  24. package/lib/_commonjsHelpers-BxmBWJD2.js.map +1 -0
  25. package/lib/assets/index-CpIig0AX.js +6341 -0
  26. package/lib/{index-pI9JkN46.js.map → assets/index-CpIig0AX.js.map} +1 -1
  27. package/lib/assets/worker-B5k2aBV9.js +18921 -0
  28. package/lib/assets/{worker-BjPv-hjP.js.map → worker-B5k2aBV9.js.map} +1 -1
  29. package/lib/context-BoN_3uxi.js +17 -0
  30. package/lib/{context-_fYfJFgk.js.map → context-BoN_3uxi.js.map} +1 -1
  31. package/lib/hook-CIuFuyBT.js +90 -0
  32. package/lib/{hook-CKqQERWo.js.map → hook-CIuFuyBT.js.map} +1 -1
  33. package/lib/index-BL1P4Gqq.js +280 -0
  34. package/lib/{index-ByHya67R.js.map → index-BL1P4Gqq.js.map} +1 -1
  35. package/lib/index-Bn03IPZt.js +6341 -0
  36. package/lib/{assets/index-BPdJm2ty.js.map → index-Bn03IPZt.js.map} +1 -1
  37. package/lib/{index-jsFBaizC.js → index-Dih8IAqw.js} +103 -83
  38. package/lib/{index-jsFBaizC.js.map → index-Dih8IAqw.js.map} +1 -1
  39. package/lib/index-FprhHF51.js +253 -0
  40. package/lib/{index-DseBZFJ-.js.map → index-FprhHF51.js.map} +1 -1
  41. package/lib/jsx-runtime-DvZ6OKMM.js +2110 -0
  42. package/lib/{jsx-runtime-CJZJivg2.js.map → jsx-runtime-DvZ6OKMM.js.map} +1 -1
  43. package/lib/mutation-DWY9x2Uc.js +250 -0
  44. package/lib/{mutation-DjbQSHzT.js.map → mutation-DWY9x2Uc.js.map} +1 -1
  45. package/lib/prism-bash.min-BtBk0onv.js +7 -0
  46. package/lib/{prism-bash.min-DadFsM4Z.js.map → prism-bash.min-BtBk0onv.js.map} +1 -1
  47. package/lib/prism-csharp.min-Cv7D49bv.js +30 -0
  48. package/lib/{prism-csharp.min-Yizuc34Y.js.map → prism-csharp.min-Cv7D49bv.js.map} +1 -1
  49. package/lib/prism-java.min-tNK-JX6x.js +7 -0
  50. package/lib/{prism-java.min-d5iT_mOd.js.map → prism-java.min-tNK-JX6x.js.map} +1 -1
  51. package/lib/prism-json.min-Cdtv-CME.js +2 -0
  52. package/lib/{prism-json.min-B1GJqK1k.js.map → prism-json.min-Cdtv-CME.js.map} +1 -1
  53. package/lib/prism-markup-templating-iotg2sCU.js +94 -0
  54. package/lib/{prism-markup-templating-DZrrEs0A.js.map → prism-markup-templating-iotg2sCU.js.map} +1 -1
  55. package/lib/prism-objectivec.min-CY4WGixz.js +2 -0
  56. package/lib/{prism-objectivec.min-BXSWqpJJ.js.map → prism-objectivec.min-CY4WGixz.js.map} +1 -1
  57. package/lib/prism-php.min-T6sIVgED.js +11 -0
  58. package/lib/{prism-php.min-o7FpoMP_.js.map → prism-php.min-T6sIVgED.js.map} +1 -1
  59. package/lib/prism-ruby.min-B-2KAa4y.js +8 -0
  60. package/lib/{prism-ruby.min-C7LwcKyz.js.map → prism-ruby.min-B-2KAa4y.js.map} +1 -1
  61. package/lib/router-ButO1QyY.js +4062 -0
  62. package/lib/{router-CBw2vqJE.js.map → router-ButO1QyY.js.map} +1 -1
  63. package/lib/slugify-CmS97Vy8.js +50 -0
  64. package/lib/{slugify-CiPVjteN.js.map → slugify-CmS97Vy8.js.map} +1 -1
  65. package/lib/state-CmGfNKhR.js +436 -0
  66. package/lib/{state-DKdaQzvh.js.map → state-CmGfNKhR.js.map} +1 -1
  67. package/lib/urql-DtVKPBx_.js +2567 -0
  68. package/lib/{urql-DEKdguFl.js.map → urql-DtVKPBx_.js.map} +1 -1
  69. package/lib/util-B5KX4h4M.js +55 -0
  70. package/lib/{util-_jwUlTBU.js.map → util-B5KX4h4M.js.map} +1 -1
  71. package/lib/zudoku.auth-auth0.js +24 -18
  72. package/lib/zudoku.auth-auth0.js.map +1 -1
  73. package/lib/zudoku.auth-clerk.js +43 -34
  74. package/lib/zudoku.auth-clerk.js.map +1 -1
  75. package/lib/zudoku.auth-openid.js +1121 -734
  76. package/lib/zudoku.auth-openid.js.map +1 -1
  77. package/lib/zudoku.components.js +1076 -823
  78. package/lib/zudoku.components.js.map +1 -1
  79. package/lib/zudoku.openapi-worker.js +13776 -9681
  80. package/lib/zudoku.openapi-worker.js.map +1 -1
  81. package/lib/zudoku.plugin-api-keys.js +206 -165
  82. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  83. package/lib/zudoku.plugin-markdown.js +41 -33
  84. package/lib/zudoku.plugin-markdown.js.map +1 -1
  85. package/lib/zudoku.plugin-openapi.js +6 -6
  86. package/lib/zudoku.plugin-redirect.js +10 -8
  87. package/lib/zudoku.plugin-redirect.js.map +1 -1
  88. package/package.json +1 -1
  89. package/src/lib/components/Bootstrap.tsx +1 -1
  90. package/lib/AnchorLink-BCN_a_Uz.js +0 -705
  91. package/lib/Combination-B0Iu6mhJ.js +0 -915
  92. package/lib/DevPortalProvider-Do9oJqme.js +0 -1081
  93. package/lib/Markdown-aE_XoLNs.js +0 -15030
  94. package/lib/Markdown-aE_XoLNs.js.map +0 -1
  95. package/lib/MdxPage-Bsc79cD-.js +0 -190
  96. package/lib/OperationList-K-JWBxau.js +0 -5091
  97. package/lib/Playground-Czy7ha9z.js +0 -502
  98. package/lib/Route-D-egsGHx.js +0 -13
  99. package/lib/Select-CcBbwJ2R.js +0 -3667
  100. package/lib/Spinner-C9_Opdev.js +0 -15
  101. package/lib/_commonjsHelpers-BVfed4GL.js +0 -29
  102. package/lib/_commonjsHelpers-BVfed4GL.js.map +0 -1
  103. package/lib/assets/index-BPdJm2ty.js +0 -4765
  104. package/lib/assets/worker-BjPv-hjP.js +0 -14897
  105. package/lib/context-_fYfJFgk.js +0 -14
  106. package/lib/hook-CKqQERWo.js +0 -77
  107. package/lib/index-ByHya67R.js +0 -207
  108. package/lib/index-DseBZFJ-.js +0 -170
  109. package/lib/index-pI9JkN46.js +0 -4765
  110. package/lib/jsx-runtime-CJZJivg2.js +0 -1526
  111. package/lib/mutation-DjbQSHzT.js +0 -208
  112. package/lib/prism-bash.min-DadFsM4Z.js +0 -7
  113. package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
  114. package/lib/prism-java.min-d5iT_mOd.js +0 -7
  115. package/lib/prism-json.min-B1GJqK1k.js +0 -2
  116. package/lib/prism-markup-templating-DZrrEs0A.js +0 -62
  117. package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
  118. package/lib/prism-php.min-o7FpoMP_.js +0 -11
  119. package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
  120. package/lib/router-CBw2vqJE.js +0 -2973
  121. package/lib/slugify-CiPVjteN.js +0 -28
  122. package/lib/state-DKdaQzvh.js +0 -288
  123. package/lib/urql-DEKdguFl.js +0 -1592
  124. package/lib/util-_jwUlTBU.js +0 -41
@@ -1 +1 @@
1
- {"version":3,"file":"Playground-Czy7ha9z.js","sources":["../src/lib/ui/Card.tsx","../src/lib/plugins/openapi/playground/createUrl.ts","../src/lib/util/createVariantComponent.tsx","../src/lib/plugins/openapi/playground/InlineInput.tsx","../src/lib/plugins/openapi/playground/Headers.tsx","../src/lib/plugins/openapi/playground/PathParams.tsx","../src/lib/plugins/openapi/playground/QueryParams.tsx","../src/lib/plugins/openapi/playground/Playground.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border border-border bg-card text-card-foreground shadow\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","import type { PlaygroundForm } from \"./Playground.js\";\n\nexport const createUrl = (host: string, path: string, data: PlaygroundForm) => {\n const url = new URL(\n host +\n path\n .split(\"/\")\n .map((v) =>\n v.startsWith(\"{\") && v.endsWith(\"}\")\n ? data.pathParams.find((part) => part.name === v.slice(1, -1))\n ?.value ?? v\n : v,\n )\n .join(\"/\"),\n );\n\n data.queryParams.forEach((param) => {\n url.searchParams.set(param.name, param.value);\n });\n\n return url;\n};\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport type { ClassValue } from \"clsx\";\nimport * as React from \"react\";\nimport type { JSX } from \"react/jsx-runtime\";\nimport { cn } from \"./cn.js\";\n\nconst createVariantComponent = <\n E extends keyof React.ReactHTML,\n C extends ReturnType<typeof cva>,\n>(\n tag: E,\n cvx: ClassValue | C,\n // variantProps: Array<keyof VariantProps<C>> = [],\n) => {\n const MyVariant = React.forwardRef<\n HTMLElement,\n JSX.IntrinsicElements[E] & { className?: ClassValue; asChild?: boolean }\n >(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : tag;\n\n return React.createElement(Comp, {\n ...props,\n ref,\n className:\n typeof cvx === \"function\" ? cvx({ className }) : cn(cvx, className),\n });\n });\n\n MyVariant.displayName = `VariantComponent(${tag})`;\n\n return MyVariant;\n};\n\nexport default createVariantComponent;\n","import createVariantComponent from \"../../../util/createVariantComponent.js\";\n\nexport const InlineInput = createVariantComponent(\n \"input\",\n \"px-2 bg-transparent h-6 font-mono text-xs m-2\",\n);\n","import { TriangleAlertIcon, XIcon } from \"lucide-react\";\nimport {\n Control,\n useFieldArray,\n UseFormRegister,\n useWatch,\n} from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport { NO_IDENTITY, type PlaygroundForm } from \"./Playground.js\";\n\nexport const Headers = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields, append, remove } = useFieldArray<PlaygroundForm>({\n control,\n name: \"headers\",\n });\n const selectedIdentity = useWatch({ name: \"identity\", control });\n const liveHeaders = useWatch({ name: \"headers\", control });\n\n const disableAuth = selectedIdentity !== NO_IDENTITY;\n\n return (\n <div className=\"grid grid-cols-[1fr_1fr_auto]\">\n {fields.map((header, i) => {\n const isDisabledByAuth =\n disableAuth && liveHeaders.at(i)?.name === \"Authorization\";\n\n return (\n <div\n key={header.id}\n className={cn(\n \"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\",\n isDisabledByAuth && \"line-through\",\n )}\n title={\n isDisabledByAuth\n ? \"This header is disabled because authentication was selected\"\n : undefined\n }\n >\n <div className=\"flex gap-2 items-center\">\n <InlineInput\n {...register(`headers.${i}.name`)}\n placeholder=\"Name\"\n className=\"peer\"\n autoComplete=\"off\"\n />\n {isDisabledByAuth && (\n <TriangleAlertIcon size={16} className=\"text-amber-500\" />\n )}\n </div>\n <InlineInput\n placeholder={\"Value\"}\n className=\"peer\"\n {...register(`headers.${i}.value`)}\n autoComplete=\"off\"\n />\n <button\n className=\"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\"\n onClick={() => {\n remove(i);\n }}\n type=\"button\"\n >\n <XIcon size={16} />\n </button>\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n );\n })}\n <Button\n className=\"col-span-full mt-4\"\n onClick={() => append({ name: \"\", value: \"\" })}\n type=\"button\"\n >\n Add header\n </Button>\n </div>\n );\n};\n","import { forwardRef, InputHTMLAttributes } from \"react\";\nimport { Control, useFieldArray, UseFormRegister } from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { DATA_ATTR, usePastellizedColor } from \"../ColorizedParam.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\ntype ParameterValueProps = {\n part: string;\n} & InputHTMLAttributes<HTMLInputElement>;\n\nconst ParameterValue = forwardRef<HTMLInputElement, ParameterValueProps>(\n function ParameterValue({ part, className, ...props }, ref) {\n const color = usePastellizedColor(part);\n return (\n <InlineInput\n {...props}\n ref={ref}\n className={cn(className, \"opacity-80 data-[active=true]:opacity-100\")}\n style={{\n // color: `hsl(${color})`,\n outlineColor: `hsl(${color})`,\n }}\n />\n );\n },\n);\n\nexport const PathParams = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"pathParams\",\n });\n\n return fields.map((part, i) => (\n <div\n key={part.id}\n className=\"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\"\n >\n <InlineInput\n {...register(`pathParams.${i}.name`)}\n disabled\n placeholder=\"Name\"\n className=\"peer\"\n />\n <ParameterValue\n {...register(`pathParams.${i}.value`)}\n part={part.name}\n {...{ [DATA_ATTR]: part.name }}\n placeholder=\"Value\"\n className=\"peer\"\n />\n\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { XIcon } from \"lucide-react\";\nimport {\n Control,\n Controller,\n useFieldArray,\n useFormContext,\n} from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\nexport const QueryParams = ({\n control,\n}: {\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"queryParams\",\n });\n const form = useFormContext<PlaygroundForm>();\n\n const requiredFields = form\n .getValues(`queryParams`)\n .map((param) => param.isRequired);\n\n return fields.map((field, i) => (\n <div\n key={field.id}\n className=\"px-2 grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-accent rounded overflow-hidden group\"\n >\n <Controller\n control={control}\n name={`queryParams.${i}.active`}\n render={({ field }) => (\n <input\n type=\"checkbox\"\n id={`queryParams.${i}.active`}\n checked={field.value}\n onChange={field.onChange}\n />\n )}\n />\n\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput asChild>\n <label\n className=\"flex items-center\"\n htmlFor={`queryParams.${i}.active`}\n title={requiredFields[i] ? \"Required field\" : undefined}\n >\n {field.value}\n {requiredFields[i] && <sup className=\"text-destructive\">*</sup>}\n </label>\n </InlineInput>\n );\n }}\n name={`queryParams.${i}.name`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput {...field} placeholder=\"Value\" className=\"peer\" />\n );\n }}\n name={`queryParams.${i}.value`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <button\n type=\"button\"\n className={cn(\n \"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\",\n field.value.length === 0 && \"opacity-0 pointer-events-none\",\n )}\n onClick={() => field.onChange(\"\")}\n >\n <XIcon size={16} />\n </button>\n );\n }}\n name={`queryParams.${i}.value`}\n />\n\n <div className=\"-mx-2 col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useQuery } from \"urql\";\nimport { useApiIdentities } from \"../../../components/context/DevPortalProvider.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../components/Select.js\";\nimport { Spinner } from \"../../../components/Spinner.js\";\nimport { SyntaxHighlight } from \"../../../components/SyntaxHighlight.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../../ui/Tabs.js\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport { useOasConfig } from \"../context.js\";\nimport { graphql } from \"../graphql/index.js\";\nimport { createUrl } from \"./createUrl.js\";\nimport { Headers } from \"./Headers.js\";\nimport { PathParams } from \"./PathParams.js\";\nimport { QueryParams } from \"./QueryParams.js\";\n\nexport const NO_IDENTITY = \"__none\";\n\nconst GetServerQuery = graphql(/* GraphQL */ `\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n }\n }\n`);\n\nfunction mimeTypeToLanguage(mimeType: string) {\n const mimeTypeMapping = {\n \"application/json\": \"json\",\n \"text/json\": \"json\",\n \"text/html\": \"html\",\n \"text/css\": \"css\",\n \"text/javascript\": \"javascript\",\n \"application/xml\": \"xml\",\n \"application/xhtml+xml\": \"xhtml\",\n \"text/plain\": \"plain\",\n } as const;\n\n return Object.entries(mimeTypeMapping).find(([mime]) =>\n mimeType.includes(mime),\n )?.[0][1];\n}\n\nconst statusCodeMap: Record<number, string> = {\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 204: \"No Content\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 500: \"Internal Server Error\",\n};\n\nexport type Header = {\n name: string;\n value: string;\n};\nexport type QueryParam = {\n name: string;\n value: string;\n active: boolean;\n isRequired: boolean;\n};\nexport type PathParam = {\n name: string;\n value: string;\n};\n\nexport type PlaygroundForm = {\n body: string;\n queryParams: QueryParam[];\n pathParams: PathParam[];\n headers: Header[];\n identity?: string;\n};\n\nexport type PlaygroundContentProps = {\n url: string;\n method: string;\n headers?: Header[];\n queryParams?: QueryParam[];\n pathParams?: PathParam[];\n hasParams: boolean;\n};\n\nexport const Playground = ({\n url,\n method,\n headers = [{ name: \"\", value: \"\" }],\n queryParams = [],\n pathParams = [],\n hasParams,\n}: PlaygroundContentProps) => {\n const variables = useOasConfig();\n const [server] = useQuery({ query: GetServerQuery, variables });\n\n const { register, control, handleSubmit, watch, ...form } =\n useForm<PlaygroundForm>({\n defaultValues: {\n body: \"\",\n queryParams,\n headers,\n pathParams,\n identity: NO_IDENTITY,\n },\n });\n const formState = watch();\n const identities = useApiIdentities();\n\n const queryMutation = useMutation({\n mutationFn: async (data: PlaygroundForm) => {\n const requestUrl = createUrl(server.data?.schema.url ?? \"\", url, data);\n const start = performance.now();\n\n const request = new Request(requestUrl, {\n method: method.toUpperCase(),\n headers: Object.fromEntries(\n data.headers\n .filter((h) => h.name)\n .map((header) => [header.name, header.value]),\n ),\n });\n\n if (data.identity !== NO_IDENTITY) {\n identities.data\n ?.find((i) => i.id === data.identity)\n ?.authorizeRequest(request);\n }\n const response = await fetch(request);\n\n const body = await response.text();\n\n return {\n status: response.status,\n headers: response.headers,\n size: body.length,\n body,\n time: performance.now() - start,\n };\n },\n });\n\n const path = url.split(\"/\").map((part, i, arr) => (\n <Fragment key={part}>\n {part.startsWith(\"{\") && part.endsWith(\"}\") ? (\n <ColorizedParam\n name={part}\n backgroundOpacity=\"0\"\n slug={part.slice(1, -1)}\n >\n {\n formState.pathParams.find((p) => p.name === part.slice(1, -1))\n ?.value\n }\n </ColorizedParam>\n ) : (\n part\n )}\n {i < arr.length - 1 && \"/\"}\n <wbr />\n </Fragment>\n ));\n\n const lang = mimeTypeToLanguage(\n queryMutation.data?.headers.get(\"Content-Type\") ?? \"\",\n );\n\n const headerEntries = Array.from(queryMutation.data?.headers.entries() ?? []);\n\n const urlQueryParams = formState.queryParams\n .filter((p) => p.active)\n .map((p) => (\n <Fragment key={p.name}>\n {p.name}={p.value}\n <wbr />\n </Fragment>\n ));\n return (\n <FormProvider {...{ register, control, handleSubmit, watch, ...form }}>\n <form onSubmit={handleSubmit((data) => queryMutation.mutateAsync(data))}>\n <div className=\"grid grid-cols-2 text-sm h-full\">\n <div className=\"flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto\">\n <div className=\"flex gap-2 items-stretch\">\n <div className=\"flex flex-1 items-center w-full border rounded-md border-border\">\n <div className=\"border-r border-border p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono\">\n {method.toUpperCase()}\n </div>\n <div className=\"p-2 font-mono text-xs\">\n {path}\n {urlQueryParams.length > 0 ? \"?\" : \"\"}\n {urlQueryParams}\n </div>\n </div>\n <Button type=\"submit\" className=\"h-auto flex gap-1\">\n Send\n </Button>\n </div>\n <Tabs defaultValue={hasParams ? \"parameters\" : \"headers\"}>\n <div className=\"flex justify-between\">\n <TabsList>\n {hasParams && (\n <TabsTrigger value=\"parameters\">Parameters</TabsTrigger>\n )}\n <TabsTrigger value=\"headers\">\n Headers{\" \"}\n {formState.headers.length > 0 &&\n `(${formState.headers.length})`}\n </TabsTrigger>\n <TabsTrigger\n value=\"body\"\n disabled={[\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(\n method.toUpperCase(),\n )}\n >\n Body\n </TabsTrigger>\n </TabsList>\n <div className=\"flex gap-2 items-center\">\n Auth:\n <Select\n onValueChange={(value) => form.setValue(\"identity\", value)}\n defaultValue={formState.identity}\n >\n <SelectTrigger className=\"w-[180px] flex\">\n {identities.isPending ? <Spinner /> : <SelectValue />}\n </SelectTrigger>\n <SelectContent align=\"center\">\n <SelectItem value={NO_IDENTITY}>None</SelectItem>\n {identities.data?.map((identity) => (\n <SelectItem key={identity.id} value={identity.id}>\n {identity.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <TabsContent value=\"headers\">\n <Headers control={control} register={register} />\n </TabsContent>\n <TabsContent value=\"parameters\">\n <div className=\"grid grid-cols-[min-content_1fr_1fr_auto]\">\n {pathParams.length > 0 && (\n <div className=\"font-semibold my-3 col-span-3\">\n Path Parameters\n </div>\n )}\n <PathParams control={control} register={register} />\n {queryParams.length > 0 && (\n <span className=\"font-semibold my-3 col-span-3\">\n Query Parameters\n </span>\n )}\n <QueryParams control={control} />\n </div>\n </TabsContent>\n <TabsContent value=\"body\">\n <textarea\n {...register(\"body\")}\n className=\"border border-border w-full rounded p-2 bg-muted h-40\"\n />\n </TabsContent>\n </Tabs>\n </div>\n <div className=\"flex flex-col gap-4 p-8 bg-muted/70\">\n {queryMutation.error ? (\n <div>{queryMutation.error.message}</div>\n ) : queryMutation.data ? (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex gap-2\">\n <div className=\"flex text-xs gap-6\">\n <div>\n Status: {queryMutation.data.status}{\" \"}\n {statusCodeMap[queryMutation.data.status] ?? \"\"}\n </div>\n <div>Time: {queryMutation.data.time.toFixed(0)}ms</div>\n <div>Size: {queryMutation.data.size} B</div>\n </div>\n </div>\n {/*<UrlDisplay host={host} path={url} />*/}\n <Tabs defaultValue=\"response\">\n <TabsList>\n <TabsTrigger value=\"response\">Response</TabsTrigger>\n <TabsTrigger value=\"headers\">\n {headerEntries.length\n ? `Headers (${headerEntries.length})`\n : \"No headers\"}\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"response\">\n <Card className=\"shadow-none p-4\">\n <SyntaxHighlight\n language={lang ?? \"json\"}\n noBackground\n className=\"overflow-x-auto \"\n code={queryMutation.data.body ?? JSON.stringify(\"\")}\n />\n </Card>\n </TabsContent>\n <TabsContent value=\"headers\">\n <Card className=\"grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4\">\n <div className=\"font-semibold\">Key</div>\n <div className=\"font-semibold\">Value</div>\n {headerEntries.map(([key, value]) => (\n <Fragment key={key}>\n <div>{key}</div>\n <div>{value}</div>\n </Fragment>\n ))}\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n ) : (\n <div className=\"grid place-items-center h-full\">\n <span className=\"text-[16px] font-semibold text-muted-foreground\">\n {queryMutation.isPending ? (\n <Spinner />\n ) : (\n \"Send a request first to see the response here\"\n )}\n </span>\n </div>\n )}\n </div>\n </div>\n </form>\n </FormProvider>\n );\n};\n\nexport default Playground;\n"],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","createUrl","host","path","data","url","v","_a","part","param","createVariantComponent","tag","cvx","MyVariant","asChild","Comp","Slot","InlineInput","Headers","control","register","fields","append","remove","useFieldArray","selectedIdentity","useWatch","liveHeaders","disableAuth","NO_IDENTITY","jsxs","header","i","isDisabledByAuth","TriangleAlertIcon","XIcon","Button","ParameterValue","forwardRef","color","usePastellizedColor","PathParams","DATA_ATTR","QueryParams","requiredFields","useFormContext","field","Controller","GetServerQuery","graphql","mimeTypeToLanguage","mimeType","mime","statusCodeMap","Playground","method","headers","queryParams","pathParams","hasParams","variables","useOasConfig","server","useQuery","handleSubmit","watch","form","useForm","formState","identities","useApiIdentities","queryMutation","useMutation","requestUrl","start","request","h","_c","_b","response","body","arr","Fragment","ColorizedParam","p","lang","headerEntries","urlQueryParams","FormProvider","Tabs","TabsList","TabsTrigger","Select","value","SelectTrigger","Spinner","SelectValue","SelectContent","SelectItem","identity","TabsContent","SyntaxHighlight","key"],"mappings":"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"}
1
+ {"version":3,"file":"Playground-DOHxca0P.js","sources":["../src/lib/ui/Card.tsx","../src/lib/plugins/openapi/playground/createUrl.ts","../src/lib/util/createVariantComponent.tsx","../src/lib/plugins/openapi/playground/InlineInput.tsx","../src/lib/plugins/openapi/playground/Headers.tsx","../src/lib/plugins/openapi/playground/PathParams.tsx","../src/lib/plugins/openapi/playground/QueryParams.tsx","../src/lib/plugins/openapi/playground/Playground.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border border-border bg-card text-card-foreground shadow\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","import type { PlaygroundForm } from \"./Playground.js\";\n\nexport const createUrl = (host: string, path: string, data: PlaygroundForm) => {\n const url = new URL(\n host +\n path\n .split(\"/\")\n .map((v) =>\n v.startsWith(\"{\") && v.endsWith(\"}\")\n ? data.pathParams.find((part) => part.name === v.slice(1, -1))\n ?.value ?? v\n : v,\n )\n .join(\"/\"),\n );\n\n data.queryParams.forEach((param) => {\n url.searchParams.set(param.name, param.value);\n });\n\n return url;\n};\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport type { ClassValue } from \"clsx\";\nimport * as React from \"react\";\nimport type { JSX } from \"react/jsx-runtime\";\nimport { cn } from \"./cn.js\";\n\nconst createVariantComponent = <\n E extends keyof React.ReactHTML,\n C extends ReturnType<typeof cva>,\n>(\n tag: E,\n cvx: ClassValue | C,\n // variantProps: Array<keyof VariantProps<C>> = [],\n) => {\n const MyVariant = React.forwardRef<\n HTMLElement,\n JSX.IntrinsicElements[E] & { className?: ClassValue; asChild?: boolean }\n >(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : tag;\n\n return React.createElement(Comp, {\n ...props,\n ref,\n className:\n typeof cvx === \"function\" ? cvx({ className }) : cn(cvx, className),\n });\n });\n\n MyVariant.displayName = `VariantComponent(${tag})`;\n\n return MyVariant;\n};\n\nexport default createVariantComponent;\n","import createVariantComponent from \"../../../util/createVariantComponent.js\";\n\nexport const InlineInput = createVariantComponent(\n \"input\",\n \"px-2 bg-transparent h-6 font-mono text-xs m-2\",\n);\n","import { TriangleAlertIcon, XIcon } from \"lucide-react\";\nimport {\n Control,\n useFieldArray,\n UseFormRegister,\n useWatch,\n} from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport { NO_IDENTITY, type PlaygroundForm } from \"./Playground.js\";\n\nexport const Headers = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields, append, remove } = useFieldArray<PlaygroundForm>({\n control,\n name: \"headers\",\n });\n const selectedIdentity = useWatch({ name: \"identity\", control });\n const liveHeaders = useWatch({ name: \"headers\", control });\n\n const disableAuth = selectedIdentity !== NO_IDENTITY;\n\n return (\n <div className=\"grid grid-cols-[1fr_1fr_auto]\">\n {fields.map((header, i) => {\n const isDisabledByAuth =\n disableAuth && liveHeaders.at(i)?.name === \"Authorization\";\n\n return (\n <div\n key={header.id}\n className={cn(\n \"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\",\n isDisabledByAuth && \"line-through\",\n )}\n title={\n isDisabledByAuth\n ? \"This header is disabled because authentication was selected\"\n : undefined\n }\n >\n <div className=\"flex gap-2 items-center\">\n <InlineInput\n {...register(`headers.${i}.name`)}\n placeholder=\"Name\"\n className=\"peer\"\n autoComplete=\"off\"\n />\n {isDisabledByAuth && (\n <TriangleAlertIcon size={16} className=\"text-amber-500\" />\n )}\n </div>\n <InlineInput\n placeholder={\"Value\"}\n className=\"peer\"\n {...register(`headers.${i}.value`)}\n autoComplete=\"off\"\n />\n <button\n className=\"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\"\n onClick={() => {\n remove(i);\n }}\n type=\"button\"\n >\n <XIcon size={16} />\n </button>\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n );\n })}\n <Button\n className=\"col-span-full mt-4\"\n onClick={() => append({ name: \"\", value: \"\" })}\n type=\"button\"\n >\n Add header\n </Button>\n </div>\n );\n};\n","import { forwardRef, InputHTMLAttributes } from \"react\";\nimport { Control, useFieldArray, UseFormRegister } from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { DATA_ATTR, usePastellizedColor } from \"../ColorizedParam.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\ntype ParameterValueProps = {\n part: string;\n} & InputHTMLAttributes<HTMLInputElement>;\n\nconst ParameterValue = forwardRef<HTMLInputElement, ParameterValueProps>(\n function ParameterValue({ part, className, ...props }, ref) {\n const color = usePastellizedColor(part);\n return (\n <InlineInput\n {...props}\n ref={ref}\n className={cn(className, \"opacity-80 data-[active=true]:opacity-100\")}\n style={{\n // color: `hsl(${color})`,\n outlineColor: `hsl(${color})`,\n }}\n />\n );\n },\n);\n\nexport const PathParams = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"pathParams\",\n });\n\n return fields.map((part, i) => (\n <div\n key={part.id}\n className=\"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\"\n >\n <InlineInput\n {...register(`pathParams.${i}.name`)}\n disabled\n placeholder=\"Name\"\n className=\"peer\"\n />\n <ParameterValue\n {...register(`pathParams.${i}.value`)}\n part={part.name}\n {...{ [DATA_ATTR]: part.name }}\n placeholder=\"Value\"\n className=\"peer\"\n />\n\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { XIcon } from \"lucide-react\";\nimport {\n Control,\n Controller,\n useFieldArray,\n useFormContext,\n} from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\nexport const QueryParams = ({\n control,\n}: {\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"queryParams\",\n });\n const form = useFormContext<PlaygroundForm>();\n\n const requiredFields = form\n .getValues(`queryParams`)\n .map((param) => param.isRequired);\n\n return fields.map((field, i) => (\n <div\n key={field.id}\n className=\"px-2 grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-accent rounded overflow-hidden group\"\n >\n <Controller\n control={control}\n name={`queryParams.${i}.active`}\n render={({ field }) => (\n <input\n type=\"checkbox\"\n id={`queryParams.${i}.active`}\n checked={field.value}\n onChange={field.onChange}\n />\n )}\n />\n\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput asChild>\n <label\n className=\"flex items-center\"\n htmlFor={`queryParams.${i}.active`}\n title={requiredFields[i] ? \"Required field\" : undefined}\n >\n {field.value}\n {requiredFields[i] && <sup className=\"text-destructive\">*</sup>}\n </label>\n </InlineInput>\n );\n }}\n name={`queryParams.${i}.name`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput {...field} placeholder=\"Value\" className=\"peer\" />\n );\n }}\n name={`queryParams.${i}.value`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <button\n type=\"button\"\n className={cn(\n \"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\",\n field.value.length === 0 && \"opacity-0 pointer-events-none\",\n )}\n onClick={() => field.onChange(\"\")}\n >\n <XIcon size={16} />\n </button>\n );\n }}\n name={`queryParams.${i}.value`}\n />\n\n <div className=\"-mx-2 col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useQuery } from \"urql\";\nimport { useApiIdentities } from \"../../../components/context/DevPortalProvider.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../components/Select.js\";\nimport { Spinner } from \"../../../components/Spinner.js\";\nimport { SyntaxHighlight } from \"../../../components/SyntaxHighlight.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../../ui/Tabs.js\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport { useOasConfig } from \"../context.js\";\nimport { graphql } from \"../graphql/index.js\";\nimport { createUrl } from \"./createUrl.js\";\nimport { Headers } from \"./Headers.js\";\nimport { PathParams } from \"./PathParams.js\";\nimport { QueryParams } from \"./QueryParams.js\";\n\nexport const NO_IDENTITY = \"__none\";\n\nconst GetServerQuery = graphql(/* GraphQL */ `\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n }\n }\n`);\n\nfunction mimeTypeToLanguage(mimeType: string) {\n const mimeTypeMapping = {\n \"application/json\": \"json\",\n \"text/json\": \"json\",\n \"text/html\": \"html\",\n \"text/css\": \"css\",\n \"text/javascript\": \"javascript\",\n \"application/xml\": \"xml\",\n \"application/xhtml+xml\": \"xhtml\",\n \"text/plain\": \"plain\",\n } as const;\n\n return Object.entries(mimeTypeMapping).find(([mime]) =>\n mimeType.includes(mime),\n )?.[0][1];\n}\n\nconst statusCodeMap: Record<number, string> = {\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 204: \"No Content\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 500: \"Internal Server Error\",\n};\n\nexport type Header = {\n name: string;\n value: string;\n};\nexport type QueryParam = {\n name: string;\n value: string;\n active: boolean;\n isRequired: boolean;\n};\nexport type PathParam = {\n name: string;\n value: string;\n};\n\nexport type PlaygroundForm = {\n body: string;\n queryParams: QueryParam[];\n pathParams: PathParam[];\n headers: Header[];\n identity?: string;\n};\n\nexport type PlaygroundContentProps = {\n url: string;\n method: string;\n headers?: Header[];\n queryParams?: QueryParam[];\n pathParams?: PathParam[];\n hasParams: boolean;\n};\n\nexport const Playground = ({\n url,\n method,\n headers = [{ name: \"\", value: \"\" }],\n queryParams = [],\n pathParams = [],\n hasParams,\n}: PlaygroundContentProps) => {\n const variables = useOasConfig();\n const [server] = useQuery({ query: GetServerQuery, variables });\n\n const { register, control, handleSubmit, watch, ...form } =\n useForm<PlaygroundForm>({\n defaultValues: {\n body: \"\",\n queryParams,\n headers,\n pathParams,\n identity: NO_IDENTITY,\n },\n });\n const formState = watch();\n const identities = useApiIdentities();\n\n const queryMutation = useMutation({\n mutationFn: async (data: PlaygroundForm) => {\n const requestUrl = createUrl(server.data?.schema.url ?? \"\", url, data);\n const start = performance.now();\n\n const request = new Request(requestUrl, {\n method: method.toUpperCase(),\n headers: Object.fromEntries(\n data.headers\n .filter((h) => h.name)\n .map((header) => [header.name, header.value]),\n ),\n });\n\n if (data.identity !== NO_IDENTITY) {\n identities.data\n ?.find((i) => i.id === data.identity)\n ?.authorizeRequest(request);\n }\n const response = await fetch(request);\n\n const body = await response.text();\n\n return {\n status: response.status,\n headers: response.headers,\n size: body.length,\n body,\n time: performance.now() - start,\n };\n },\n });\n\n const path = url.split(\"/\").map((part, i, arr) => (\n <Fragment key={part}>\n {part.startsWith(\"{\") && part.endsWith(\"}\") ? (\n <ColorizedParam\n name={part}\n backgroundOpacity=\"0\"\n slug={part.slice(1, -1)}\n >\n {\n formState.pathParams.find((p) => p.name === part.slice(1, -1))\n ?.value\n }\n </ColorizedParam>\n ) : (\n part\n )}\n {i < arr.length - 1 && \"/\"}\n <wbr />\n </Fragment>\n ));\n\n const lang = mimeTypeToLanguage(\n queryMutation.data?.headers.get(\"Content-Type\") ?? \"\",\n );\n\n const headerEntries = Array.from(queryMutation.data?.headers.entries() ?? []);\n\n const urlQueryParams = formState.queryParams\n .filter((p) => p.active)\n .map((p) => (\n <Fragment key={p.name}>\n {p.name}={p.value}\n <wbr />\n </Fragment>\n ));\n return (\n <FormProvider {...{ register, control, handleSubmit, watch, ...form }}>\n <form onSubmit={handleSubmit((data) => queryMutation.mutateAsync(data))}>\n <div className=\"grid grid-cols-2 text-sm h-full\">\n <div className=\"flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto\">\n <div className=\"flex gap-2 items-stretch\">\n <div className=\"flex flex-1 items-center w-full border rounded-md border-border\">\n <div className=\"border-r border-border p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono\">\n {method.toUpperCase()}\n </div>\n <div className=\"p-2 font-mono text-xs\">\n {path}\n {urlQueryParams.length > 0 ? \"?\" : \"\"}\n {urlQueryParams}\n </div>\n </div>\n <Button type=\"submit\" className=\"h-auto flex gap-1\">\n Send\n </Button>\n </div>\n <Tabs defaultValue={hasParams ? \"parameters\" : \"headers\"}>\n <div className=\"flex justify-between\">\n <TabsList>\n {hasParams && (\n <TabsTrigger value=\"parameters\">Parameters</TabsTrigger>\n )}\n <TabsTrigger value=\"headers\">\n Headers{\" \"}\n {formState.headers.length > 0 &&\n `(${formState.headers.length})`}\n </TabsTrigger>\n <TabsTrigger\n value=\"body\"\n disabled={[\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(\n method.toUpperCase(),\n )}\n >\n Body\n </TabsTrigger>\n </TabsList>\n <div className=\"flex gap-2 items-center\">\n Auth:\n <Select\n onValueChange={(value) => form.setValue(\"identity\", value)}\n defaultValue={formState.identity}\n >\n <SelectTrigger className=\"w-[180px] flex\">\n {identities.isPending ? <Spinner /> : <SelectValue />}\n </SelectTrigger>\n <SelectContent align=\"center\">\n <SelectItem value={NO_IDENTITY}>None</SelectItem>\n {identities.data?.map((identity) => (\n <SelectItem key={identity.id} value={identity.id}>\n {identity.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <TabsContent value=\"headers\">\n <Headers control={control} register={register} />\n </TabsContent>\n <TabsContent value=\"parameters\">\n <div className=\"grid grid-cols-[min-content_1fr_1fr_auto]\">\n {pathParams.length > 0 && (\n <div className=\"font-semibold my-3 col-span-3\">\n Path Parameters\n </div>\n )}\n <PathParams control={control} register={register} />\n {queryParams.length > 0 && (\n <span className=\"font-semibold my-3 col-span-3\">\n Query Parameters\n </span>\n )}\n <QueryParams control={control} />\n </div>\n </TabsContent>\n <TabsContent value=\"body\">\n <textarea\n {...register(\"body\")}\n className=\"border border-border w-full rounded p-2 bg-muted h-40\"\n />\n </TabsContent>\n </Tabs>\n </div>\n <div className=\"flex flex-col gap-4 p-8 bg-muted/70\">\n {queryMutation.error ? (\n <div>{queryMutation.error.message}</div>\n ) : queryMutation.data ? (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex gap-2\">\n <div className=\"flex text-xs gap-6\">\n <div>\n Status: {queryMutation.data.status}{\" \"}\n {statusCodeMap[queryMutation.data.status] ?? \"\"}\n </div>\n <div>Time: {queryMutation.data.time.toFixed(0)}ms</div>\n <div>Size: {queryMutation.data.size} B</div>\n </div>\n </div>\n {/*<UrlDisplay host={host} path={url} />*/}\n <Tabs defaultValue=\"response\">\n <TabsList>\n <TabsTrigger value=\"response\">Response</TabsTrigger>\n <TabsTrigger value=\"headers\">\n {headerEntries.length\n ? `Headers (${headerEntries.length})`\n : \"No headers\"}\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"response\">\n <Card className=\"shadow-none p-4\">\n <SyntaxHighlight\n language={lang ?? \"json\"}\n noBackground\n className=\"overflow-x-auto \"\n code={queryMutation.data.body ?? JSON.stringify(\"\")}\n />\n </Card>\n </TabsContent>\n <TabsContent value=\"headers\">\n <Card className=\"grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4\">\n <div className=\"font-semibold\">Key</div>\n <div className=\"font-semibold\">Value</div>\n {headerEntries.map(([key, value]) => (\n <Fragment key={key}>\n <div>{key}</div>\n <div>{value}</div>\n </Fragment>\n ))}\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n ) : (\n <div className=\"grid place-items-center h-full\">\n <span className=\"text-[16px] font-semibold text-muted-foreground\">\n {queryMutation.isPending ? (\n <Spinner />\n ) : (\n \"Send a request first to see the response here\"\n )}\n </span>\n </div>\n )}\n </div>\n </div>\n </form>\n </FormProvider>\n );\n};\n\nexport default Playground;\n"],"names":["jsx","jsxs","TriangleAlertIcon","XIcon","ParameterValue","field","_a","_c","_b"],"mappings":";;;;;;;;;;;;;AAGA,MAAM,OAAO,MAAM,WAGjB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1BA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,EAAA;AACN,CACD;AACD,KAAK,cAAc;AAEnB,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1BA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA,EAAA;AACN,CACD;AACD,WAAW,cAAc;AAEzB,MAAM,YAAY,MAAM,WAGtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1BA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,IACnE,GAAG;AAAA,EAAA;AACN,CACD;AACD,UAAU,cAAc;AAExB,MAAM,kBAAkB,MAAM,WAG5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1BA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,IACvD,GAAG;AAAA,EAAA;AACN,CACD;AACD,gBAAgB,cAAc;AAE9B,MAAM,cAAc,MAAM,WAGxB,CAAC,EAAE,WAAW,GAAG,SAAS,8CACzB,OAAI,EAAA,KAAU,WAAW,GAAG,YAAY,SAAS,GAAI,GAAG,MAAO,CAAA,CACjE;AACD,YAAY,cAAc;AAE1B,MAAM,aAAa,MAAM,WAGvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1BA,kCAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC;AAAA,IACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,IACpD,GAAG;AAAA,EAAA;AACN,CACD;AACD,WAAW,cAAc;ACtElB,MAAM,YAAY,CAAC,MAAc,MAAc,SAAyB;AAC7E,QAAM,MAAM,IAAI;AAAA,IACd,OACE,KACG,MAAM,GAAG,EACT;AAAA,MAAI,CAAC,MACJ;;AAAA,iBAAE,WAAW,GAAG,KAAK,EAAE,SAAS,GAAG,MAC/B,UAAK,WAAW,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,MAA3D,mBACI,UAAS,IACb;AAAA;AAAA,IAAA,EAEL,KAAK,GAAG;AAAA,EAAA;AAGV,OAAA,YAAY,QAAQ,CAAC,UAAU;AAClC,QAAI,aAAa,IAAI,MAAM,MAAM,MAAM,KAAK;AAAA,EAAA,CAC7C;AAEM,SAAA;AACT;ACdA,MAAM,yBAAyB,CAI7B,KACA,QAEG;AACG,QAAA,YAAY,MAAM,WAGtB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QAAQ;AACrC,UAAA,OAAO,UAAU,OAAO;AAEvB,WAAA,MAAM,cAAc,MAAM;AAAA,MAC/B,GAAG;AAAA,MACH;AAAA,MACA,WACmD,GAAG,KAAK,SAAS;AAAA,IAAA,CACrE;AAAA,EAAA,CACF;AAES,YAAA,cAAc,oBAAoB,GAAG;AAExC,SAAA;AACT;AC9BO,MAAM,cAAc;AAAA,EACzB;AAAA,EACA;AACF;ACOO,MAAM,UAAU,CAAC;AAAA,EACtB;AAAA,EACA;AACF,MAGM;AACJ,QAAM,EAAE,QAAQ,QAAQ,OAAA,IAAW,cAA8B;AAAA,IAC/D;AAAA,IACA,MAAM;AAAA,EAAA,CACP;AACD,QAAM,mBAAmB,SAAS,EAAE,MAAM,YAAY,SAAS;AAC/D,QAAM,cAAc,SAAS,EAAE,MAAM,WAAW,SAAS;AAEzD,QAAM,cAAc,qBAAqB;AAGvC,SAAAC,kCAAA,KAAC,OAAI,EAAA,WAAU,iCACZ,UAAA;AAAA,IAAO,OAAA,IAAI,CAAC,QAAQ,MAAM;;AACzB,YAAM,mBACJ,iBAAe,iBAAY,GAAG,CAAC,MAAhB,mBAAmB,UAAS;AAG3C,aAAAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAW;AAAA,YACT;AAAA,YACA,oBAAoB;AAAA,UACtB;AAAA,UACA,OACE,mBACI,gEACA;AAAA,UAGN,UAAA;AAAA,YAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,cAAAD,kCAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACE,GAAG,SAAS,WAAW,CAAC,OAAO;AAAA,kBAChC,aAAY;AAAA,kBACZ,WAAU;AAAA,kBACV,cAAa;AAAA,gBAAA;AAAA,cACf;AAAA,cACC,oBACEA,kCAAA,IAAAE,eAAA,EAAkB,MAAM,IAAI,WAAU,kBAAiB;AAAA,YAAA,GAE5D;AAAA,YACAF,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,aAAa;AAAA,gBACb,WAAU;AAAA,gBACT,GAAG,SAAS,WAAW,CAAC,QAAQ;AAAA,gBACjC,cAAa;AAAA,cAAA;AAAA,YACf;AAAA,YACAA,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS,MAAM;AACb,yBAAO,CAAC;AAAA,gBACV;AAAA,gBACA,MAAK;AAAA,gBAEL,UAAAA,kCAAAA,IAACG,GAAM,EAAA,MAAM,GAAI,CAAA;AAAA,cAAA;AAAA,YACnB;AAAA,YACAH,kCAAAA,IAAC,OAAI,EAAA,WAAU,uCAAuC,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QArCjD,OAAO;AAAA,MAAA;AAAA,IAsCd,CAEH;AAAA,IACDA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MAAM,OAAO,EAAE,MAAM,IAAI,OAAO,IAAI;AAAA,QAC7C,MAAK;AAAA,QACN,UAAA;AAAA,MAAA;AAAA,IAED;AAAA,EACF,EAAA,CAAA;AAEJ;AC3EA,MAAM,iBAAiB;AAAA,EACrB,SAASI,gBAAe,EAAE,MAAM,WAAW,GAAG,SAAS,KAAK;AACpD,UAAA,QAAQ,oBAAoB,IAAI;AAEpC,WAAAJ,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,WAAW,GAAG,WAAW,2CAA2C;AAAA,QACpE,OAAO;AAAA;AAAA,UAEL,cAAc,OAAO,KAAK;AAAA,QAC5B;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEO,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AACF,MAGM;AACE,QAAA,EAAE,OAAO,IAAI,cAA8B;AAAA,IAC/C;AAAA,IACA,MAAM;AAAA,EAAA,CACP;AAED,SAAO,OAAO,IAAI,CAAC,MAAM,MACvBC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAU;AAAA,MAEV,UAAA;AAAA,QAAAD,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG,SAAS,cAAc,CAAC,OAAO;AAAA,YACnC,UAAQ;AAAA,YACR,aAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QACAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG,SAAS,cAAc,CAAC,QAAQ;AAAA,YACpC,MAAM,KAAK;AAAA,YACV,GAAG,EAAE,CAAC,SAAS,GAAG,KAAK,KAAK;AAAA,YAC7B,aAAY;AAAA,YACZ,WAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAA,kCAAAA,IAAC,OAAI,EAAA,WAAU,uCAAuC,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAjBjD,KAAK;AAAA,EAAA,CAmBb;AACH;ACnDO,MAAM,cAAc,CAAC;AAAA,EAC1B;AACF,MAEM;AACE,QAAA,EAAE,OAAO,IAAI,cAA8B;AAAA,IAC/C;AAAA,IACA,MAAM;AAAA,EAAA,CACP;AACD,QAAM,OAAO;AAEP,QAAA,iBAAiB,KACpB,UAAU,aAAa,EACvB,IAAI,CAAC,UAAU,MAAM,UAAU;AAElC,SAAO,OAAO,IAAI,CAAC,OAAO,MACxBC,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,WAAU;AAAA,MAEV,UAAA;AAAA,QAAAD,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,MAAM,eAAe,CAAC;AAAA,YACtB,QAAQ,CAAC,EAAE,OAAAK,OACT,MAAAL,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,IAAI,eAAe,CAAC;AAAA,gBACpB,SAASK,OAAM;AAAA,gBACf,UAAUA,OAAM;AAAA,cAAA;AAAA,YAClB;AAAA,UAAA;AAAA,QAEJ;AAAA,QAEAL,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,QAAQ,CAAC,EAAE,OAAAK,aAAY;AAEnB,qBAAAL,kCAAAA,IAAC,aAAY,EAAA,SAAO,MAClB,UAAAC,kCAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAAS,eAAe,CAAC;AAAA,kBACzB,OAAO,eAAe,CAAC,IAAI,mBAAmB;AAAA,kBAE7C,UAAA;AAAA,oBAAAI,OAAM;AAAA,oBACN,eAAe,CAAC,2CAAM,OAAI,EAAA,WAAU,oBAAmB,UAAC,KAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAE7D,EAAA,CAAA;AAAA,YAEJ;AAAA,YACA,MAAM,eAAe,CAAC;AAAA,UAAA;AAAA,QACxB;AAAA,QACAL,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,QAAQ,CAAC,EAAE,OAAAK,aAAY;AACrB,2DACG,aAAa,EAAA,GAAGA,QAAO,aAAY,SAAQ,WAAU,OAAO,CAAA;AAAA,YAEjE;AAAA,YACA,MAAM,eAAe,CAAC;AAAA,UAAA;AAAA,QACxB;AAAA,QACAL,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,QAAQ,CAAC,EAAE,OAAAK,aAAY;AAEnB,qBAAAL,kCAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAW;AAAA,oBACT;AAAA,oBACAK,OAAM,MAAM,WAAW,KAAK;AAAA,kBAC9B;AAAA,kBACA,SAAS,MAAMA,OAAM,SAAS,EAAE;AAAA,kBAEhC,UAAAL,kCAAAA,IAACG,GAAM,EAAA,MAAM,GAAI,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAGvB;AAAA,YACA,MAAM,eAAe,CAAC;AAAA,UAAA;AAAA,QACxB;AAAA,QAEAH,kCAAAA,IAAC,OAAI,EAAA,WAAU,6CAA6C,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IA9DvD,MAAM;AAAA,EAAA,CAgEd;AACH;ACpEO,MAAM,cAAc;AAE3B,MAAM,iBAAiB;AAAA;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAM5C;AAED,SAAS,mBAAmB,UAAkB;;AAC5C,QAAM,kBAAkB;AAAA,IACtB,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,yBAAyB;AAAA,IACzB,cAAc;AAAA,EAAA;AAGT,UAAA,YAAO,QAAQ,eAAe,EAAE;AAAA,IAAK,CAAC,CAAC,IAAI,MAChD,SAAS,SAAS,IAAI;AAAA,EAAA,MADjB,mBAEH,GAAG;AACT;AAEA,MAAM,gBAAwC;AAAA,EAC5C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAkCO,MAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA,UAAU,CAAC,EAAE,MAAM,IAAI,OAAO,IAAI;AAAA,EAClC,cAAc,CAAC;AAAA,EACf,aAAa,CAAC;AAAA,EACd;AACF,MAA8B;;AAC5B,QAAM,YAAY;AACZ,QAAA,CAAC,MAAM,IAAI,SAAS,EAAE,OAAO,gBAAgB,WAAW;AAExD,QAAA,EAAE,UAAU,SAAS,cAAc,OAAO,GAAG,SACjD,QAAwB;AAAA,IACtB,eAAe;AAAA,MACb,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACZ;AAAA,EAAA,CACD;AACH,QAAM,YAAY;AAClB,QAAM,aAAa;AAEnB,QAAM,gBAAgB,YAAY;AAAA,IAChC,YAAY,OAAO,SAAyB;;AACpC,YAAA,aAAa,YAAUM,MAAA,OAAO,SAAP,gBAAAA,IAAa,OAAO,QAAO,IAAI,KAAK,IAAI;AAC/D,YAAA,QAAQ,YAAY;AAEpB,YAAA,UAAU,IAAI,QAAQ,YAAY;AAAA,QACtC,QAAQ,OAAO,YAAY;AAAA,QAC3B,SAAS,OAAO;AAAA,UACd,KAAK,QACF,OAAO,CAAC,MAAM,EAAE,IAAI,EACpB,IAAI,CAAC,WAAW,CAAC,OAAO,MAAM,OAAO,KAAK,CAAC;AAAA,QAChD;AAAA,MAAA,CACD;AAEG,UAAA,KAAK,aAAa,aAAa;AACtB,SAAAC,OAAAC,MAAA,WAAA,SAAA,gBAAAA,IACP,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,cADnB,gBAAAD,IAEP,iBAAiB;AAAA,MACvB;AACM,YAAA,WAAW,MAAM,MAAM,OAAO;AAE9B,YAAA,OAAO,MAAM,SAAS;AAErB,aAAA;AAAA,QACL,QAAQ,SAAS;AAAA,QACjB,SAAS,SAAS;AAAA,QAClB,MAAM,KAAK;AAAA,QACX;AAAA,QACA,MAAM,YAAY,IAAA,IAAQ;AAAA,MAAA;AAAA,IAE9B;AAAA,EAAA,CACD;AAEK,QAAA,OAAO,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,QACxC;;AAAAN,6CAAA,KAAC,UACE,EAAA,UAAA;AAAA,MAAA,KAAK,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,IACxCD,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,mBAAkB;AAAA,UAClB,MAAM,KAAK,MAAM,GAAG,EAAE;AAAA,UAGpB,WAAUM,MAAA,UAAA,WAAW,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,GAAG,EAAE,CAAC,MAAnD,gBAAAA,IACN;AAAA,QAAA;AAAA,MAAA,IAIR;AAAA,MAED,IAAI,IAAI,SAAS,KAAK;AAAA,4CACtB,OAAI,EAAA;AAAA,IAAA,EAAA,GAhBQ,IAiBf;AAAA,GACD;AAED,QAAM,OAAO;AAAA,MACX,mBAAc,SAAd,mBAAoB,QAAQ,IAAI,oBAAmB;AAAA,EAAA;AAG/C,QAAA,gBAAgB,MAAM,OAAK,mBAAc,SAAd,mBAAoB,QAAQ,cAAa,CAAA,CAAE;AAE5E,QAAM,iBAAiB,UAAU,YAC9B,OAAO,CAAC,MAAM,EAAE,MAAM,EACtB,IAAI,CAAC,6CACH,UACE,EAAA,UAAA;AAAA,IAAE,EAAA;AAAA,IAAK;AAAA,IAAE,EAAE;AAAA,0CACX,OAAI,EAAA;AAAA,EAAA,KAFQ,EAAE,IAGjB,CACD;AAED,SAAAN,kCAAA,IAAC,cAAc,EAAA,GAAG,EAAE,UAAU,SAAS,cAAc,OAAO,GAAG,KAAA,GAC7D,UAAAA,kCAAAA,IAAC,UAAK,UAAU,aAAa,CAAC,SAAS,cAAc,YAAY,IAAI,CAAC,GACpE,UAAAC,kCAAA,KAAC,OAAI,EAAA,WAAU,mCACb,UAAA;AAAA,IAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,qIACb,UAAA;AAAA,MAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,QAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,UAAAD,sCAAC,OAAI,EAAA,WAAU,yFACZ,UAAA,OAAO,eACV;AAAA,UACAC,kCAAAA,KAAC,OAAI,EAAA,WAAU,yBACZ,UAAA;AAAA,YAAA;AAAA,YACA,eAAe,SAAS,IAAI,MAAM;AAAA,YAClC;AAAA,UAAA,GACH;AAAA,QAAA,GACF;AAAA,8CACC,QAAO,EAAA,MAAK,UAAS,WAAU,qBAAoB,UAEpD,QAAA;AAAA,MAAA,GACF;AAAA,MACCA,kCAAA,KAAA,MAAA,EAAK,cAAc,YAAY,eAAe,WAC7C,UAAA;AAAA,QAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,UAAAA,uCAAC,UACE,EAAA,UAAA;AAAA,YAAA,aACED,kCAAA,IAAA,aAAA,EAAY,OAAM,cAAa,UAAU,cAAA;AAAA,YAE5CC,kCAAAA,KAAC,aAAY,EAAA,OAAM,WAAU,UAAA;AAAA,cAAA;AAAA,cACnB;AAAA,cACP,UAAU,QAAQ,SAAS,KAC1B,IAAI,UAAU,QAAQ,MAAM;AAAA,YAAA,GAChC;AAAA,YACAD,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAM;AAAA,gBACN,UAAU,CAAC,QAAQ,OAAO,SAAS,QAAQ,EAAE;AAAA,kBAC3C,OAAO,YAAY;AAAA,gBACrB;AAAA,gBACD,UAAA;AAAA,cAAA;AAAA,YAED;AAAA,UAAA,GACF;AAAA,UACAC,kCAAAA,KAAC,OAAI,EAAA,WAAU,2BAA0B,UAAA;AAAA,YAAA;AAAA,YAEvCA,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAe,CAAC,UAAU,KAAK,SAAS,YAAY,KAAK;AAAA,gBACzD,cAAc,UAAU;AAAA,gBAExB,UAAA;AAAA,kBAACD,kCAAA,IAAA,eAAA,EAAc,WAAU,kBACtB,UAAW,WAAA,kDAAa,SAAQ,CAAA,CAAA,IAAMA,kCAAA,IAAA,aAAA,CAAY,CAAA,GACrD;AAAA,kBACAC,kCAAAA,KAAC,eAAc,EAAA,OAAM,UACnB,UAAA;AAAA,oBAACD,kCAAA,IAAA,YAAA,EAAW,OAAO,aAAa,UAAI,QAAA;AAAA,qBACnC,gBAAW,SAAX,mBAAiB,IAAI,CAAC,aACpBA,kCAAAA,IAAA,YAAA,EAA6B,OAAO,SAAS,IAC3C,UAAA,SAAS,MADK,GAAA,SAAS,EAE1B;AAAA,kBACD,GACH;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA,GACF;AAAA,QAAA,GACF;AAAA,QACAA,kCAAAA,IAAC,eAAY,OAAM,WACjB,gDAAC,SAAQ,EAAA,SAAkB,UAAoB,EACjD,CAAA;AAAA,8CACC,aAAY,EAAA,OAAM,cACjB,UAACC,kCAAA,KAAA,OAAA,EAAI,WAAU,6CACZ,UAAA;AAAA,UAAA,WAAW,SAAS,KACnBD,sCAAC,OAAI,EAAA,WAAU,iCAAgC,UAE/C,mBAAA;AAAA,UAEFA,kCAAAA,IAAC,YAAW,EAAA,SAAkB,SAAoB,CAAA;AAAA,UACjD,YAAY,SAAS,2CACnB,QAAK,EAAA,WAAU,iCAAgC,UAEhD,oBAAA;AAAA,UAEFA,sCAAC,eAAY,SAAkB;AAAA,QAAA,EAAA,CACjC,EACF,CAAA;AAAA,QACAA,kCAAAA,IAAC,aAAY,EAAA,OAAM,QACjB,UAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAG,SAAS,MAAM;AAAA,YACnB,WAAU;AAAA,UAAA;AAAA,QAAA,GAEd;AAAA,MAAA,GACF;AAAA,IAAA,GACF;AAAA,0CACC,OAAI,EAAA,WAAU,uCACZ,UAAA,cAAc,QACZA,kCAAAA,IAAA,OAAA,EAAK,UAAc,cAAA,MAAM,SAAQ,IAChC,cAAc,OACfC,uCAAA,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,MAAAD,kCAAAA,IAAC,SAAI,WAAU,cACb,UAACC,kCAAA,KAAA,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,QAAAA,uCAAC,OAAI,EAAA,UAAA;AAAA,UAAA;AAAA,UACM,cAAc,KAAK;AAAA,UAAQ;AAAA,UACnC,cAAc,cAAc,KAAK,MAAM,KAAK;AAAA,QAAA,GAC/C;AAAA,+CACC,OAAI,EAAA,UAAA;AAAA,UAAA;AAAA,UAAO,cAAc,KAAK,KAAK,QAAQ,CAAC;AAAA,UAAE;AAAA,QAAA,GAAE;AAAA,+CAChD,OAAI,EAAA,UAAA;AAAA,UAAA;AAAA,UAAO,cAAc,KAAK;AAAA,UAAK;AAAA,QAAA,GAAE;AAAA,MAAA,EAAA,CACxC,EACF,CAAA;AAAA,MAEAA,kCAAAA,KAAC,MAAK,EAAA,cAAa,YACjB,UAAA;AAAA,QAAAA,uCAAC,UACC,EAAA,UAAA;AAAA,UAACD,kCAAA,IAAA,aAAA,EAAY,OAAM,YAAW,UAAQ,YAAA;AAAA,UACtCA,kCAAAA,IAAC,aAAY,EAAA,OAAM,WAChB,UAAA,cAAc,SACX,YAAY,cAAc,MAAM,MAChC,aACN,CAAA;AAAA,QAAA,GACF;AAAA,8CAEC,aAAY,EAAA,OAAM,YACjB,UAACA,sCAAA,MAAA,EAAK,WAAU,mBACd,UAAAA,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,UAAU,QAAQ;AAAA,YAClB,cAAY;AAAA,YACZ,WAAU;AAAA,YACV,MAAM,cAAc,KAAK,QAAQ,KAAK,UAAU,EAAE;AAAA,UAAA;AAAA,WAEtD,EACF,CAAA;AAAA,8CACC,aAAY,EAAA,OAAM,WACjB,UAACC,kCAAA,KAAA,MAAA,EAAK,WAAU,qEACd,UAAA;AAAA,UAACD,kCAAA,IAAA,OAAA,EAAI,WAAU,iBAAgB,UAAG,OAAA;AAAA,UACjCA,kCAAA,IAAA,OAAA,EAAI,WAAU,iBAAgB,UAAK,SAAA;AAAA,UACnC,cAAc,IAAI,CAAC,CAAC,KAAK,KAAK,6CAC5B,UACC,EAAA,UAAA;AAAA,YAAAA,kCAAAA,IAAC,SAAK,UAAI,IAAA,CAAA;AAAA,YACVA,kCAAAA,IAAC,SAAK,UAAM,MAAA,CAAA;AAAA,UAAA,EAAA,GAFC,GAGf,CACD;AAAA,QAAA,EAAA,CACH,EACF,CAAA;AAAA,MAAA,GACF;AAAA,IAAA,GACF,IAECA,sCAAA,OAAA,EAAI,WAAU,kCACb,gDAAC,QAAK,EAAA,WAAU,mDACb,UAAA,cAAc,YACZA,sCAAA,SAAA,CAAQ,CAAA,IAET,gDAAA,CAEJ,EACF,CAAA,GAEJ;AAAA,EAAA,GACF,GACF,EACF,CAAA;AAEJ;"}
@@ -0,0 +1,13 @@
1
+ import { j as jsxRuntimeExports, O as Outlet } from "./jsx-runtime-DvZ6OKMM.js";
2
+ import { O as OasConfigProvider } from "./context-BoN_3uxi.js";
3
+ import { P as Provider } from "./urql-DtVKPBx_.js";
4
+ function OpenApiRoute({
5
+ config,
6
+ client
7
+ }) {
8
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Provider, { value: client, children: /* @__PURE__ */ jsxRuntimeExports.jsx(OasConfigProvider, { value: { config }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {}) }) });
9
+ }
10
+ export {
11
+ OpenApiRoute
12
+ };
13
+ //# sourceMappingURL=Route-CR6TEwVC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Route-D-egsGHx.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["OpenApiRoute","config","client","jsx","Provider","OasConfigProvider","Outlet"],"mappings":";;;AAMO,SAASA,EAAa;AAAA,EAC3B,QAAAC;AAAA,EACA,QAAAC;AACF,GAGG;AACD,SACGC,gBAAAA,EAAAA,IAAAC,GAAA,EAAS,OAAOF,GACf,UAACC,gBAAAA,EAAA,IAAAE,GAAA,EAAkB,OAAO,EAAE,QAAAJ,EAAO,GACjC,UAACE,gBAAAA,EAAA,IAAAG,GAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Route-CR6TEwVC.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["jsx"],"mappings":";;;AAMO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AACF,GAGG;AACD,SACGA,kCAAAA,IAAA,UAAA,EAAS,OAAO,QACf,UAACA,kCAAA,IAAA,mBAAA,EAAkB,OAAO,EAAE,OAAO,GACjC,UAACA,kCAAA,IAAA,QAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}