@satoshibits/react-json-schema-builder 1.4.0 → 1.4.2

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 (176) hide show
  1. package/dist/index.cjs14.js +1 -1
  2. package/dist/index.cjs142.js +1 -1
  3. package/dist/index.cjs143.js +1 -1
  4. package/dist/index.cjs144.js +1 -1
  5. package/dist/index.cjs144.js.map +1 -1
  6. package/dist/index.cjs146.js +1 -1
  7. package/dist/index.cjs146.js.map +1 -1
  8. package/dist/index.cjs147.js +1 -1
  9. package/dist/index.cjs147.js.map +1 -1
  10. package/dist/index.cjs148.js +1 -1
  11. package/dist/index.cjs148.js.map +1 -1
  12. package/dist/index.cjs149.js +1 -1
  13. package/dist/index.cjs149.js.map +1 -1
  14. package/dist/index.cjs15.js +1 -1
  15. package/dist/index.cjs150.js +1 -1
  16. package/dist/index.cjs150.js.map +1 -1
  17. package/dist/index.cjs151.js +1 -1
  18. package/dist/index.cjs151.js.map +1 -1
  19. package/dist/index.cjs152.js +1 -1
  20. package/dist/index.cjs152.js.map +1 -1
  21. package/dist/index.cjs153.js +1 -1
  22. package/dist/index.cjs153.js.map +1 -1
  23. package/dist/index.cjs154.js +1 -1
  24. package/dist/index.cjs154.js.map +1 -1
  25. package/dist/index.cjs155.js +1 -1
  26. package/dist/index.cjs155.js.map +1 -1
  27. package/dist/index.cjs156.js +1 -1
  28. package/dist/index.cjs156.js.map +1 -1
  29. package/dist/index.cjs157.js +1 -1
  30. package/dist/index.cjs157.js.map +1 -1
  31. package/dist/index.cjs158.js +1 -1
  32. package/dist/index.cjs158.js.map +1 -1
  33. package/dist/index.cjs159.js +1 -1
  34. package/dist/index.cjs159.js.map +1 -1
  35. package/dist/index.cjs160.js +1 -1
  36. package/dist/index.cjs160.js.map +1 -1
  37. package/dist/index.cjs161.js +1 -1
  38. package/dist/index.cjs161.js.map +1 -1
  39. package/dist/index.cjs162.js +1 -1
  40. package/dist/index.cjs162.js.map +1 -1
  41. package/dist/index.cjs163.js +1 -1
  42. package/dist/index.cjs163.js.map +1 -1
  43. package/dist/index.cjs164.js +1 -1
  44. package/dist/index.cjs164.js.map +1 -1
  45. package/dist/index.cjs165.js +1 -1
  46. package/dist/index.cjs165.js.map +1 -1
  47. package/dist/index.cjs166.js +1 -1
  48. package/dist/index.cjs166.js.map +1 -1
  49. package/dist/index.cjs167.js +1 -1
  50. package/dist/index.cjs169.js +1 -1
  51. package/dist/index.cjs175.js +1 -1
  52. package/dist/index.cjs177.js +1 -1
  53. package/dist/index.cjs18.js +1 -1
  54. package/dist/index.cjs182.js +38 -1
  55. package/dist/index.cjs182.js.map +1 -1
  56. package/dist/index.cjs183.js +1 -38
  57. package/dist/index.cjs183.js.map +1 -1
  58. package/dist/index.cjs184.js +1 -1
  59. package/dist/index.cjs184.js.map +1 -1
  60. package/dist/index.cjs185.js +1 -1
  61. package/dist/index.cjs185.js.map +1 -1
  62. package/dist/index.cjs186.js +1 -1
  63. package/dist/index.cjs186.js.map +1 -1
  64. package/dist/index.cjs19.js +1 -1
  65. package/dist/index.cjs19.js.map +1 -1
  66. package/dist/index.cjs21.js +1 -1
  67. package/dist/index.cjs24.js +1 -1
  68. package/dist/index.cjs34.js +1 -1
  69. package/dist/index.cjs41.js +1 -1
  70. package/dist/index.cjs41.js.map +1 -1
  71. package/dist/index.cjs42.js +1 -1
  72. package/dist/index.cjs42.js.map +1 -1
  73. package/dist/index.cjs43.js +1 -1
  74. package/dist/index.cjs43.js.map +1 -1
  75. package/dist/index.cjs44.js +1 -1
  76. package/dist/index.cjs44.js.map +1 -1
  77. package/dist/index.cjs45.js +1 -1
  78. package/dist/index.cjs45.js.map +1 -1
  79. package/dist/index.cjs46.js +1 -1
  80. package/dist/index.cjs51.js +1 -1
  81. package/dist/index.cjs53.js +1 -1
  82. package/dist/index.cjs56.js +1 -1
  83. package/dist/index.cjs58.js +1 -1
  84. package/dist/index.cjs59.js +1 -1
  85. package/dist/index.cjs7.js +1 -1
  86. package/dist/index.cjs7.js.map +1 -1
  87. package/dist/index.es14.js +2 -2
  88. package/dist/index.es142.js +13 -13
  89. package/dist/index.es143.js +1 -1
  90. package/dist/index.es144.js +6 -32
  91. package/dist/index.es144.js.map +1 -1
  92. package/dist/index.es146.js +64 -5
  93. package/dist/index.es146.js.map +1 -1
  94. package/dist/index.es147.js +27 -63
  95. package/dist/index.es147.js.map +1 -1
  96. package/dist/index.es148.js +5 -177
  97. package/dist/index.es148.js.map +1 -1
  98. package/dist/index.es149.js +23 -66
  99. package/dist/index.es149.js.map +1 -1
  100. package/dist/index.es15.js +1 -1
  101. package/dist/index.es150.js +32 -7
  102. package/dist/index.es150.js.map +1 -1
  103. package/dist/index.es151.js +3 -29
  104. package/dist/index.es151.js.map +1 -1
  105. package/dist/index.es152.js +45 -10
  106. package/dist/index.es152.js.map +1 -1
  107. package/dist/index.es153.js +7 -5
  108. package/dist/index.es153.js.map +1 -1
  109. package/dist/index.es154.js +123 -23
  110. package/dist/index.es154.js.map +1 -1
  111. package/dist/index.es155.js +14 -3
  112. package/dist/index.es155.js.map +1 -1
  113. package/dist/index.es156.js +129 -41
  114. package/dist/index.es156.js.map +1 -1
  115. package/dist/index.es157.js +10 -124
  116. package/dist/index.es157.js.map +1 -1
  117. package/dist/index.es158.js +214 -13
  118. package/dist/index.es158.js.map +1 -1
  119. package/dist/index.es159.js +12 -133
  120. package/dist/index.es159.js.map +1 -1
  121. package/dist/index.es160.js +7 -215
  122. package/dist/index.es160.js.map +1 -1
  123. package/dist/index.es161.js +4 -13
  124. package/dist/index.es161.js.map +1 -1
  125. package/dist/index.es162.js +27 -7
  126. package/dist/index.es162.js.map +1 -1
  127. package/dist/index.es163.js +49 -3
  128. package/dist/index.es163.js.map +1 -1
  129. package/dist/index.es164.js +9 -28
  130. package/dist/index.es164.js.map +1 -1
  131. package/dist/index.es165.js +176 -48
  132. package/dist/index.es165.js.map +1 -1
  133. package/dist/index.es166.js +68 -9
  134. package/dist/index.es166.js.map +1 -1
  135. package/dist/index.es167.js +1 -1
  136. package/dist/index.es169.js +1 -1
  137. package/dist/index.es175.js +1 -1
  138. package/dist/index.es177.js +4 -4
  139. package/dist/index.es18.js +1 -1
  140. package/dist/index.es182.js +69 -65
  141. package/dist/index.es182.js.map +1 -1
  142. package/dist/index.es183.js +8 -68
  143. package/dist/index.es183.js.map +1 -1
  144. package/dist/index.es184.js +14 -9
  145. package/dist/index.es184.js.map +1 -1
  146. package/dist/index.es185.js +62 -14
  147. package/dist/index.es185.js.map +1 -1
  148. package/dist/index.es186.js +64 -61
  149. package/dist/index.es186.js.map +1 -1
  150. package/dist/index.es19.js +25 -23
  151. package/dist/index.es19.js.map +1 -1
  152. package/dist/index.es21.js +1 -1
  153. package/dist/index.es24.js +2 -2
  154. package/dist/index.es34.js +2 -2
  155. package/dist/index.es41.js +15 -39
  156. package/dist/index.es41.js.map +1 -1
  157. package/dist/index.es42.js +15 -33
  158. package/dist/index.es42.js.map +1 -1
  159. package/dist/index.es43.js +2475 -15
  160. package/dist/index.es43.js.map +1 -1
  161. package/dist/index.es44.js +39 -13
  162. package/dist/index.es44.js.map +1 -1
  163. package/dist/index.es45.js +32 -2476
  164. package/dist/index.es45.js.map +1 -1
  165. package/dist/index.es46.js +6 -6
  166. package/dist/index.es51.js +1 -1
  167. package/dist/index.es53.js +20 -20
  168. package/dist/index.es56.js +3 -3
  169. package/dist/index.es58.js +8 -8
  170. package/dist/index.es59.js +8 -8
  171. package/dist/index.es7.js +31 -25
  172. package/dist/index.es7.js.map +1 -1
  173. package/dist/packages/builder/edit-dialog.d.ts.map +1 -1
  174. package/dist/packages/plugins/string.d.ts.map +1 -1
  175. package/dist/style.css +122 -67
  176. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es19.js","sources":["../src/packages/builder/edit-dialog.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { Label } from \"@/components/ui/label\";\nimport { Input } from \"@/components/ui/input\";\n\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport { Constraint, useConstraints } from \"@/packages/constraints/context\";\nimport ConstraintsAdd from \"@/packages/constraints/constraint-add\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { z } from \"zod\";\nimport { AddFormSchema } from \"./add-dialog\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { OperationError } from \"./shared-types\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\";\nimport { useSchema } from \"./context\";\n\nexport interface EditPropertyDialogProps {\n property: JSONSchema7;\n propertyKey: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n params: Parameters<ReturnType<typeof useSchema>[\"handlePropertyChange\"]>,\n ) => void;\n}\n\nconst EditFormSchema = AddFormSchema.pick({\n constraints: true,\n property: true,\n});\n\n/**\n * Handles editing a constraints and other properties of a JSON schema property\n * that aren't shown in the main UI.\n */\nexport function EditPropertyDialog({\n open,\n onOpenChange,\n onSubmit,\n property: propertyToEdit,\n propertyKey,\n}: EditPropertyDialogProps) {\n const form = useForm<z.infer<typeof EditFormSchema>>({\n resolver: zodResolver(EditFormSchema),\n defaultValues: {\n property: propertyToEdit,\n },\n });\n\n const currentConstraints = form.watch(\"constraints\");\n\n const {\n getConstraintDefinitionsForType,\n getRendererForConstraint,\n validateConstraintValue,\n } = useConstraints();\n\n const availableDefinitions = useMemo(() => {\n return getConstraintDefinitionsForType(\n typeof propertyToEdit?.type === \"string\" ? propertyToEdit.type : \"\",\n );\n }, [propertyToEdit.type]);\n\n const handleSubmit = (data: z.infer<typeof EditFormSchema>) => {\n const { constraints, property } = data;\n\n const constraintUpdatesOnly: Record<string, unknown> = {\n //We only want to update the constraints that are present in the form.\n //If no constraints updates are present, we want to clear the constraints\n //by setting them to undefined\n ...availableDefinitions.reduce((acc, constraintDef) => {\n const constraint = constraints?.find(\n (c) => c.name === constraintDef.name,\n );\n if (constraint) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n acc[constraintDef.name] = constraint.value as any;\n } else {\n //If the constraint is not in the form data, we want to set it to undefined\n //to clear it from the property\n acc[constraintDef.name] = undefined;\n }\n return acc;\n }, {} as JSONSchema7),\n };\n\n onSubmit([\n propertyKey,\n { ...propertyToEdit, ...property, ...constraintUpdatesOnly },\n ]);\n form.reset();\n };\n\n const handleConstraintChange = (\n index: number,\n newVal: Constraint[\"value\"],\n ) => {\n const constraintsCopy = clone(currentConstraints);\n\n const constraintToChange = constraintsCopy?.[index];\n\n if (!constraintToChange) {\n form.setError(`constraints.${index}`, {\n message: \"The constraint was not found\",\n type: \"constraint_not_found\",\n });\n return;\n }\n\n const validationResult = validateConstraintValue(\n constraintToChange.name,\n newVal,\n );\n\n if (validationResult.status === \"error\") {\n let message = validationResult.message;\n if (validationResult.code === \"invalid\") {\n message = `${message}: ${validationResult.error?.map((i) => i.message).join(\", \")}`;\n }\n form.setError(`constraints.${index}`, {\n type: validationResult.code,\n message,\n });\n return;\n }\n\n //edit reference\n constraintToChange.value = newVal;\n form.setValue(\"constraints\", constraintsCopy);\n form.clearErrors(`constraints.${index}`);\n };\n\n const handleRemoveConstraint = (constraintName: Constraint[\"name\"]) => {\n if (!currentConstraints) return;\n const copy = clone(currentConstraints);\n const newConstraints = copy.filter((c) => c.name !== constraintName);\n form.setValue(\"constraints\", newConstraints);\n };\n\n useEffect(() => {\n //get the current constraints from the property based on the available definitions\n const newConstraints: Constraint[] = [];\n for (const constraintDef of availableDefinitions) {\n if (constraintDef.name in propertyToEdit) {\n newConstraints.push({\n name: constraintDef.name,\n value: propertyToEdit[constraintDef.name],\n });\n }\n }\n form.setValue(\"constraints\", newConstraints);\n\n // Set default value if it exists\n if (propertyToEdit.default !== undefined) {\n form.setValue(\"property.default\", propertyToEdit.default);\n }\n }, [availableDefinitions, propertyToEdit]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n id=\"edit-property-dialog\"\n className=\"overflow-y-auto max-h-screen\"\n >\n <DialogHeader>\n <DialogTitle>Edit</DialogTitle>\n <DialogDescription>\n Constraints and other properties\n </DialogDescription>\n </DialogHeader>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4\"\n data-testid=\"edit-property-form\"\n >\n <div className=\"space-y-2\">\n <FormField\n control={form.control}\n name=\"property.default\"\n render={({ field }) => {\n return (\n <FormItem>\n <FormLabel>Default Value</FormLabel>\n <FormControl>\n <Input\n {...field}\n placeholder=\"Enter default value\"\n value={\n field.value !== undefined ? String(field.value) : \"\"\n }\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n </div>\n\n {availableDefinitions.length ? (\n <div className=\"space-y-2\">\n <Label>Constraints</Label>\n <ConstraintsAdd\n addedConstraints={currentConstraints ?? []}\n availableDefinitions={availableDefinitions}\n onAdd={(newConstraints) => {\n form.setValue(\"constraints\", newConstraints);\n }}\n />\n <Separator />\n {currentConstraints?.map((constraint, i) => {\n const Renderer = getRendererForConstraint(constraint.name);\n if (!Renderer) return null;\n\n const error = form.formState.errors.constraints?.[i];\n let mappedError: OperationError | undefined;\n\n if (error) {\n mappedError = {\n code: error?.type ?? \"INVALID\",\n message: error.message ?? \"An error occurred\",\n };\n }\n\n return (\n <Renderer\n key={constraint.name}\n constraintName={constraint.name}\n propertyKey={propertyKey}\n propertyType={propertyToEdit.type}\n value={constraint.value}\n onConstraintChange={(newVal) => {\n handleConstraintChange(i, newVal);\n }}\n onRemoveConstraint={() => {\n handleRemoveConstraint(constraint.name);\n }}\n error={mappedError}\n />\n );\n })}\n </div>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\">Save</Button>\n </DialogFooter>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["EditFormSchema","AddFormSchema","EditPropertyDialog","open","onOpenChange","onSubmit","propertyToEdit","propertyKey","form","useForm","zodResolver","currentConstraints","getConstraintDefinitionsForType","getRendererForConstraint","validateConstraintValue","useConstraints","availableDefinitions","useMemo","handleSubmit","data","constraints","property","constraintUpdatesOnly","acc","constraintDef","constraint","c","handleConstraintChange","index","newVal","constraintsCopy","clone","constraintToChange","validationResult","message","i","handleRemoveConstraint","constraintName","newConstraints","useEffect","jsx","Dialog","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","Form","FormField","field","FormItem","FormLabel","FormControl","Input","FormMessage","Label","ConstraintsAdd","Separator","Renderer","error","mappedError","DialogFooter","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.es19.js","sources":["../src/packages/builder/edit-dialog.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { Label } from \"@/components/ui/label\";\nimport { Input } from \"@/components/ui/input\";\n\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport { Constraint, useConstraints } from \"@/packages/constraints/context\";\nimport ConstraintsAdd from \"@/packages/constraints/constraint-add\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { z } from \"zod\";\nimport { AddFormSchema } from \"./add-dialog\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { OperationError } from \"./shared-types\";\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\";\nimport { useSchema } from \"./context\";\n\nexport interface EditPropertyDialogProps {\n property: JSONSchema7;\n propertyKey: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n params: Parameters<ReturnType<typeof useSchema>[\"handlePropertyChange\"]>,\n ) => void;\n}\n\nconst EditFormSchema = AddFormSchema.pick({\n constraints: true,\n property: true,\n});\n\n/**\n * Handles editing a constraints and other properties of a JSON schema property\n * that aren't shown in the main UI.\n */\nexport function EditPropertyDialog({\n open,\n onOpenChange,\n onSubmit,\n property: propertyToEdit,\n propertyKey,\n}: EditPropertyDialogProps) {\n const form = useForm<z.infer<typeof EditFormSchema>>({\n resolver: zodResolver(EditFormSchema),\n defaultValues: {\n property: propertyToEdit,\n },\n });\n\n const currentConstraints = form.watch(\"constraints\");\n\n const {\n getConstraintDefinitionsForType,\n getRendererForConstraint,\n validateConstraintValue,\n } = useConstraints();\n\n const availableDefinitions = useMemo(() => {\n return getConstraintDefinitionsForType(\n typeof propertyToEdit?.type === \"string\" ? propertyToEdit.type : \"\",\n );\n }, [propertyToEdit.type]);\n\n const handleSubmit = (data: z.infer<typeof EditFormSchema>) => {\n const { constraints, property } = data;\n\n const constraintUpdatesOnly: Record<string, unknown> = {\n //We only want to update the constraints that are present in the form.\n //If no constraints updates are present, we want to clear the constraints\n //by setting them to undefined\n ...availableDefinitions.reduce((acc, constraintDef) => {\n const constraint = constraints?.find(\n (c) => c.name === constraintDef.name,\n );\n if (constraint) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n acc[constraintDef.name] = constraint.value as any;\n } else {\n //If the constraint is not in the form data, we want to set it to undefined\n //to clear it from the property\n acc[constraintDef.name] = undefined;\n }\n return acc;\n }, {} as JSONSchema7),\n };\n\n onSubmit([\n propertyKey,\n { ...propertyToEdit, ...property, ...constraintUpdatesOnly },\n ]);\n form.reset();\n };\n\n const handleConstraintChange = (\n index: number,\n newVal: Constraint[\"value\"],\n ) => {\n const constraintsCopy = clone(currentConstraints);\n\n const constraintToChange = constraintsCopy?.[index];\n\n if (!constraintToChange) {\n form.setError(`constraints.${index}`, {\n message: \"The constraint was not found\",\n type: \"constraint_not_found\",\n });\n return;\n }\n\n const validationResult = validateConstraintValue(\n constraintToChange.name,\n newVal,\n );\n\n if (validationResult.status === \"error\") {\n let message = validationResult.message;\n if (validationResult.code === \"invalid\") {\n message = `${message}: ${validationResult.error?.map((i) => i.message).join(\", \")}`;\n }\n form.setError(`constraints.${index}`, {\n type: validationResult.code,\n message,\n });\n return;\n }\n\n //edit reference\n constraintToChange.value = newVal;\n form.setValue(\"constraints\", constraintsCopy);\n form.clearErrors(`constraints.${index}`);\n };\n\n const handleRemoveConstraint = (constraintName: Constraint[\"name\"]) => {\n if (!currentConstraints) return;\n const copy = clone(currentConstraints);\n const newConstraints = copy.filter((c) => c.name !== constraintName);\n form.setValue(\"constraints\", newConstraints);\n };\n\n useEffect(() => {\n //get the current constraints from the property based on the available definitions\n const newConstraints: Constraint[] = [];\n for (const constraintDef of availableDefinitions) {\n if (constraintDef.name in propertyToEdit) {\n newConstraints.push({\n name: constraintDef.name,\n value: propertyToEdit[constraintDef.name],\n });\n }\n }\n form.setValue(\"constraints\", newConstraints);\n\n // Set default value if it exists\n if (propertyToEdit.default !== undefined) {\n form.setValue(\"property.default\", propertyToEdit.default);\n }\n }, [availableDefinitions, propertyToEdit]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n id=\"edit-property-dialog\"\n className=\"overflow-y-auto max-h-screen\"\n >\n <DialogHeader>\n <DialogTitle>Edit</DialogTitle>\n <DialogDescription>\n Constraints and other properties\n </DialogDescription>\n </DialogHeader>\n <Form {...form}>\n <form\n onSubmit={(e) => {\n e.stopPropagation();\n e.preventDefault();\n void form.handleSubmit(handleSubmit)(e);\n }}\n className=\"space-y-4\"\n data-testid=\"edit-property-form\"\n >\n <div className=\"space-y-2\">\n <FormField\n control={form.control}\n name=\"property.default\"\n render={({ field }) => {\n return (\n <FormItem>\n <FormLabel>Default Value</FormLabel>\n <FormControl>\n <Input\n {...field}\n placeholder=\"Enter default value\"\n value={\n field.value !== undefined ? String(field.value) : \"\"\n }\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n </div>\n\n {availableDefinitions.length ? (\n <div className=\"space-y-2\">\n <Label>Constraints</Label>\n <ConstraintsAdd\n addedConstraints={currentConstraints ?? []}\n availableDefinitions={availableDefinitions}\n onAdd={(newConstraints) => {\n form.setValue(\"constraints\", newConstraints);\n }}\n />\n <Separator />\n {currentConstraints?.map((constraint, i) => {\n const Renderer = getRendererForConstraint(constraint.name);\n if (!Renderer) return null;\n\n const error = form.formState.errors.constraints?.[i];\n let mappedError: OperationError | undefined;\n\n if (error) {\n mappedError = {\n code: error?.type ?? \"INVALID\",\n message: error.message ?? \"An error occurred\",\n };\n }\n\n return (\n <Renderer\n key={constraint.name}\n constraintName={constraint.name}\n propertyKey={propertyKey}\n propertyType={propertyToEdit.type}\n value={constraint.value}\n onConstraintChange={(newVal) => {\n handleConstraintChange(i, newVal);\n }}\n onRemoveConstraint={() => {\n handleRemoveConstraint(constraint.name);\n }}\n error={mappedError}\n />\n );\n })}\n </div>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\">Save</Button>\n </DialogFooter>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["EditFormSchema","AddFormSchema","EditPropertyDialog","open","onOpenChange","onSubmit","propertyToEdit","propertyKey","form","useForm","zodResolver","currentConstraints","getConstraintDefinitionsForType","getRendererForConstraint","validateConstraintValue","useConstraints","availableDefinitions","useMemo","handleSubmit","data","constraints","property","constraintUpdatesOnly","acc","constraintDef","constraint","c","handleConstraintChange","index","newVal","constraintsCopy","clone","constraintToChange","validationResult","message","i","handleRemoveConstraint","constraintName","newConstraints","useEffect","jsx","Dialog","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","Form","FormField","field","FormItem","FormLabel","FormControl","Input","FormMessage","Label","ConstraintsAdd","Separator","Renderer","error","mappedError","DialogFooter","Button"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { cva as i } from "./index.es42.js";
2
+ import { cva as i } from "./index.es45.js";
3
3
  import { cn as a } from "./index.es24.js";
4
4
  const l = i(
5
5
  "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
@@ -1,5 +1,5 @@
1
- import { clsx as o } from "./index.es44.js";
2
- import { twMerge as t } from "./index.es45.js";
1
+ import { clsx as o } from "./index.es42.js";
2
+ import { twMerge as t } from "./index.es43.js";
3
3
  function n(...r) {
4
4
  return t(o(r));
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { Slot as o } from "./index.es41.js";
3
- import { cva as n } from "./index.es42.js";
2
+ import { Slot as o } from "./index.es44.js";
3
+ import { cva as n } from "./index.es45.js";
4
4
  import { cn as s } from "./index.es24.js";
5
5
  const d = n(
6
6
  "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
@@ -1,44 +1,20 @@
1
1
  import * as o from "react";
2
- import { composeRefs as u } from "./index.es145.js";
3
- import { jsx as c, Fragment as d } from "react/jsx-runtime";
4
- var m = o.forwardRef((r, n) => {
5
- const { children: e, ...t } = r, l = o.Children.toArray(e), i = l.find(y);
6
- if (i) {
7
- const s = i.props.children, a = l.map((p) => p === i ? o.Children.count(s) > 1 ? o.Children.only(null) : o.isValidElement(s) ? s.props.children : null : p);
8
- return /* @__PURE__ */ c(f, { ...t, ref: n, children: o.isValidElement(s) ? o.cloneElement(s, void 0, a) : null });
2
+ import { Primitive as i } from "./index.es150.js";
3
+ import { jsx as f } from "react/jsx-runtime";
4
+ var l = "Label", e = o.forwardRef((r, a) => /* @__PURE__ */ f(
5
+ i.label,
6
+ {
7
+ ...r,
8
+ ref: a,
9
+ onMouseDown: (t) => {
10
+ t.target.closest("button, input, select, textarea") || (r.onMouseDown?.(t), !t.defaultPrevented && t.detail > 1 && t.preventDefault());
11
+ }
9
12
  }
10
- return /* @__PURE__ */ c(f, { ...t, ref: n, children: e });
11
- });
12
- m.displayName = "Slot";
13
- var f = o.forwardRef((r, n) => {
14
- const { children: e, ...t } = r;
15
- if (o.isValidElement(e)) {
16
- const l = C(e), i = h(t, e.props);
17
- return e.type !== o.Fragment && (i.ref = n ? u(n, l) : l), o.cloneElement(e, i);
18
- }
19
- return o.Children.count(e) > 1 ? o.Children.only(null) : null;
20
- });
21
- f.displayName = "SlotClone";
22
- var g = ({ children: r }) => /* @__PURE__ */ c(d, { children: r });
23
- function y(r) {
24
- return o.isValidElement(r) && r.type === g;
25
- }
26
- function h(r, n) {
27
- const e = { ...n };
28
- for (const t in n) {
29
- const l = r[t], i = n[t];
30
- /^on[A-Z]/.test(t) ? l && i ? e[t] = (...a) => {
31
- i(...a), l(...a);
32
- } : l && (e[t] = l) : t === "style" ? e[t] = { ...l, ...i } : t === "className" && (e[t] = [l, i].filter(Boolean).join(" "));
33
- }
34
- return { ...r, ...e };
35
- }
36
- function C(r) {
37
- let n = Object.getOwnPropertyDescriptor(r.props, "ref")?.get, e = n && "isReactWarning" in n && n.isReactWarning;
38
- return e ? r.ref : (n = Object.getOwnPropertyDescriptor(r, "ref")?.get, e = n && "isReactWarning" in n && n.isReactWarning, e ? r.props.ref : r.props.ref || r.ref);
39
- }
13
+ ));
14
+ e.displayName = l;
15
+ var n = e;
40
16
  export {
41
- m as Slot,
42
- g as Slottable
17
+ e as Label,
18
+ n as Root
43
19
  };
44
20
  //# sourceMappingURL=index.es41.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es41.js","sources":["../../../node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@18.3.18_react@18.3.1/node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\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}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["Slot","React","props","forwardedRef","children","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","jsx","SlotClone","childrenRef","getElementRef","props2","mergeProps","composeRefs","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn"],"mappings":";;;AAIG,IAACA,IAAOC,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACnD,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAS,IAAKH,GAC7BI,IAAgBL,EAAM,SAAS,QAAQG,CAAQ,GAC/CG,IAAYD,EAAc,KAAKE,CAAW;AAChD,MAAID,GAAW;AACb,UAAME,IAAaF,EAAU,MAAM,UAC7BG,IAAcJ,EAAc,IAAI,CAACK,MACjCA,MAAUJ,IACRN,EAAM,SAAS,MAAMQ,CAAU,IAAI,IAAUR,EAAM,SAAS,KAAK,IAAI,IAClEA,EAAM,eAAeQ,CAAU,IAAIA,EAAW,MAAM,WAAW,OAE/DE,CAEV;AACD,WAAuB,gBAAAC,EAAIC,GAAW,EAAE,GAAGR,GAAW,KAAKF,GAAc,UAAUF,EAAM,eAAeQ,CAAU,IAAIR,EAAM,aAAaQ,GAAY,QAAQC,CAAW,IAAI,MAAM;AAAA,EACtL;AACE,SAAuB,gBAAAE,EAAIC,GAAW,EAAE,GAAGR,GAAW,KAAKF,GAAc,UAAAC,GAAU;AACrF,CAAC;AACDJ,EAAK,cAAc;AACnB,IAAIa,IAAYZ,EAAM,WAAW,CAACC,GAAOC,MAAiB;AACxD,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAS,IAAKH;AACnC,MAAID,EAAM,eAAeG,CAAQ,GAAG;AAClC,UAAMU,IAAcC,EAAcX,CAAQ,GACpCY,IAASC,EAAWZ,GAAWD,EAAS,KAAK;AACnD,WAAIA,EAAS,SAASH,EAAM,aAC1Be,EAAO,MAAMb,IAAee,EAAYf,GAAcW,CAAW,IAAIA,IAEhEb,EAAM,aAAaG,GAAUY,CAAM;AAAA,EAC9C;AACE,SAAOf,EAAM,SAAS,MAAMG,CAAQ,IAAI,IAAIH,EAAM,SAAS,KAAK,IAAI,IAAI;AAC1E,CAAC;AACDY,EAAU,cAAc;AACrB,IAACM,IAAY,CAAC,EAAE,UAAAf,QACM,gBAAAQ,EAAIQ,GAAW,EAAE,UAAAhB,GAAU;AAEpD,SAASI,EAAYG,GAAO;AAC1B,SAAOV,EAAM,eAAeU,CAAK,KAAKA,EAAM,SAASQ;AACvD;AACA,SAASF,EAAWZ,GAAWgB,GAAY;AACzC,QAAMC,IAAgB,EAAE,GAAGD,EAAY;AACvC,aAAWE,KAAYF,GAAY;AACjC,UAAMG,IAAgBnB,EAAUkB,CAAQ,GAClCE,IAAiBJ,EAAWE,CAAQ;AAE1C,IADkB,WAAW,KAAKA,CAAQ,IAEpCC,KAAiBC,IACnBH,EAAcC,CAAQ,IAAI,IAAIG,MAAS;AACrC,MAAAD,EAAe,GAAGC,CAAI,GACtBF,EAAc,GAAGE,CAAI;AAAA,IACtB,IACQF,MACTF,EAAcC,CAAQ,IAAIC,KAEnBD,MAAa,UACtBD,EAAcC,CAAQ,IAAI,EAAE,GAAGC,GAAe,GAAGC,EAAgB,IACxDF,MAAa,gBACtBD,EAAcC,CAAQ,IAAI,CAACC,GAAeC,CAAc,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAExF;AACE,SAAO,EAAE,GAAGpB,GAAW,GAAGiB,EAAe;AAC3C;AACA,SAASP,EAAcY,GAAS;AAC9B,MAAIC,IAAS,OAAO,yBAAyBD,EAAQ,OAAO,KAAK,GAAG,KAChEE,IAAUD,KAAU,oBAAoBA,KAAUA,EAAO;AAC7D,SAAIC,IACKF,EAAQ,OAEjBC,IAAS,OAAO,yBAAyBD,GAAS,KAAK,GAAG,KAC1DE,IAAUD,KAAU,oBAAoBA,KAAUA,EAAO,gBACrDC,IACKF,EAAQ,MAAM,MAEhBA,EAAQ,MAAM,OAAOA,EAAQ;AACtC;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es41.js","sources":["../../../node_modules/.pnpm/@radix-ui+react-label@2.1.2_@types+react-dom@18.3.5_@types+react@18.3.18__@types+react@_39ef6ff1fab5609543b645ba4602f392/node_modules/@radix-ui/react-label/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// packages/react/label/src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["NAME","Label","React","props","forwardedRef","jsx","Primitive","event","Root"],"mappings":";;;AAMA,IAAIA,IAAO,SACPC,IAAQC,EAAM,WAAW,CAACC,GAAOC,MACZ,gBAAAC;AAAA,EACrBC,EAAU;AAAA,EACV;AAAA,IACE,GAAGH;AAAA,IACH,KAAKC;AAAA,IACL,aAAa,CAACG,MAAU;AAEtB,MADeA,EAAM,OACV,QAAQ,iCAAiC,MACpDJ,EAAM,cAAcI,CAAK,GACrB,CAACA,EAAM,oBAAoBA,EAAM,SAAS,KAAGA,EAAM,eAAgB;AAAA,IAC/E;AAAA,EACA;AACG,CACF;AACDN,EAAM,cAAcD;AACjB,IAACQ,IAAOP;","x_google_ignoreList":[0]}
@@ -1,36 +1,18 @@
1
- import { clsx as O } from "./index.es44.js";
2
- const m = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, y = O, j = (e, l) => (n) => {
3
- var s;
4
- if (l?.variants == null) return y(e, n?.class, n?.className);
5
- const { variants: r, defaultVariants: d } = l, V = Object.keys(r).map((t) => {
6
- const a = n?.[t], u = d?.[t];
7
- if (a === null) return null;
8
- const i = m(a) || m(u);
9
- return r[t][i];
10
- }), v = n && Object.entries(n).reduce((t, a) => {
11
- let [u, i] = a;
12
- return i === void 0 || (t[u] = i), t;
13
- }, {}), N = l == null || (s = l.compoundVariants) === null || s === void 0 ? void 0 : s.reduce((t, a) => {
14
- let { class: u, className: i, ...f } = a;
15
- return Object.entries(f).every((C) => {
16
- let [c, o] = C;
17
- return Array.isArray(o) ? o.includes({
18
- ...d,
19
- ...v
20
- }[c]) : {
21
- ...d,
22
- ...v
23
- }[c] === o;
24
- }) ? [
25
- ...t,
26
- u,
27
- i
28
- ] : t;
29
- }, []);
30
- return y(e, V, N, n?.class, n?.className);
31
- };
1
+ function a(r) {
2
+ var n, f, t = "";
3
+ if (typeof r == "string" || typeof r == "number") t += r;
4
+ else if (typeof r == "object") if (Array.isArray(r)) {
5
+ var o = r.length;
6
+ for (n = 0; n < o; n++) r[n] && (f = a(r[n])) && (t && (t += " "), t += f);
7
+ } else for (f in r) r[f] && (t && (t += " "), t += f);
8
+ return t;
9
+ }
10
+ function i() {
11
+ for (var r, n, f = 0, t = "", o = arguments.length; f < o; f++) (r = arguments[f]) && (n = a(r)) && (t && (t += " "), t += n);
12
+ return t;
13
+ }
32
14
  export {
33
- j as cva,
34
- y as cx
15
+ i as clsx,
16
+ i as default
35
17
  };
36
18
  //# sourceMappingURL=index.es42.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es42.js","sources":["../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs"],"sourcesContent":["/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n"],"names":["falsyToString","value","cx","clsx","cva","base","config","props","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","key","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions"],"mappings":";AAeA,MAAMA,IAAgB,CAACC,MAAQ,OAAOA,KAAU,YAAY,GAAGA,CAAK,KAAKA,MAAU,IAAI,MAAMA,GAChFC,IAAKC,GACLC,IAAM,CAACC,GAAMC,MAAS,CAACC,MAAQ;AACpC,MAAIC;AACJ,MAAqDF,GAAO,YAAa,KAAM,QAAOJ,EAAGG,GAAoDE,GAAM,OAAqDA,GAAM,SAAS;AACvN,QAAM,EAAE,UAAAE,GAAU,iBAAAC,EAAe,IAAKJ,GAChCK,IAAuB,OAAO,KAAKF,CAAQ,EAAE,IAAI,CAACG,MAAU;AAC9D,UAAMC,IAA4DN,IAAMK,CAAO,GACzEE,IAAuFJ,IAAgBE,CAAO;AACpH,QAAIC,MAAgB,KAAM,QAAO;AACjC,UAAME,IAAaf,EAAca,CAAW,KAAKb,EAAcc,CAAkB;AACjF,WAAOL,EAASG,CAAO,EAAEG,CAAU;AAAA,EAC/C,CAAS,GACKC,IAAwBT,KAAS,OAAO,QAAQA,CAAK,EAAE,OAAO,CAACU,GAAKC,MAAQ;AAC9E,QAAI,CAACC,GAAKlB,CAAK,IAAIiB;AACnB,WAAIjB,MAAU,WAGdgB,EAAIE,CAAG,IAAIlB,IACJgB;AAAA,EACV,GAAE,EAAE,GACCG,IAA+Bd,KAAW,SAAsCE,IAA2BF,EAAO,sBAAsB,QAAQE,MAA6B,SAAvG,SAAyHA,EAAyB,OAAO,CAACS,GAAKC,MAAQ;AAC/O,QAAI,EAAE,OAAOG,GAAS,WAAWC,GAAa,GAAGC,EAAsB,IAAKL;AAC5E,WAAO,OAAO,QAAQK,CAAsB,EAAE,MAAM,CAACL,MAAQ;AACzD,UAAI,CAACC,GAAKlB,CAAK,IAAIiB;AACnB,aAAO,MAAM,QAAQjB,CAAK,IAAIA,EAAM,SAAS;AAAA,QACzC,GAAGS;AAAA,QACH,GAAGM;AAAA,MACvB,EAAkBG,CAAG,CAAC,IAAK;AAAA,QACP,GAAGT;AAAA,QACH,GAAGM;AAAA,MACvB,EAAmBG,CAAG,MAAMlB;AAAA,IAC5B,CAAa,IAAI;AAAA,MACD,GAAGgB;AAAA,MACHI;AAAA,MACAC;AAAA,IAChB,IAAgBL;AAAA,EACP,GAAE,EAAE;AACL,SAAOf,EAAGG,GAAMM,GAAsBS,GAA4Eb,GAAM,OAAqDA,GAAM,SAAS;AACpM;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es42.js","sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;"],"names":["r","e","t","n","clsx"],"mappings":"AAAA,SAASA,EAAEC,GAAE;AAAC,MAAIC,GAAE,GAAEC,IAAE;AAAG,MAAa,OAAOF,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAAE,KAAGF;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAI,IAAEA,EAAE;AAAO,SAAIC,IAAE,GAAEA,IAAE,GAAEA,IAAI,CAAAD,EAAEC,CAAC,MAAI,IAAEF,EAAEC,EAAEC,CAAC,CAAC,OAAKC,MAAIA,KAAG,MAAKA,KAAG;AAAA,EAAE,MAAM,MAAI,KAAKF,EAAE,CAAAA,EAAE,CAAC,MAAIE,MAAIA,KAAG,MAAKA,KAAG;AAAG,SAAOA;AAAC;AAAQ,SAASC,IAAM;AAAC,WAAQH,GAAEC,GAAE,IAAE,GAAEC,IAAE,IAAG,IAAE,UAAU,QAAO,IAAE,GAAE,IAAI,EAACF,IAAE,UAAU,CAAC,OAAKC,IAAEF,EAAEC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;","x_google_ignoreList":[0]}