zudoku 0.3.1-dev.8 → 0.4.0

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 (102) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/config/config.d.ts +0 -3
  3. package/dist/lib/authentication/authentication.d.ts +1 -0
  4. package/dist/lib/authentication/components/CallbackHandler.d.ts +3 -0
  5. package/dist/lib/authentication/components/CallbackHandler.js +34 -0
  6. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -0
  7. package/dist/lib/authentication/providers/auth0.js +11 -6
  8. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  9. package/dist/lib/authentication/providers/openid.d.ts +4 -13
  10. package/dist/lib/authentication/providers/openid.js +50 -49
  11. package/dist/lib/authentication/providers/openid.js.map +1 -1
  12. package/dist/lib/components/Header.js +2 -4
  13. package/dist/lib/components/Header.js.map +1 -1
  14. package/dist/lib/components/Layout.js +5 -1
  15. package/dist/lib/components/Layout.js.map +1 -1
  16. package/dist/lib/components/context/ZudokuProvider.js +1 -3
  17. package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
  18. package/dist/lib/core/DevPortalContext.d.ts +1 -4
  19. package/dist/lib/core/DevPortalContext.js +2 -2
  20. package/dist/lib/core/DevPortalContext.js.map +1 -1
  21. package/dist/lib/core/plugins.d.ts +2 -4
  22. package/dist/lib/core/plugins.js.map +1 -1
  23. package/dist/lib/plugins/openapi/OperationList.js +3 -4
  24. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  25. package/dist/lib/plugins/openapi/OperationListItem.js +2 -3
  26. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  27. package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
  28. package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
  29. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +2 -2
  30. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  31. package/lib/{AuthenticationPlugin-CH5NSVOu.js → AuthenticationPlugin-owbEUimP.js} +3 -3
  32. package/lib/{AuthenticationPlugin-CH5NSVOu.js.map → AuthenticationPlugin-owbEUimP.js.map} +1 -1
  33. package/lib/{CategoryHeading-z15xh7Jb.js → CategoryHeading-DnPprxtD.js} +2 -2
  34. package/lib/{CategoryHeading-z15xh7Jb.js.map → CategoryHeading-DnPprxtD.js.map} +1 -1
  35. package/lib/{Combination-DTfV-c98.js → Combination-DruV0zX_.js} +3 -3
  36. package/lib/{Combination-DTfV-c98.js.map → Combination-DruV0zX_.js.map} +1 -1
  37. package/lib/ErrorPage-PUg985n_.js +18 -0
  38. package/lib/ErrorPage-PUg985n_.js.map +1 -0
  39. package/lib/{Input-CzXNm7xb.js → Input-CBfi9Yjc.js} +4 -4
  40. package/lib/{Input-CzXNm7xb.js.map → Input-CBfi9Yjc.js.map} +1 -1
  41. package/lib/{Markdown-CEccPMI_.js → Markdown-Chb9VIBv.js} +2 -2
  42. package/lib/{Markdown-CEccPMI_.js.map → Markdown-Chb9VIBv.js.map} +1 -1
  43. package/lib/{MdxPage-CnqOoqvp.js → MdxPage-CIBHMwTd.js} +5 -5
  44. package/lib/{MdxPage-CnqOoqvp.js.map → MdxPage-CIBHMwTd.js.map} +1 -1
  45. package/lib/{OperationList-CJajXSzC.js → OperationList-CZiSz5JH.js} +115 -120
  46. package/lib/OperationList-CZiSz5JH.js.map +1 -0
  47. package/lib/{Route-BpMrPUVN.js → Route-Cle-r-bq.js} +4 -4
  48. package/lib/{Route-BpMrPUVN.js.map → Route-Cle-r-bq.js.map} +1 -1
  49. package/lib/{Spinner-BT_AYFrA.js → SidebarBadge-Ba0PhibA.js} +66 -76
  50. package/lib/SidebarBadge-Ba0PhibA.js.map +1 -0
  51. package/lib/{SlotletProvider-ByLSCZQa.js → SlotletProvider-Dq80og6-.js} +4 -4
  52. package/lib/{SlotletProvider-ByLSCZQa.js.map → SlotletProvider-Dq80og6-.js.map} +1 -1
  53. package/lib/Spinner-CvXZ7QK4.js +15 -0
  54. package/lib/Spinner-CvXZ7QK4.js.map +1 -0
  55. package/lib/{ZudokuContext-BIZ8zHbZ.js → ZudokuContext-BQ45UjcB.js} +2 -2
  56. package/lib/{ZudokuContext-BIZ8zHbZ.js.map → ZudokuContext-BQ45UjcB.js.map} +1 -1
  57. package/lib/{index-B6zugCnN.js → index-Br1MQPxy.js} +595 -587
  58. package/lib/index-Br1MQPxy.js.map +1 -0
  59. package/lib/{index-Dz4LyXZI.js → index-DCJ9wEIV.js} +3 -3
  60. package/lib/{index-Dz4LyXZI.js.map → index-DCJ9wEIV.js.map} +1 -1
  61. package/lib/{index-7kcHaXD6.js → index-Yjb2PyPF.js} +4 -4
  62. package/lib/{index-7kcHaXD6.js.map → index-Yjb2PyPF.js.map} +1 -1
  63. package/lib/{urql-DrBfkb92.js → urql-YhcsXYy8.js} +2 -2
  64. package/lib/urql-YhcsXYy8.js.map +1 -0
  65. package/lib/{utils-Bh4upQ0e.js → utils-pDHePxa0.js} +3 -3
  66. package/lib/{utils-Bh4upQ0e.js.map → utils-pDHePxa0.js.map} +1 -1
  67. package/lib/zudoku.auth-auth0.js +24 -22
  68. package/lib/zudoku.auth-auth0.js.map +1 -1
  69. package/lib/zudoku.auth-clerk.js +1 -1
  70. package/lib/zudoku.auth-openid.js +527 -469
  71. package/lib/zudoku.auth-openid.js.map +1 -1
  72. package/lib/zudoku.components.js +434 -443
  73. package/lib/zudoku.components.js.map +1 -1
  74. package/lib/zudoku.openapi-worker.js +1 -1
  75. package/lib/zudoku.plugin-api-keys.js +6 -6
  76. package/lib/zudoku.plugin-custom-page.js +1 -1
  77. package/lib/zudoku.plugin-markdown.js +1 -1
  78. package/lib/zudoku.plugin-openapi.js +8 -7
  79. package/lib/zudoku.plugin-openapi.js.map +1 -1
  80. package/package.json +80 -100
  81. package/src/app/main.css +1 -1
  82. package/src/lib/authentication/authentication.ts +1 -0
  83. package/src/lib/authentication/components/CallbackHandler.tsx +59 -0
  84. package/src/lib/authentication/providers/auth0.tsx +13 -7
  85. package/src/lib/authentication/providers/openid.tsx +56 -58
  86. package/src/lib/components/Header.tsx +3 -10
  87. package/src/lib/components/Layout.tsx +6 -1
  88. package/src/lib/components/context/ZudokuProvider.tsx +1 -4
  89. package/src/lib/core/DevPortalContext.ts +2 -7
  90. package/src/lib/core/plugins.ts +1 -2
  91. package/src/lib/plugins/openapi/OperationList.tsx +3 -7
  92. package/src/lib/plugins/openapi/OperationListItem.tsx +2 -3
  93. package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -1
  94. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +27 -5
  95. package/dist/lib/plugins/openapi/util/prose.d.ts +0 -1
  96. package/dist/lib/plugins/openapi/util/prose.js +0 -4
  97. package/dist/lib/plugins/openapi/util/prose.js.map +0 -1
  98. package/lib/OperationList-CJajXSzC.js.map +0 -1
  99. package/lib/Spinner-BT_AYFrA.js.map +0 -1
  100. package/lib/index-B6zugCnN.js.map +0 -1
  101. package/lib/urql-DrBfkb92.js.map +0 -1
  102. package/src/lib/plugins/openapi/util/prose.ts +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationList-CZiSz5JH.js","sources":["../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/circle-dot.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/circle-fading-plus.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/circle.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/list-plus.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/square-minus.js","../../../node_modules/.pnpm/lucide-react@0.378.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/square-plus.js","../src/lib/plugins/openapi/graphql/fragment-masking.ts","../src/lib/util/groupBy.ts","../src/lib/util/renderIf.ts","../src/lib/plugins/openapi/ParameterListItem.tsx","../src/lib/plugins/openapi/ParameterList.tsx","../src/lib/util/objectEntries.ts","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaComponents.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx","../src/lib/plugins/openapi/OperationListItem.tsx","../src/lib/plugins/openapi/OperationList.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleDot = createLucideIcon(\"CircleDot\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }]\n]);\n\nexport { CircleDot as default };\n//# sourceMappingURL=circle-dot.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleFadingPlus = createLucideIcon(\"CircleFadingPlus\", [\n [\"path\", { d: \"M12 2a10 10 0 0 1 7.38 16.75\", key: \"175t95\" }],\n [\"path\", { d: \"M12 8v8\", key: \"napkw2\" }],\n [\"path\", { d: \"M16 12H8\", key: \"1fr5h0\" }],\n [\"path\", { d: \"M2.5 8.875a10 10 0 0 0-.5 3\", key: \"1vce0s\" }],\n [\"path\", { d: \"M2.83 16a10 10 0 0 0 2.43 3.4\", key: \"o3fkw4\" }],\n [\"path\", { d: \"M4.636 5.235a10 10 0 0 1 .891-.857\", key: \"1szpfk\" }],\n [\"path\", { d: \"M8.644 21.42a10 10 0 0 0 7.631-.38\", key: \"9yhvd4\" }]\n]);\n\nexport { CircleFadingPlus as default };\n//# sourceMappingURL=circle-fading-plus.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Circle = createLucideIcon(\"Circle\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]\n]);\n\nexport { Circle as default };\n//# sourceMappingURL=circle.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ListPlus = createLucideIcon(\"ListPlus\", [\n [\"path\", { d: \"M11 12H3\", key: \"51ecnj\" }],\n [\"path\", { d: \"M16 6H3\", key: \"1wxfjs\" }],\n [\"path\", { d: \"M16 18H3\", key: \"12xzn7\" }],\n [\"path\", { d: \"M18 9v6\", key: \"1twb98\" }],\n [\"path\", { d: \"M21 12h-6\", key: \"bt1uis\" }]\n]);\n\nexport { ListPlus as default };\n//# sourceMappingURL=list-plus.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst SquareMinus = createLucideIcon(\"SquareMinus\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M8 12h8\", key: \"1wcyev\" }]\n]);\n\nexport { SquareMinus as default };\n//# sourceMappingURL=square-minus.js.map\n","/**\n * @license lucide-react v0.378.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst SquarePlus = createLucideIcon(\"SquarePlus\", [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M8 12h8\", key: \"1wcyev\" }],\n [\"path\", { d: \"M12 8v8\", key: \"napkw2\" }]\n]);\n\nexport { SquarePlus as default };\n//# sourceMappingURL=square-plus.js.map\n","/* eslint-disable */\nimport type {\n DocumentTypeDecoration,\n ResultOf,\n TypedDocumentNode,\n} from \"@graphql-typed-document-node/core\";\nimport type { FragmentDefinitionNode } from \"graphql\";\nimport type { Incremental } from \"./graphql.js\";\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ \" $fragmentName\"?: infer TKey }]\n ? TKey extends string\n ? { \" $fragmentRefs\"?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>,\n): TType;\n// return nullable if `fragmentType` is undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | undefined,\n): TType | undefined;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null,\n): TType | null;\n// return nullable if `fragmentType` is nullable or undefined\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined,\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: Array<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): Array<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): Array<TType> | null | undefined;\n// return readonly array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>,\n): ReadonlyArray<TType>;\n// return readonly array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | Array<FragmentType<DocumentTypeDecoration<TType, any>>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined,\n): TType | Array<TType> | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined,\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n","export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","export const renderIf = <G, R>(\n variable: G | undefined | null,\n callback: (variable: G) => R,\n): R | undefined => (variable ? callback(variable) : undefined);\n","import { Markdown } from \"../../components/Markdown.js\";\nimport { type SchemaObject } from \"../../oas/graphql/index.js\";\nimport { ColorizedParam } from \"./ColorizedParam.js\";\nimport type { OperationListItemResult } from \"./OperationList.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\n\nconst getParameterSchema = (\n parameter: ParameterListItemResult,\n): SchemaObject => {\n if (parameter.schema != null && typeof parameter.schema === \"object\") {\n return parameter.schema;\n }\n return {\n type: \"string\",\n };\n};\n\nexport type ParameterListItemResult = NonNullable<\n OperationListItemResult[\"parameters\"]\n>[number];\n\nexport const ParameterListItem = ({\n parameter,\n group,\n id,\n}: {\n parameter: ParameterListItemResult;\n group: ParameterGroup;\n id: string;\n}) => (\n <li className=\"p-4 bg-border/20 text-sm flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <code>\n {group === \"path\" ? (\n <ColorizedParam\n name={parameter.name}\n backgroundOpacity=\"15%\"\n slug={id + \"-\" + parameter.name.toLocaleLowerCase()}\n />\n ) : (\n parameter.name\n )}\n </code>\n {parameter.required && (\n <span className=\"py-px px-1.5 font-medium bg-primary/75 text-muted rounded-lg\">\n required\n </span>\n )}\n {getParameterSchema(parameter).type && (\n <span className=\"text-muted-foreground\">\n {getParameterSchema(parameter).type}\n </span>\n )}\n </div>\n {parameter.description && (\n <Markdown\n content={parameter.description}\n className=\"text-sm prose-p:my-1 prose-code:whitespace-pre-line\"\n />\n )}\n </li>\n);\n","import { Heading } from \"../../components/Heading.js\";\nimport { Card } from \"../../ui/Card.js\";\nimport type { ParameterGroup } from \"./OperationListItem.js\";\nimport {\n ParameterListItem,\n type ParameterListItemResult,\n} from \"./ParameterListItem.js\";\n\nexport const ParameterList = ({\n group,\n parameters,\n id,\n}: {\n group: ParameterGroup;\n parameters: ParameterListItemResult[];\n id: string;\n}) => (\n <>\n <Heading level={3} id={`${id}/${group}-parameters`} className=\"capitalize\">\n {group === \"header\" ? \"Headers\" : `${group} Parameters`}\n </Heading>\n <Card>\n <ul className=\"list-none m-0 px-0 divide-y \">\n {parameters\n .sort((a, b) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map((parameter) => (\n <ParameterListItem\n key={`${parameter.name}-${parameter.in}`}\n parameter={parameter}\n id={id}\n group={group}\n />\n ))}\n </ul>\n </Card>\n </>\n);\n","type ValueOf<T> = T[keyof T];\ntype Entries<T> = [keyof T, ValueOf<T>][];\n\nexport const objectEntries = <T extends object>(obj: T): Entries<T> =>\n Object.entries(obj) as Entries<T>;\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n level: number;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector type={props.type} isOpen={isOpen} />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} level={props.level + 1} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n level,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n level: number;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem\n key={index}\n type={type}\n schema={subSchema}\n level={level}\n />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isComplexType = (value: SchemaObject) =>\n value.type === \"object\" ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\"));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { ListPlusIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n hasLogicalGroupings,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({\n schema,\n level,\n}: {\n schema: SchemaObject;\n level: number;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n level={level}\n />\n );\n }\n};\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n level,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n level: number;\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-1 justify-between text-sm\">\n <div className=\"flex gap-2 items-center\">\n <code>{name}</code>\n <span className=\"text-muted-foreground\">\n {schema.type === \"array\" && schema.items?.type ? (\n <span>{schema.items.type}[]</span>\n ) : Array.isArray(schema.type) ? (\n <span>{schema.type.join(\" | \")}</span>\n ) : (\n <span>{schema.type}</span>\n )}\n </span>\n {group === \"optional\" && (\n <span className=\"py-px px-1.5 font-medium border rounded-lg\">\n optional\n </span>\n )}\n </div>\n\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n\n {(hasLogicalGroupings(schema) || isComplexType(schema)) && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"mt-2 flex gap-1.5\"\n >\n <ListPlusIcon size={18} />\n {!isOpen\n ? \"Show nested properties\"\n : \"Hide nested properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} level={level + 1} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} level={level + 1} />\n ) : (\n schema.type === \"array\" &&\n typeof schema.items === \"object\" && (\n <SchemaView schema={schema.items} level={level + 1} />\n )\n )}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { SchemaLogicalGroup, SchemaPropertyItem } from \"./SchemaComponents.js\";\nimport { hasLogicalGroupings } from \"./utils.js\";\n\nexport const SchemaView = ({\n schema,\n level = 0,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n level?: number;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No response specified\n </span>\n </Card>\n );\n }\n\n const renderSchema = (schema: SchemaObject, level: number) => {\n if (schema.oneOf || schema.allOf || schema.anyOf) {\n return <SchemaLogicalGroup schema={schema} level={level} />;\n }\n\n // Sometimes items is not defined\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (schema.type === \"array\" && schema.items) {\n const itemsSchema = schema.items as SchemaObject;\n\n if (\n typeof itemsSchema.type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\"].includes(itemsSchema.type)\n ) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground\">\n {itemsSchema.type}[]\n </span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n } else if (\n itemsSchema.type === \"object\" ||\n hasLogicalGroupings(itemsSchema)\n ) {\n return (\n <Card className=\"flex flex-col gap-2 bg-border/30 p-4\">\n <span className=\"text-sm text-muted-foreground\">object[]</span>\n {renderSchema(itemsSchema, level + 1)}\n </Card>\n );\n } else {\n return renderSchema(itemsSchema, level + 1);\n }\n }\n\n if (schema.type === \"object\" && !schema.properties) {\n return (\n <Card className=\"p-4 flex gap-2 items-center\">\n {\"name\" in schema && <>{schema.name}</>}\n <span className=\"text-sm text-muted-foreground\">object</span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n }\n\n if (schema.properties) {\n const groupedProperties = groupBy(\n Object.entries(schema.properties),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n\n const isTopLevelSingleItem =\n level === 0 && Object.keys(groupedProperties).length === 1;\n\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n level={level}\n defaultOpen={isTopLevelSingleItem || defaultOpen}\n showCollapseButton={!isTopLevelSingleItem}\n />\n ))}\n </ul>\n ),\n )}\n </Card>\n );\n }\n\n if (\n typeof schema.type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(schema.type)\n ) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground\">{schema.type}</span>\n {schema.description && (\n <Markdown\n className={cn(\n ProseClasses,\n \"text-sm leading-normal line-clamp-4\",\n )}\n content={schema.description}\n />\n )}\n </Card>\n );\n }\n\n if (schema.additionalProperties) {\n return (\n <Card className=\"my-2\">\n <CardHeader>\n <CardTitle>Additional Properties:</CardTitle>\n </CardHeader>\n <CardContent>\n {renderSchema(\n schema.additionalProperties as SchemaObject,\n level + 1,\n )}\n </CardContent>\n </Card>\n );\n }\n\n return null;\n };\n\n return renderSchema(schema, level);\n};\n","import { useState } from \"react\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../ui/Tabs.js\";\nimport { groupBy } from \"../../util/groupBy.js\";\nimport { renderIf } from \"../../util/renderIf.js\";\nimport { OperationsFragment } from \"./OperationList.js\";\nimport { ParameterList } from \"./ParameterList.js\";\nimport { Sidecar } from \"./Sidecar.js\";\nimport { FragmentType, useFragment } from \"./graphql/index.js\";\nimport { SchemaView } from \"./schema/SchemaView.js\";\n\nexport const PARAM_GROUPS = [\"path\", \"query\", \"header\", \"cookie\"] as const;\nexport type ParameterGroup = (typeof PARAM_GROUPS)[number];\n\nexport const OperationListItem = ({\n operationFragment,\n}: {\n operationFragment: FragmentType<typeof OperationsFragment>;\n}) => {\n const operation = useFragment(OperationsFragment, operationFragment);\n const groupedParameters = groupBy(\n operation.parameters ?? [],\n (param) => param.in,\n );\n\n const first = operation.responses.at(0);\n const [selectedResponse, setSelectedResponse] = useState(first?.statusCode);\n\n return (\n <div\n key={operation.operationId}\n className=\"grid grid-cols-1 lg:grid-cols-[4fr_3fr] gap-8 items-start border-b-2 mb-16 pb-16\"\n >\n <div className=\"flex flex-col gap-4\">\n <Heading level={2} id={operation.slug} registerSidebarAnchor>\n {operation.summary}\n </Heading>\n {operation.description && (\n <Markdown\n className={`${ProseClasses} max-w-full prose-img:max-w-prose`}\n content={operation.description}\n />\n )}\n {operation.parameters && operation.parameters.length > 0 && (\n <>\n {PARAM_GROUPS.flatMap((group) =>\n groupedParameters[group]?.length ? (\n <ParameterList\n key={group}\n id={operation.slug}\n parameters={groupedParameters[group]}\n group={group}\n />\n ) : (\n []\n ),\n )}\n </>\n )}\n {renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (\n <div className=\"mt-4 flex flex-col gap-4\">\n <Heading level={3} className=\"capitalize\">\n Request Body\n </Heading>\n <SchemaView schema={schema} />\n </div>\n ))}\n {operation.responses.length > 0 && (\n <>\n <Heading level={3} className=\"capitalize mt-8 pt-8 border-t\">\n Responses\n </Heading>\n <Tabs\n onValueChange={(value) => setSelectedResponse(value)}\n value={selectedResponse}\n >\n {operation.responses.length > 1 && (\n <TabsList>\n {operation.responses.map((response) => (\n <TabsTrigger\n value={response.statusCode}\n key={response.statusCode}\n title={response.description}\n >\n {response.statusCode}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n <ul className=\"list-none m-0 px-0\">\n {operation.responses.map((response) => (\n <TabsContent\n value={response.statusCode}\n key={response.statusCode}\n >\n <SchemaView\n schema={\n response.content?.find((content) => content.schema)\n ?.schema\n }\n />\n </TabsContent>\n ))}\n </ul>\n </Tabs>\n </>\n )}\n </div>\n\n <Sidecar\n selectedResponse={selectedResponse}\n onSelectResponse={setSelectedResponse}\n operation={operation}\n />\n </div>\n );\n};\n","import { ResultOf } from \"@graphql-typed-document-node/core\";\nimport { CategoryHeading } from \"../../components/CategoryHeading.js\";\nimport { DeveloperHint } from \"../../components/DeveloperHint.js\";\nimport { ErrorPage } from \"../../components/ErrorPage.js\";\nimport { Heading } from \"../../components/Heading.js\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../components/Markdown.js\";\nimport { SyntaxHighlight } from \"../../components/SyntaxHighlight.js\";\nimport { cn } from \"../../util/cn.js\";\nimport { OperationListItem } from \"./OperationListItem.js\";\nimport StaggeredRender from \"./StaggeredRender.js\";\nimport { useOasConfig } from \"./context.js\";\nimport { graphql } from \"./graphql/index.js\";\nimport { useQuery } from \"./util/urql.js\";\n\nexport const OperationsFragment = graphql(/* GraphQL */ `\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n`);\n\nexport type OperationListItemResult = ResultOf<typeof OperationsFragment>;\n\nconst AllOperationsQuery = graphql(/* GraphQL */ `\n query AllOperations($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n description\n title\n url\n version\n tags {\n name\n description\n operations {\n slug\n ...OperationsFragment\n }\n }\n }\n }\n`);\n\nconst suspenseContext = { suspense: true };\n\nexport const OperationList = () => {\n const { type, input } = useOasConfig();\n\n const [result] = useQuery({\n query: AllOperationsQuery,\n variables: { type, input },\n context: suspenseContext,\n });\n\n const error = result.error?.graphQLErrors.at(0);\n\n // Looks like there is no Suspense level error handling (yet)?\n // So we handle the error case in the component directly\n if (error) {\n return (\n <ErrorPage\n category=\"Error\"\n title=\"Schema cannot be displayed\"\n message={\n <>\n <DeveloperHint className=\"mb-4\">\n Check your configuration value <InlineCode>apis.type</InlineCode>{\" \"}\n and <InlineCode>apis.input</InlineCode> in the Zudoku config.\n </DeveloperHint>\n An error occurred while trying to fetch the API reference:\n <SyntaxHighlight code={error.toString()} language=\"plain\" />\n </>\n }\n />\n );\n }\n\n if (!result.data) return null;\n\n return (\n <div className=\"pt-[--padding-content-top]\">\n <div\n className={cn(ProseClasses, \"mb-16 max-w-full prose-img:max-w-prose\")}\n >\n <CategoryHeading>Overview</CategoryHeading>\n <Heading level={1} id=\"description\" registerSidebarAnchor>\n {result.data.schema.title}\n </Heading>\n <Markdown content={result.data.schema.description ?? \"\"} />\n </div>\n {result.data.schema.tags\n .filter((tag) => tag.operations.length > 0)\n .map((tag) => (\n <div key={tag.name}>\n {tag.name && <CategoryHeading>{tag.name}</CategoryHeading>}\n {tag.description && (\n <Markdown\n className={`${ProseClasses} max-w-full prose-img:max-w-prose w-full mt-2 mb-12`}\n content={tag.description}\n />\n )}\n <div className=\"operation mb-12\">\n <StaggeredRender>\n {tag.operations.map((fragment) => (\n <OperationListItem\n key={fragment.slug}\n operationFragment={fragment}\n />\n ))}\n </StaggeredRender>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"names":["CircleDot","createLucideIcon","CircleFadingPlus","Circle","ListPlus","SquareMinus","SquarePlus","useFragment","_documentNode","fragmentType","groupBy","arr","keySelector","accumulator","val","groupedKey","renderIf","variable","callback","getParameterSchema","parameter","ParameterListItem","group","id","jsxs","jsx","ColorizedParam","Markdown","ParameterList","parameters","Fragment","Heading","Card","b","objectEntries","obj","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","isOpen","className","cn","ChevronDownIcon","LogicalGroupItem","props","setIsOpen","useState","Collapsible.Root","prev","Collapsible.Trigger","Collapsible.Content","SchemaView","typeLabel","LogicalGroup","schemas","level","toggleOpen","SquareMinusIcon","SquarePlusIcon","subSchema","index","isComplexType","value","hasLogicalGroupings","LogicalSchemaTypeMap","SchemaLogicalGroup","schema","useCallback","key","SchemaPropertyItem","name","defaultOpen","showCollapseButton","_a","ProseClasses","Button","ListPlusIcon","renderSchema","itemsSchema","groupedProperties","propertyName","property","isTopLevelSingleItem","groupNames","CardHeader","CardTitle","CardContent","PARAM_GROUPS","OperationListItem","operationFragment","operation","OperationsFragment","groupedParameters","param","first","selectedResponse","setSelectedResponse","_c","_b","Tabs","TabsList","response","TabsTrigger","TabsContent","content","Sidecar","graphql","AllOperationsQuery","suspenseContext","OperationList","input","useOasConfig","result","useQuery","error","ErrorPage","DeveloperHint","InlineCode","SyntaxHighlight","CategoryHeading","tag","StaggeredRender","fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -1,7 +1,7 @@
1
1
  import { j as r } from "./jsx-runtime-B6kdoens.js";
2
- import { O as i } from "./index-B6zugCnN.js";
3
- import { P as t } from "./urql-DrBfkb92.js";
4
- import { O as s } from "./index-7kcHaXD6.js";
2
+ import { O as i } from "./index-Br1MQPxy.js";
3
+ import { P as t } from "./urql-YhcsXYy8.js";
4
+ import { O as s } from "./index-Yjb2PyPF.js";
5
5
  function u({
6
6
  config: o,
7
7
  client: e
@@ -11,4 +11,4 @@ function u({
11
11
  export {
12
12
  u as OpenApiRoute
13
13
  };
14
- //# sourceMappingURL=Route-BpMrPUVN.js.map
14
+ //# sourceMappingURL=Route-Cle-r-bq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Route-BpMrPUVN.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-Cle-r-bq.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,27 +1,18 @@
1
1
  import * as s from "react";
2
2
  import * as V from "react-dom";
3
- import { u as _, r as M, c as q, a as J, k as Q, o as X, f as Z, P as k, d as A, n as $ } from "./Combination-DTfV-c98.js";
4
- import { j as b } from "./jsx-runtime-B6kdoens.js";
5
- import { c as ee, a as te } from "./Markdown-CEccPMI_.js";
6
- /**
7
- * @license lucide-react v0.378.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */
12
- const ne = ee("LoaderCircle", [
13
- ["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]
14
- ]);
15
- function oe(e, t) {
3
+ import { u as _, r as M, c as q, a as J, k as Q, o as X, f as Z, P as k, d as A, n as $ } from "./Combination-DruV0zX_.js";
4
+ import { j as I } from "./jsx-runtime-B6kdoens.js";
5
+ import { a as ee } from "./Markdown-Chb9VIBv.js";
6
+ function te(e, t) {
16
7
  return s.useReducer((o, n) => t[o][n] ?? o, e);
17
8
  }
18
- var re = (e) => {
19
- const { present: t, children: o } = e, n = se(t), i = typeof o == "function" ? o({ present: n.isPresent }) : s.Children.only(o), l = _(n.ref, ae(i));
9
+ var ne = (e) => {
10
+ const { present: t, children: o } = e, n = oe(t), i = typeof o == "function" ? o({ present: n.isPresent }) : s.Children.only(o), l = _(n.ref, re(i));
20
11
  return typeof o == "function" || n.isPresent ? s.cloneElement(i, { ref: l }) : null;
21
12
  };
22
- re.displayName = "Presence";
23
- function se(e) {
24
- const [t, o] = s.useState(), n = s.useRef({}), i = s.useRef(e), l = s.useRef("none"), E = e ? "mounted" : "unmounted", [R, c] = oe(E, {
13
+ ne.displayName = "Presence";
14
+ function oe(e) {
15
+ const [t, o] = s.useState(), n = s.useRef({}), i = s.useRef(e), l = s.useRef("none"), E = e ? "mounted" : "unmounted", [R, c] = te(E, {
25
16
  mounted: {
26
17
  UNMOUNT: "unmounted",
27
18
  ANIMATION_OUT: "unmountSuspended"
@@ -40,8 +31,8 @@ function se(e) {
40
31
  }, [R]), M(() => {
41
32
  const r = n.current, f = i.current;
42
33
  if (f !== e) {
43
- const v = l.current, p = T(r);
44
- e ? c("MOUNT") : p === "none" || (r == null ? void 0 : r.display) === "none" ? c("UNMOUNT") : c(f && v !== p ? "ANIMATION_OUT" : "UNMOUNT"), i.current = e;
34
+ const b = l.current, p = T(r);
35
+ e ? c("MOUNT") : p === "none" || (r == null ? void 0 : r.display) === "none" ? c("UNMOUNT") : c(f && b !== p ? "ANIMATION_OUT" : "UNMOUNT"), i.current = e;
45
36
  }
46
37
  }, [e, c]), M(() => {
47
38
  if (t) {
@@ -66,19 +57,19 @@ function se(e) {
66
57
  function T(e) {
67
58
  return (e == null ? void 0 : e.animationName) || "none";
68
59
  }
69
- function ae(e) {
60
+ function re(e) {
70
61
  var n, i;
71
62
  let t = (n = Object.getOwnPropertyDescriptor(e.props, "ref")) == null ? void 0 : n.get, o = t && "isReactWarning" in t && t.isReactWarning;
72
63
  return o ? e.ref : (t = (i = Object.getOwnPropertyDescriptor(e, "ref")) == null ? void 0 : i.get, o = t && "isReactWarning" in t && t.isReactWarning, o ? e.props.ref : e.props.ref || e.ref);
73
64
  }
74
- var w = "rovingFocusGroup.onEntryFocus", ce = { bubbles: !1, cancelable: !0 }, x = "RovingFocusGroup", [h, D, ie] = q(x), [ue, Ae] = J(
65
+ var C = "rovingFocusGroup.onEntryFocus", se = { bubbles: !1, cancelable: !0 }, x = "RovingFocusGroup", [h, D, ae] = q(x), [ce, Ne] = J(
75
66
  x,
76
- [ie]
77
- ), [de, le] = ue(x), U = s.forwardRef(
78
- (e, t) => /* @__PURE__ */ b.jsx(h.Provider, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ b.jsx(h.Slot, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ b.jsx(fe, { ...e, ref: t }) }) })
67
+ [ae]
68
+ ), [ie, ue] = ce(x), U = s.forwardRef(
69
+ (e, t) => /* @__PURE__ */ I.jsx(h.Provider, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ I.jsx(h.Slot, { scope: e.__scopeRovingFocusGroup, children: /* @__PURE__ */ I.jsx(de, { ...e, ref: t }) }) })
79
70
  );
80
71
  U.displayName = x;
81
- var fe = s.forwardRef((e, t) => {
72
+ var de = s.forwardRef((e, t) => {
82
73
  const {
83
74
  __scopeRovingFocusGroup: o,
84
75
  orientation: n,
@@ -90,23 +81,23 @@ var fe = s.forwardRef((e, t) => {
90
81
  onEntryFocus: r,
91
82
  preventScrollOnEntryFocus: f = !1,
92
83
  ...m
93
- } = e, v = s.useRef(null), p = _(t, v), a = Q(l), [I = null, y] = X({
84
+ } = e, b = s.useRef(null), p = _(t, b), a = Q(l), [v = null, y] = X({
94
85
  prop: E,
95
86
  defaultProp: R,
96
87
  onChange: c
97
- }), [d, g] = s.useState(!1), S = Z(r), K = D(o), F = s.useRef(!1), [B, O] = s.useState(0);
88
+ }), [d, g] = s.useState(!1), F = Z(r), K = D(o), S = s.useRef(!1), [B, O] = s.useState(0);
98
89
  return s.useEffect(() => {
99
- const u = v.current;
90
+ const u = b.current;
100
91
  if (u)
101
- return u.addEventListener(w, S), () => u.removeEventListener(w, S);
102
- }, [S]), /* @__PURE__ */ b.jsx(
103
- de,
92
+ return u.addEventListener(C, F), () => u.removeEventListener(C, F);
93
+ }, [F]), /* @__PURE__ */ I.jsx(
94
+ ie,
104
95
  {
105
96
  scope: o,
106
97
  orientation: n,
107
98
  dir: a,
108
99
  loop: i,
109
- currentTabStopId: I,
100
+ currentTabStopId: v,
110
101
  onItemFocus: s.useCallback(
111
102
  (u) => y(u),
112
103
  [y]
@@ -120,7 +111,7 @@ var fe = s.forwardRef((e, t) => {
120
111
  () => O((u) => u - 1),
121
112
  []
122
113
  ),
123
- children: /* @__PURE__ */ b.jsx(
114
+ children: /* @__PURE__ */ I.jsx(
124
115
  k.div,
125
116
  {
126
117
  tabIndex: d || B === 0 ? -1 : 0,
@@ -129,27 +120,27 @@ var fe = s.forwardRef((e, t) => {
129
120
  ref: p,
130
121
  style: { outline: "none", ...e.style },
131
122
  onMouseDown: A(e.onMouseDown, () => {
132
- F.current = !0;
123
+ S.current = !0;
133
124
  }),
134
125
  onFocus: A(e.onFocus, (u) => {
135
- const W = !F.current;
126
+ const W = !S.current;
136
127
  if (u.target === u.currentTarget && W && !d) {
137
- const P = new CustomEvent(w, ce);
128
+ const P = new CustomEvent(C, se);
138
129
  if (u.currentTarget.dispatchEvent(P), !P.defaultPrevented) {
139
- const C = K().filter((N) => N.focusable), z = C.find((N) => N.active), Y = C.find((N) => N.id === I), H = [z, Y, ...C].filter(
130
+ const w = K().filter((N) => N.focusable), Y = w.find((N) => N.active), z = w.find((N) => N.id === v), H = [Y, z, ...w].filter(
140
131
  Boolean
141
132
  ).map((N) => N.ref.current);
142
- G(H, f);
133
+ j(H, f);
143
134
  }
144
135
  }
145
- F.current = !1;
136
+ S.current = !1;
146
137
  }),
147
138
  onBlur: A(e.onBlur, () => g(!1))
148
139
  }
149
140
  )
150
141
  }
151
142
  );
152
- }), L = "RovingFocusGroupItem", j = s.forwardRef(
143
+ }), L = "RovingFocusGroupItem", G = s.forwardRef(
153
144
  (e, t) => {
154
145
  const {
155
146
  __scopeRovingFocusGroup: o,
@@ -157,18 +148,18 @@ var fe = s.forwardRef((e, t) => {
157
148
  active: i = !1,
158
149
  tabStopId: l,
159
150
  ...E
160
- } = e, R = $(), c = l || R, r = le(L, o), f = r.currentTabStopId === c, m = D(o), { onFocusableItemAdd: v, onFocusableItemRemove: p } = r;
151
+ } = e, R = $(), c = l || R, r = ue(L, o), f = r.currentTabStopId === c, m = D(o), { onFocusableItemAdd: b, onFocusableItemRemove: p } = r;
161
152
  return s.useEffect(() => {
162
153
  if (n)
163
- return v(), () => p();
164
- }, [n, v, p]), /* @__PURE__ */ b.jsx(
154
+ return b(), () => p();
155
+ }, [n, b, p]), /* @__PURE__ */ I.jsx(
165
156
  h.ItemSlot,
166
157
  {
167
158
  scope: o,
168
159
  id: c,
169
160
  focusable: n,
170
161
  active: i,
171
- children: /* @__PURE__ */ b.jsx(
162
+ children: /* @__PURE__ */ I.jsx(
172
163
  k.span,
173
164
  {
174
165
  tabIndex: f ? 0 : -1,
@@ -185,18 +176,18 @@ var fe = s.forwardRef((e, t) => {
185
176
  return;
186
177
  }
187
178
  if (a.target !== a.currentTarget) return;
188
- const I = ge(a, r.orientation, r.dir);
189
- if (I !== void 0) {
179
+ const v = me(a, r.orientation, r.dir);
180
+ if (v !== void 0) {
190
181
  if (a.metaKey || a.ctrlKey || a.altKey || a.shiftKey) return;
191
182
  a.preventDefault();
192
183
  let d = m().filter((g) => g.focusable).map((g) => g.ref.current);
193
- if (I === "last") d.reverse();
194
- else if (I === "prev" || I === "next") {
195
- I === "prev" && d.reverse();
184
+ if (v === "last") d.reverse();
185
+ else if (v === "prev" || v === "next") {
186
+ v === "prev" && d.reverse();
196
187
  const g = d.indexOf(a.currentTarget);
197
- d = r.loop ? be(d, g + 1) : d.slice(g + 1);
188
+ d = r.loop ? pe(d, g + 1) : d.slice(g + 1);
198
189
  }
199
- setTimeout(() => G(d));
190
+ setTimeout(() => j(d));
200
191
  }
201
192
  })
202
193
  }
@@ -205,8 +196,8 @@ var fe = s.forwardRef((e, t) => {
205
196
  );
206
197
  }
207
198
  );
208
- j.displayName = L;
209
- var me = {
199
+ G.displayName = L;
200
+ var le = {
210
201
  ArrowLeft: "prev",
211
202
  ArrowUp: "prev",
212
203
  ArrowRight: "next",
@@ -216,24 +207,24 @@ var me = {
216
207
  PageDown: "last",
217
208
  End: "last"
218
209
  };
219
- function pe(e, t) {
210
+ function fe(e, t) {
220
211
  return t !== "rtl" ? e : e === "ArrowLeft" ? "ArrowRight" : e === "ArrowRight" ? "ArrowLeft" : e;
221
212
  }
222
- function ge(e, t, o) {
223
- const n = pe(e.key, o);
213
+ function me(e, t, o) {
214
+ const n = fe(e.key, o);
224
215
  if (!(t === "vertical" && ["ArrowLeft", "ArrowRight"].includes(n)) && !(t === "horizontal" && ["ArrowUp", "ArrowDown"].includes(n)))
225
- return me[n];
216
+ return le[n];
226
217
  }
227
- function G(e, t = !1) {
218
+ function j(e, t = !1) {
228
219
  const o = document.activeElement;
229
220
  for (const n of e)
230
221
  if (n === o || (n.focus({ preventScroll: t }), document.activeElement !== o)) return;
231
222
  }
232
- function be(e, t) {
223
+ function pe(e, t) {
233
224
  return e.map((o, n) => e[(t + n) % e.length]);
234
225
  }
235
- var Te = U, xe = j;
236
- const ye = {
226
+ var Ee = U, Ae = G;
227
+ const Te = {
237
228
  green: "text-green-600",
238
229
  blue: "text-sky-600",
239
230
  yellow: "text-yellow-600",
@@ -241,7 +232,7 @@ const ye = {
241
232
  purple: "text-purple-600",
242
233
  indigo: "text-indigo-600",
243
234
  gray: "text-gray-600"
244
- }, ve = {
235
+ }, ge = {
245
236
  green: "bg-green-400 dark:bg-green-800",
246
237
  blue: "bg-sky-400 dark:bg-sky-800",
247
238
  yellow: "bg-yellow-400 dark:bg-yellow-800",
@@ -249,28 +240,27 @@ const ye = {
249
240
  purple: "bg-purple-400 dark:bg-purple-600",
250
241
  indigo: "bg-indigo-400 dark:bg-indigo-600",
251
242
  gray: "bg-gray-400 dark:bg-gray-600"
252
- }, Se = ({
243
+ }, xe = ({
253
244
  color: e,
254
245
  label: t,
255
246
  className: o
256
- }) => /* @__PURE__ */ b.jsx(
247
+ }) => /* @__PURE__ */ I.jsx(
257
248
  "span",
258
249
  {
259
- className: te(
250
+ className: ee(
260
251
  "mt-0.5 flex items-center duration-200 transition-opacity text-center uppercase font-mono text-[0.65rem] font-bold rounded text-background dark:text-zinc-50 h-4 px-1",
261
- ve[e],
252
+ ge[e],
262
253
  o
263
254
  ),
264
255
  children: t
265
256
  }
266
- ), Fe = ({ size: e = 16 }) => /* @__PURE__ */ b.jsx(ne, { size: e, className: "animate-spin" });
257
+ );
267
258
  export {
268
- xe as I,
269
- re as P,
270
- Te as R,
271
- Se as S,
272
- ye as T,
273
- Fe as a,
274
- Ae as c
259
+ Ae as I,
260
+ ne as P,
261
+ Ee as R,
262
+ xe as S,
263
+ Te as T,
264
+ Ne as c
275
265
  };
276
- //# sourceMappingURL=Spinner-BT_AYFrA.js.map
266
+ //# sourceMappingURL=SidebarBadge-Ba0PhibA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarBadge-Ba0PhibA.js","sources":["../../../node_modules/.pnpm/@radix-ui+react-presence@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.0_@types+react-dom@18.3.0_@types+react@18.3.3_react-dom@18.3_c7p7fyahj7jvpuxrqgc7mv7csa/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../src/lib/components/navigation/SidebarBadge.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n ReactDOM.flushSync(() => send(\"ANIMATION_END\"));\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/RovingFocusGroup.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { cn } from \"../../util/cn.js\";\n\nexport const TextColorMap = {\n green: \"text-green-600\",\n blue: \"text-sky-600\",\n yellow: \"text-yellow-600\",\n red: \"text-red-600\",\n purple: \"text-purple-600\",\n indigo: \"text-indigo-600\",\n gray: \"text-gray-600\",\n};\n\nexport const ColorMap = {\n green: \"bg-green-400 dark:bg-green-800\",\n blue: \"bg-sky-400 dark:bg-sky-800\",\n yellow: \"bg-yellow-400 dark:bg-yellow-800\",\n red: \"bg-red-400 dark:bg-red-800\",\n purple: \"bg-purple-400 dark:bg-purple-600\",\n indigo: \"bg-indigo-400 dark:bg-indigo-600\",\n gray: \"bg-gray-400 dark:bg-gray-600\",\n};\n\nexport const SidebarBadge = ({\n color,\n label,\n className,\n}: {\n color: keyof typeof ColorMap;\n label: string;\n className?: string;\n}) => {\n return (\n <span\n className={cn(\n \"mt-0.5 flex items-center duration-200 transition-opacity text-center uppercase font-mono text-[0.65rem] font-bold rounded text-background dark:text-zinc-50 h-4 px-1\",\n ColorMap[color],\n className,\n )}\n >\n {label}\n </span>\n );\n};\n"],"names":["useStateMachine","initialState","machine","React","state","event","Presence","props","present","children","presence","usePresence","child","React2","ref","useComposedRefs","getElementRef","node","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","useLayoutEffect","styles","wasPresent","prevAnimationName","handleAnimationEnd","isCurrentAnimation","ReactDOM","handleAnimationStart","node2","element","getter","_a","mayWarn","_b","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","useCollection","createCollectionScope","createCollection","createRovingFocusGroupContext","createRovingFocusGroupScope","createContextScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","forwardedRef","jsx","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","composedRefs","direction","useDirection","currentTabStopId","setCurrentTabStopId","useControllableState","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","useCallbackRef","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","Primitive","composeEventHandlers","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","useId","id","context","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","_","index","Root","Item","TextColorMap","ColorMap","SidebarBadge","color","label","className","cn"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,8 +1,8 @@
1
1
  import { j as a } from "./jsx-runtime-B6kdoens.js";
2
- import { f as ce, L as ue, g as fe } from "./index-7kcHaXD6.js";
3
- import { C as le } from "./CategoryHeading-z15xh7Jb.js";
2
+ import { f as ce, L as ue, g as fe } from "./index-Yjb2PyPF.js";
3
+ import { C as le } from "./CategoryHeading-DnPprxtD.js";
4
4
  import { D as me } from "./DeveloperHint-BQSFXH01.js";
5
- import { c as de, P as pe, H as ye } from "./Markdown-CEccPMI_.js";
5
+ import { c as de, P as pe, H as ye } from "./Markdown-Chb9VIBv.js";
6
6
  import { i as Ee } from "./router-BiRCp01d.js";
7
7
  import L, { useContext as ve } from "react";
8
8
  /**
@@ -259,4 +259,4 @@ export {
259
259
  je as S,
260
260
  Le as a
261
261
  };
262
- //# sourceMappingURL=SlotletProvider-ByLSCZQa.js.map
262
+ //# sourceMappingURL=SlotletProvider-Dq80og6-.js.map