@rjsf/shadcn 6.0.0 → 6.0.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/Form/Form.tsx", "../src/AddButton/AddButton.tsx", "../src/components/ui/button.tsx", "../src/lib/utils.ts", "../src/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx", "../src/ArrayFieldTemplate/ArrayFieldTemplate.tsx", "../src/BaseInputTemplate/BaseInputTemplate.tsx", "../src/components/ui/input.tsx", "../src/DescriptionField/DescriptionField.tsx", "../src/ErrorList/ErrorList.tsx", "../src/components/ui/alert.tsx", "../src/FieldErrorTemplate/FieldErrorTemplate.tsx", "../src/FieldHelpTemplate/FieldHelpTemplate.tsx", "../src/FieldTemplate/FieldTemplate.tsx", "../src/GridTemplate/GridTemplate.tsx", "../src/IconButton/IconButton.tsx", "../src/MultiSchemaFieldTemplate/MultiSchemaFieldTemplate.tsx", "../src/ObjectFieldTemplate/ObjectFieldTemplate.tsx", "../src/OptionalDataControlsTemplate/OptionalDataControlsTemplate.tsx", "../src/SubmitButton/SubmitButton.tsx", "../src/TitleField/TitleField.tsx", "../src/components/ui/separator.tsx", "../src/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx", "../src/Templates/Templates.ts", "../src/CheckboxWidget/CheckboxWidget.tsx", "../src/components/ui/checkbox.tsx", "../src/components/ui/label.tsx", "../src/CheckboxesWidget/CheckboxesWidget.tsx", "../src/RadioWidget/RadioWidget.tsx", "../src/components/ui/radio-group.tsx", "../src/RangeWidget/RangeWidget.tsx", "../src/components/ui/slider.tsx", "../src/SelectWidget/SelectWidget.tsx", "../src/components/ui/fancy-multi-select.tsx", "../src/components/ui/badge.tsx", "../src/components/ui/command.tsx", "../src/components/ui/dialog.tsx", "../src/components/ui/fancy-select.tsx", "../src/TextareaWidget/TextareaWidget.tsx", "../src/components/ui/textarea.tsx", "../src/Widgets/Widgets.ts", "../src/Theme/Theme.tsx"],
4
- "sourcesContent": ["import Form from './Form/Form';\n\nexport { default as Form, generateForm } from './Form';\nexport { default as Templates, generateTemplates } from './Templates';\nexport { default as Theme, generateTheme } from './Theme';\nexport { default as Widgets, generateWidgets } from './Widgets';\n\nexport default Form;\n", "import { ComponentType } from 'react';\n\nimport { FormProps, withTheme } from '@rjsf/core';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nimport { generateTheme } from '../Theme';\n\nexport function generateForm<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): ComponentType<FormProps<T, S, F>> {\n return withTheme<T, S, F>(generateTheme<T, S, F>());\n}\n\nexport default generateForm();\n", "import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport { PlusCircle } from 'lucide-react';\n\nimport { Button } from '../components/ui/button';\nimport { cn } from '../lib/utils';\n\n/**\n * A button component for adding new items in a form\n * @param uiSchema - The UI schema for the form, which can include custom properties\n * @param registry - The registry object containing the form's configuration and utilities\n * @param className - Allow custom class names to be passed for Tailwind CSS styling\n * @param props - The component properties\n */\nexport default function AddButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n uiSchema,\n registry,\n className,\n ...props\n}: IconButtonProps<T, S, F>) {\n const { translateString } = registry;\n return (\n <div className='p-0 m-0'>\n <Button {...props} className={cn('w-fit gap-2', className)} variant='outline' type='button'>\n <PlusCircle size={16} /> {translateString(TranslatableString.AddItemButton)}\n </Button>\n </div>\n );\n}\n", "import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Predefined button variants using class-variance-authority\n * @see https://ui.shadcn.com/docs/components/button\n */\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-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\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n xs: 'h-6 rounded-md gap-1 px-2 has-[>svg]:px-2',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\n/**\n * A button component with multiple style variants and sizes\n *\n * @param props - The props for the Button component\n * @param props.className - Additional CSS classes to apply to the button\n * @param props.variant - The style variant of the button: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'\n * @param props.size - The size variant of the button: 'default' | 'sm' | 'lg' | 'icon'\n * @param props.asChild - Whether to render the button as a child component\n * @param ref - The forwarded ref for the button element\n * @returns A button element with the specified styles and behavior\n */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n return <Comp data-slot='button' className={cn(buttonVariants({ variant, size, className }))} {...props} />;\n}\n\nexport { Button, buttonVariants };\n", "import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n", "import {\n ArrayFieldItemTemplateProps,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\n/** The `ArrayFieldItemTemplate` component is the template used to render an items of an array.\n *\n * @param props - The `ArrayFieldItemTemplateProps` props for the component\n */\nexport default function ArrayFieldItemTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ArrayFieldItemTemplateProps<T, S, F>) {\n const { children, buttonsProps, hasToolbar, uiSchema, registry } = props;\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const ArrayFieldItemButtonsTemplate = getTemplate<'ArrayFieldItemButtonsTemplate', T, S, F>(\n 'ArrayFieldItemButtonsTemplate',\n registry,\n uiOptions,\n );\n return (\n <div>\n <div className='mb-2 flex flex-row flex-wrap items-center'>\n <div className='grow shrink'>{children}</div>\n <div className='flex items-end justify-end p-0.5'>\n {hasToolbar && (\n <div className='flex gap-2'>\n <ArrayFieldItemButtonsTemplate {...buttonsProps} />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n", "import {\n ArrayFieldTemplateProps,\n buttonId,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\n/** The `ArrayFieldTemplate` component is the template used to render all items in an array.\n *\n * @param props - The `ArrayFieldTemplateProps` props for the component\n */\nexport default function ArrayFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ArrayFieldTemplateProps<T, S, F>) {\n const {\n canAdd,\n disabled,\n fieldPathId,\n uiSchema,\n items,\n optionalDataControl,\n onAddClick,\n readonly,\n registry,\n required,\n schema,\n title,\n } = props;\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const ArrayFieldDescriptionTemplate = getTemplate<'ArrayFieldDescriptionTemplate', T, S, F>(\n 'ArrayFieldDescriptionTemplate',\n registry,\n uiOptions,\n );\n const ArrayFieldTitleTemplate = getTemplate<'ArrayFieldTitleTemplate', T, S, F>(\n 'ArrayFieldTitleTemplate',\n registry,\n uiOptions,\n );\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n return (\n <div>\n <div className='m-0 flex p-0'>\n <div className='m-0 w-full p-0'>\n <ArrayFieldTitleTemplate\n fieldPathId={fieldPathId}\n title={uiOptions.title || title}\n schema={schema}\n uiSchema={uiSchema}\n required={required}\n registry={registry}\n optionalDataControl={showOptionalDataControlInTitle ? optionalDataControl : undefined}\n />\n <ArrayFieldDescriptionTemplate\n fieldPathId={fieldPathId}\n description={uiOptions.description || schema.description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n <div key={`array-item-list-${fieldPathId.$id}`} className='p-0 m-0 w-full mb-2'>\n {!showOptionalDataControlInTitle ? optionalDataControl : undefined}\n {items}\n {canAdd && (\n <div className='mt-2 flex'>\n <AddButton\n id={buttonId(fieldPathId, 'add')}\n className='rjsf-array-item-add'\n onClick={onAddClick}\n disabled={disabled || readonly}\n uiSchema={uiSchema}\n registry={registry}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n", "import {\n ariaDescribedByIds,\n BaseInputTemplateProps,\n examplesId,\n FormContextType,\n getInputProps,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\nimport { ChangeEvent, FocusEvent } from 'react';\n\nimport { Input } from '../components/ui/input';\nimport { cn } from '../lib/utils';\n\n/** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.\n * It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n placeholder,\n required,\n readonly,\n disabled,\n type,\n value,\n onChange,\n onChangeOverride,\n onBlur,\n onFocus,\n autofocus,\n options,\n schema,\n rawErrors = [],\n children,\n extraProps,\n className,\n}: BaseInputTemplateProps<T, S, F>) {\n const inputProps = {\n ...extraProps,\n ...getInputProps<T, S, F>(schema, type, options),\n };\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLInputElement>) =>\n onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) => onBlur(id, target && target.value);\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) => onFocus(id, target && target.value);\n\n return (\n <div className='p-0.5'>\n <Input\n id={id}\n name={htmlName || id}\n type={type}\n placeholder={placeholder}\n autoFocus={autofocus}\n required={required}\n disabled={disabled}\n readOnly={readonly}\n className={cn({ 'border-destructive focus-visible:ring-0': rawErrors.length > 0 }, className)}\n list={schema.examples ? examplesId(id) : undefined}\n {...inputProps}\n value={value || value === 0 ? value : ''}\n onChange={onChangeOverride || _onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id, !!schema.examples)}\n />\n {children}\n {Array.isArray(schema.examples) ? (\n <datalist id={examplesId(id)}>\n {(schema.examples as string[])\n .concat(schema.default && !schema.examples.includes(schema.default) ? ([schema.default] as string[]) : [])\n .map((example: any) => {\n return <option key={example} value={example} />;\n })}\n </datalist>\n ) : null}\n </div>\n );\n}\n", "import { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * An input component with styling and focus states\n *\n * @param props - The props for the Input component\n * @param props.className - Additional CSS classes to apply to the input\n * @param props.type - The type of the input element\n * @param ref - The forwarded ref for the input element\n * @returns An input element with the specified styles and behavior\n */\nfunction Input({ className, type, ...props }: ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot='input'\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n", "import { DescriptionFieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { RichDescription } from '@rjsf/core';\n\n/** The `DescriptionField` is the template to use to render the description of a field\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function DescriptionField<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({ id, description, registry, uiSchema }: DescriptionFieldProps<T, S, F>) {\n if (!description) {\n return null;\n }\n\n return (\n <div>\n <div id={id} className='text-sm text-muted-foreground'>\n <RichDescription description={description} registry={registry} uiSchema={uiSchema} />\n </div>\n </div>\n );\n}\n", "import { ErrorListProps, FormContextType, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport { AlertCircle } from 'lucide-react';\n\nimport { Alert, AlertDescription, AlertTitle } from '../components/ui/alert';\n\n/** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`\n *\n * @param props - The `ErrorListProps` for this component\n */\nexport default function ErrorList<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n errors,\n registry,\n}: ErrorListProps<T, S, F>) {\n const { translateString } = registry;\n return (\n <Alert variant='destructive' className='mb-2'>\n <AlertCircle className='h-4 w-4' />\n <AlertTitle>{translateString(TranslatableString.ErrorsLabel)}</AlertTitle>\n <AlertDescription className='flex flex-col gap-1'>\n {errors.map((error, i: number) => {\n return <span key={i}>&#x2022; {error.stack}</span>;\n })}\n </AlertDescription>\n </Alert>\n );\n}\n", "import { cva, type VariantProps } from 'class-variance-authority';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst alertVariants = cva(\n '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',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\n/** A component that displays a brief, important message in a way that attracts the user's attention without interrupting their task.\n *\n * @param props - Component props\n * @param props.variant - 'default' | 'destructive' - Style variant of the alert\n * @param props.className - Additional CSS classes\n * @returns A div element that serves as an alert component\n */\nfunction Alert({ className, variant, ...props }: ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return <div data-slot='alert' role='alert' className={cn(alertVariants({ variant }), className)} {...props} />;\n}\n\n/** Represents the title content of an Alert component.\n *\n * @param props - Component props\n * @param props.className - Additional CSS classes\n * @returns A heading element for the alert title\n */\nfunction AlertTitle({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-title'\n className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\n/** Represents the description content of an Alert component.\n *\n * @param props - Component props\n * @param props.className - Additional CSS classes\n * @returns A div element containing the alert description\n */\nfunction AlertDescription({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-description'\n className={cn(\n 'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n", "import { FieldErrorProps, FormContextType, RJSFSchema, StrictRJSFSchema, errorId } from '@rjsf/utils';\n\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: FieldErrorProps<T, S, F>) {\n const { errors = [], fieldPathId } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(fieldPathId);\n\n return (\n <div className='flex flex-col gap-1' id={id}>\n {errors.map((error, i: number) => {\n return (\n <span className={'text-xs font-medium text-destructive mb-1'} key={i}>\n {error}\n </span>\n );\n })}\n </div>\n );\n}\n", "import { FieldHelpProps, FormContextType, RJSFSchema, StrictRJSFSchema, helpId } from '@rjsf/utils';\n\nimport { cn } from '../lib/utils';\n\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: FieldHelpProps<T, S, F>) {\n const { fieldPathId, help, hasErrors } = props;\n if (!help) {\n return null;\n }\n const id = helpId(fieldPathId);\n return (\n <span className={cn('text-xs font-medium text-muted-foreground', { ' text-destructive': hasErrors })} id={id}>\n {help}\n </span>\n );\n}\n", "import {\n FieldTemplateProps,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\nimport { cn } from '../lib/utils';\n\n/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field\n * content, (label, description, children, errors and help) inside a `WrapIfAdditional` component.\n *\n * @param props - The `FieldTemplateProps` for this component\n */\nexport default function FieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n children,\n displayLabel,\n rawErrors = [],\n errors,\n help,\n description,\n rawDescription,\n classNames,\n style,\n disabled,\n label,\n hidden,\n onKeyRename,\n onKeyRenameBlur,\n onRemoveProperty,\n readonly,\n required,\n schema,\n uiSchema,\n registry,\n}: FieldTemplateProps<T, S, F>) {\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate<'WrapIfAdditionalTemplate', T, S, F>(\n 'WrapIfAdditionalTemplate',\n registry,\n uiOptions,\n );\n if (hidden) {\n return <div className='hidden'>{children}</div>;\n }\n return (\n <WrapIfAdditionalTemplate\n classNames={classNames}\n style={style}\n disabled={disabled}\n id={id}\n label={label}\n onKeyRename={onKeyRename}\n onKeyRenameBlur={onKeyRenameBlur}\n onRemoveProperty={onRemoveProperty}\n readonly={readonly}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n >\n <div className='flex flex-col gap-2'>\n {displayLabel && (\n <label\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n { ' text-destructive': rawErrors.length > 0 },\n )}\n htmlFor={id}\n >\n {label}\n {required ? '*' : null}\n </label>\n )}\n {children}\n {displayLabel && rawDescription && (\n <span\n className={cn('text-xs font-medium text-muted-foreground', { ' text-destructive': rawErrors.length > 0 })}\n >\n {description}\n </span>\n )}\n {errors}\n {help}\n </div>\n </WrapIfAdditionalTemplate>\n );\n}\n", "import { GridTemplateProps } from '@rjsf/utils';\nimport { cn } from '../lib/utils';\n\n/** Renders a `GridTemplate` for mui, which is expecting the column sizing information coming in via the\n * extra props provided by the caller, which are spread directly on the `Grid2`.\n *\n * @param props - The GridTemplateProps, including the extra props containing the mui grid positioning details\n */\nexport default function GridTemplate(props: GridTemplateProps) {\n const { children, column, className, ...rest } = props;\n return (\n <div className={cn('grid gap-2', className)} {...rest}>\n {children}\n </div>\n );\n}\n", "import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport { ChevronDown, ChevronUp, Copy, Trash2 } from 'lucide-react';\nimport type { VariantProps } from 'class-variance-authority';\n\nimport { Button, buttonVariants } from '../components/ui/button';\n\nexport type ShadIconButtonProps<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n> = IconButtonProps<T, S, F> & VariantProps<typeof buttonVariants>;\n\n/** Base button component that renders a Shadcn button with an icon for RJSF form actions.\n * This component serves as the foundation for other specialized buttons used in array operations.\n * It combines RJSF's IconButtonProps with Shadcn's ButtonProps to provide a consistent styling\n * and behavior across the form.\n *\n * @param props - The combined props from RJSF IconButtonProps and Shadcn ButtonProps, including icon and event handlers\n */\nexport default function IconButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const { icon, iconType, className, uiSchema, registry, ...otherProps } = props;\n return (\n <Button size='icon' variant='outline' className={className} {...otherProps} type='button'>\n {icon}\n </Button>\n );\n}\n\n/** Renders a copy button for RJSF array fields that allows users to duplicate array items.\n * The button includes a copy icon and uses the RJSF translation system for the tooltip text.\n * This is used within ArrayField to provide item duplication functionality.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function CopyButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton title={translateString(TranslatableString.CopyButton)} {...props} icon={<Copy className='h-4 w-4' />} />\n );\n}\n\n/** Renders a move down button for RJSF array fields that allows reordering of array items.\n * The button includes a chevron-down icon and uses the RJSF translation system for the tooltip text.\n * This is used within ArrayField to allow moving items to a lower index in the array.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function MoveDownButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.MoveDownButton)}\n {...props}\n icon={<ChevronDown className='h-4 w-4' />}\n />\n );\n}\n\n/** Renders a move up button for RJSF array fields that allows reordering of array items.\n * The button includes a chevron-up icon and uses the RJSF translation system for the tooltip text.\n * This is used within ArrayField to allow moving items to a higher index in the array.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function MoveUpButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.MoveUpButton)}\n {...props}\n icon={<ChevronUp className='h-4 w-4' />}\n />\n );\n}\n\n/** Renders a remove button for RJSF array fields that allows deletion of array items.\n * The button includes a trash icon and uses the RJSF translation system for the tooltip text.\n * It has special styling with destructive colors to indicate its dangerous action.\n * This is used within ArrayField to provide item removal functionality.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function RemoveButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.RemoveButton)}\n {...props}\n className={'border-destructive'}\n icon={<Trash2 className='h-4 w-4 stroke-destructive' />}\n />\n );\n}\n", "import { FormContextType, MultiSchemaFieldTemplateProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { cn } from '../lib/utils';\n\nexport default function MultiSchemaFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({ selector, optionSchemaField }: MultiSchemaFieldTemplateProps<T, S, F>) {\n return (\n <div className={cn('p-4 border rounded-md bg-background shadow-sm')}>\n <div className={cn('mb-4')}>{selector}</div>\n {optionSchemaField}\n </div>\n );\n}\n", "import {\n buttonId,\n canExpand,\n descriptionId,\n FormContextType,\n getTemplate,\n getUiOptions,\n ObjectFieldTemplateProps,\n RJSFSchema,\n StrictRJSFSchema,\n titleId,\n} from '@rjsf/utils';\n\n/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the\n * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all\n * the properties.\n *\n * @param props - The `ObjectFieldTemplateProps` for this component\n */\nexport default function ObjectFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n description,\n title,\n properties,\n required,\n uiSchema,\n fieldPathId,\n schema,\n formData,\n optionalDataControl,\n onAddProperty,\n disabled,\n readonly,\n registry,\n}: ObjectFieldTemplateProps<T, S, F>) {\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>('TitleFieldTemplate', registry, uiOptions);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n uiOptions,\n );\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n return (\n <>\n {title && (\n <TitleFieldTemplate\n id={titleId(fieldPathId)}\n title={title}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n optionalDataControl={showOptionalDataControlInTitle ? optionalDataControl : undefined}\n />\n )}\n {description && (\n <DescriptionFieldTemplate\n id={descriptionId(fieldPathId)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n <div className='flex flex-col gap-2'>\n {!showOptionalDataControlInTitle ? optionalDataControl : undefined}\n {properties.map((element: any, index: number) => (\n <div key={index} className={`${element.hidden ? 'hidden' : ''} flex`}>\n <div className='w-full'>{element.content}</div>\n </div>\n ))}\n {canExpand(schema, uiSchema, formData) ? (\n <AddButton\n id={buttonId(fieldPathId, 'add')}\n onClick={onAddProperty}\n disabled={disabled || readonly}\n className='rjsf-object-property-expand'\n uiSchema={uiSchema}\n registry={registry}\n />\n ) : null}\n </div>\n </>\n );\n}\n", "import { FormContextType, OptionalDataControlsTemplateProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { PlusCircle } from 'lucide-react';\n\nimport IconButton, { RemoveButton } from '../IconButton';\n\n/** The OptionalDataControlsTemplate renders one of three different states. If\n * there is an `onAddClick()` function, it renders the \"Add\" button. If there is\n * an `onRemoveClick()` function, it renders the \"Remove\" button. Otherwise it\n * renders the \"No data found\" section. All of them use the `label` as either\n * the `title` of buttons or simply outputting it.\n *\n * @param props - The `OptionalDataControlsTemplateProps` for the template\n */\nexport default function OptionalDataControlsTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: OptionalDataControlsTemplateProps<T, S, F>) {\n const { id, registry, label, onAddClick, onRemoveClick } = props;\n if (onAddClick) {\n return (\n <IconButton\n id={id}\n registry={registry}\n className='rjsf-add-optional-data'\n onClick={onAddClick}\n title={label}\n icon={<PlusCircle />}\n size='xs'\n />\n );\n } else if (onRemoveClick) {\n return (\n <RemoveButton\n id={id}\n registry={registry}\n className='rjsf-remove-optional-data'\n onClick={onRemoveClick}\n title={label}\n size='xs'\n />\n );\n }\n return <em id={id}>{label}</em>;\n}\n", "import { FormContextType, getSubmitButtonOptions, RJSFSchema, StrictRJSFSchema, SubmitButtonProps } from '@rjsf/utils';\n\nimport { Button } from '../components/ui/button';\nimport { cn } from '../lib/utils';\n\n/** The `SubmitButton` renders a button that represent the `Submit` action on a form\n */\nexport default function SubmitButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: SubmitButtonProps<T, S, F>,\n) {\n const { submitText, norender, props: submitButtonProps } = getSubmitButtonOptions<T, S, F>(props.uiSchema);\n if (norender) {\n return null;\n }\n return (\n <div>\n <Button type='submit' {...submitButtonProps} className={cn('my-2', submitButtonProps?.className)}>\n {submitText}\n </Button>\n </div>\n );\n}\n", "import { FormContextType, getUiOptions, RJSFSchema, StrictRJSFSchema, TitleFieldProps } from '@rjsf/utils';\n\nimport { Separator } from '../components/ui/separator';\n\n/** The `TitleField` is the template to use to render the title of a field\n *\n * @param props - The `TitleFieldProps` for this component\n */\nexport default function TitleField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n id,\n title,\n uiSchema,\n optionalDataControl,\n}: TitleFieldProps<T, S, F>) {\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n let heading = <h5>{uiOptions.title || title}</h5>;\n if (optionalDataControl) {\n heading = (\n <div className='flex flex-row'>\n <div className='flex-grow'>{heading}</div>\n <div className='flex'>{optionalDataControl}</div>\n </div>\n );\n }\n return (\n <div id={id} className='my-1 flex flex-col gap-0.5'>\n {heading}\n <Separator dir='horizontal' style={{ height: '1px' }} className='my-1' />\n </div>\n );\n}\n", "'use client';\n\nimport { Root } from '@radix-ui/react-separator';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A separator component for visually dividing content\n *\n * @param props - The props for the Separator component\n * @param props.className - Additional CSS classes to apply to the separator\n * @param props.orientation - The orientation of the separator ('horizontal' | 'vertical')\n * @param props.decorative - Whether the separator is decorative or semantic\n * @param ref - The forwarded ref for the separator element\n * @returns A styled separator element\n */\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof Root>) {\n return (\n <Root\n data-slot='separator'\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n", "import {\n ADDITIONAL_PROPERTY_FLAG,\n buttonId,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n TranslatableString,\n WrapIfAdditionalTemplateProps,\n} from '@rjsf/utils';\n\nimport { Input } from '../components/ui/input';\nimport { Separator } from '../components/ui/separator';\n\n/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are\n * part of an `additionalProperties` part of a schema.\n *\n * @param props - The `WrapIfAdditionalProps` for this component\n */\nexport default function WrapIfAdditionalTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n classNames,\n style,\n children,\n disabled,\n id,\n label,\n onRemoveProperty,\n onKeyRenameBlur,\n readonly,\n required,\n schema,\n uiSchema,\n registry,\n}: WrapIfAdditionalTemplateProps<T, S, F>) {\n const { templates, translateString } = registry;\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n\n if (!additional) {\n return (\n <div className={classNames} style={style}>\n {children}\n </div>\n );\n }\n\n const keyId = `${id}-key`;\n\n return (\n <>\n <div className={`flex flex-row items-center gap-2 relative w-full ${classNames}`} style={style}>\n <div className='flex flex-col w-full gap-2 line-clamp-1'>\n <div className='flex-grow'>\n <label htmlFor={keyId} className='pt-2 text-sm font-medium text-muted-foreground mb-4 line-clamp-1'>\n {keyLabel}\n </label>\n <div className='pl-0.5'>\n <Input\n required={required}\n defaultValue={label}\n disabled={disabled || readonly}\n id={keyId}\n name={keyId}\n onBlur={!readonly ? onKeyRenameBlur : undefined}\n type='text'\n className='mt-1 w-full border shadow-sm'\n />\n </div>\n </div>\n <div className='flex-grow pr-0.5'>{children}</div>\n </div>\n\n <RemoveButton\n id={buttonId(id, 'remove')}\n iconType='block'\n className='rjsf-object-property-remove w-full'\n disabled={disabled || readonly}\n onClick={onRemoveProperty}\n uiSchema={uiSchema}\n registry={registry}\n />\n </div>\n <Separator dir='horizontal' className='mt-2' />\n </>\n );\n}\n", "import { FormContextType, RJSFSchema, StrictRJSFSchema, TemplatesType } from '@rjsf/utils';\nimport AddButton from '../AddButton';\nimport ArrayFieldItemTemplate from '../ArrayFieldItemTemplate';\nimport ArrayFieldTemplate from '../ArrayFieldTemplate';\nimport BaseInputTemplate from '../BaseInputTemplate/BaseInputTemplate';\nimport DescriptionField from '../DescriptionField';\nimport ErrorList from '../ErrorList';\nimport FieldErrorTemplate from '../FieldErrorTemplate';\nimport FieldHelpTemplate from '../FieldHelpTemplate';\nimport FieldTemplate from '../FieldTemplate';\nimport GridTemplate from '../GridTemplate';\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } from '../IconButton';\nimport MultiSchemaFieldTemplate from '../MultiSchemaFieldTemplate';\nimport ObjectFieldTemplate from '../ObjectFieldTemplate';\nimport OptionalDataControlsTemplate from '../OptionalDataControlsTemplate';\nimport SubmitButton from '../SubmitButton';\nimport TitleField from '../TitleField';\nimport WrapIfAdditionalTemplate from '../WrapIfAdditionalTemplate';\n\nexport function generateTemplates<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): Partial<TemplatesType<T, S, F>> {\n return {\n ArrayFieldItemTemplate,\n ArrayFieldTemplate,\n BaseInputTemplate,\n ButtonTemplates: {\n AddButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n SubmitButton,\n },\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FieldErrorTemplate,\n FieldHelpTemplate,\n FieldTemplate,\n GridTemplate,\n MultiSchemaFieldTemplate,\n ObjectFieldTemplate,\n OptionalDataControlsTemplate,\n TitleFieldTemplate: TitleField,\n WrapIfAdditionalTemplate,\n };\n}\n\nexport default generateTemplates();\n", "import {\n ariaDescribedByIds,\n descriptionId,\n FormContextType,\n getTemplate,\n labelValue,\n RJSFSchema,\n schemaRequiresTrueValue,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\nimport { Checkbox } from '../components/ui/checkbox';\nimport { Label } from '../components/ui/label';\n\n/** The `CheckBoxWidget` is a widget for rendering boolean properties.\n * It is typically used to represent a boolean.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function CheckboxWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: WidgetProps<T, S, F>) {\n const {\n id,\n htmlName,\n value,\n disabled,\n readonly,\n label,\n hideLabel,\n schema,\n autofocus,\n options,\n onChange,\n onBlur,\n onFocus,\n registry,\n uiSchema,\n className,\n } = props;\n // Because an unchecked checkbox will cause html5 validation to fail, only add\n // the \"required\" attribute if the field value must be \"true\", due to the\n // \"const\" or \"enum\" keywords\n const required = schemaRequiresTrueValue<S>(schema);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n options,\n );\n\n const _onChange = (checked: boolean) => onChange(checked);\n const _onBlur = () => onBlur(id, value);\n const _onFocus = () => onFocus(id, value);\n\n const description = options.description || schema.description;\n return (\n <div\n className={`relative ${disabled || readonly ? 'cursor-not-allowed opacity-50' : ''}`}\n aria-describedby={ariaDescribedByIds(id)}\n >\n {!hideLabel && description && (\n <DescriptionFieldTemplate\n id={descriptionId(id)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n <div className='flex items-center gap-2 my-2'>\n <Checkbox\n id={id}\n name={htmlName || id}\n checked={typeof value === 'undefined' ? false : Boolean(value)}\n required={required}\n disabled={disabled || readonly}\n autoFocus={autofocus}\n onCheckedChange={_onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n className={className}\n />\n <Label className='leading-tight' htmlFor={id}>\n {labelValue(label, hideLabel || !label)}\n </Label>\n </div>\n </div>\n );\n}\n", "'use client';\n\nimport { Indicator, Root } from '@radix-ui/react-checkbox';\nimport { CheckIcon } from '@radix-ui/react-icons';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A checkbox component built on top of Radix UI Checkbox primitive\n * Renders an interactive checkbox that can be either checked or unchecked\n * @see https://ui.shadcn.com/docs/components/checkbox\n *\n * @param props - Props extending Radix UI Checkbox primitive props\n * @param props.className - Additional CSS classes to apply to the checkbox\n * @param ref - Forward ref to access the underlying checkbox element\n */\nfunction Checkbox({ className, ...props }: ComponentProps<typeof Root>) {\n return (\n <Root\n data-slot='checkbox'\n className={cn(\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <CheckIcon className='size-3.5' />\n </Indicator>\n </Root>\n );\n}\n\nexport { Checkbox };\n", "'use client';\n\nimport { Root } from '@radix-ui/react-label';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A label component with styling variants\n *\n * @param props - The props for the Label component\n * @param props.className - Additional CSS classes to apply to the label\n * @param ref - The forwarded ref for the label element\n * @returns A styled label element\n */\nfunction Label({ className, ...props }: ComponentProps<typeof Root>) {\n return (\n <Root\n data-slot='label'\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n", "import {\n ariaDescribedByIds,\n enumOptionsDeselectValue,\n enumOptionsIsSelected,\n enumOptionsSelectValue,\n enumOptionsValueForIndex,\n FormContextType,\n optionId,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\nimport { FocusEvent } from 'react';\n\nimport { Checkbox } from '../components/ui/checkbox';\nimport { Label } from '../components/ui/label';\nimport { cn } from '../lib/utils';\n\n/** The `CheckboxesWidget` is a widget for rendering checkbox groups.\n * It is typically used to represent an array of enums.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function CheckboxesWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n disabled,\n options,\n value,\n autofocus,\n readonly,\n required,\n onChange,\n onBlur,\n onFocus,\n className,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, inline, emptyValue } = options;\n const checkboxesValues = Array.isArray(value) ? value : [value];\n\n const _onBlur = ({ target }: FocusEvent<HTMLButtonElement>) =>\n onBlur(id, enumOptionsValueForIndex<S>(target && (target as any).value, enumOptions, emptyValue));\n const _onFocus = ({ target }: FocusEvent<HTMLButtonElement>) =>\n onFocus(id, enumOptionsValueForIndex<S>(target && (target as any).value, enumOptions, emptyValue));\n\n return (\n <div className={cn({ 'flex flex-col gap-2': !inline, 'flex flex-row gap-4 flex-wrap': inline })}>\n {Array.isArray(enumOptions) &&\n enumOptions.map((option, index: number) => {\n const checked = enumOptionsIsSelected<S>(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const indexOptionId = optionId(id, index);\n\n return (\n <div className='flex items-center gap-2' key={indexOptionId}>\n <Checkbox\n id={indexOptionId}\n name={htmlName || id}\n required={required}\n disabled={disabled || itemDisabled || readonly}\n onCheckedChange={(state) => {\n if (state) {\n onChange(enumOptionsSelectValue<S>(index, checkboxesValues, enumOptions));\n } else {\n onChange(enumOptionsDeselectValue<S>(index, checkboxesValues, enumOptions));\n }\n }}\n className={className}\n checked={checked}\n autoFocus={autofocus && index === 0}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n />\n <Label className='leading-tight' htmlFor={optionId(id, index)}>\n {option.label}\n </Label>\n </div>\n );\n })}\n </div>\n );\n}\n", "import {\n ariaDescribedByIds,\n enumOptionsIsSelected,\n enumOptionsValueForIndex,\n FormContextType,\n optionId,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\nimport { FocusEvent } from 'react';\n\nimport { Label } from '../components/ui/label';\nimport { RadioGroup, RadioGroupItem } from '../components/ui/radio-group';\nimport { cn } from '../lib/utils';\n\n/** The `RadioWidget` is a widget for rendering a radio group.\n * It is typically used with a string property constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RadioWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n id,\n options,\n value,\n required,\n disabled,\n readonly,\n onChange,\n onBlur,\n onFocus,\n className,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, emptyValue } = options;\n\n const _onChange = (value: string) => onChange(enumOptionsValueForIndex<S>(value, enumOptions, emptyValue));\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) =>\n onBlur(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) =>\n onFocus(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n\n const inline = Boolean(options && options.inline);\n\n return (\n <div className='mb-0'>\n <RadioGroup\n defaultValue={value?.toString()}\n required={required}\n disabled={disabled || readonly}\n onValueChange={(e: string) => {\n _onChange(e);\n }}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n orientation={inline ? 'horizontal' : 'vertical'}\n className={cn('flex flex-wrap', { 'flex-col': !inline }, className)}\n >\n {Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const checked = enumOptionsIsSelected<S>(option.value, value);\n return (\n <div className='flex items-center gap-2' key={optionId(id, index)}>\n <RadioGroupItem\n checked={checked}\n value={index.toString()}\n id={optionId(id, index)}\n disabled={itemDisabled}\n />\n <Label className='leading-tight' htmlFor={optionId(id, index)}>\n {option.label}\n </Label>\n </div>\n );\n })}\n </RadioGroup>\n </div>\n );\n}\n", "'use client';\n\nimport { Root, Indicator, Item } from '@radix-ui/react-radio-group';\nimport { ComponentProps } from 'react';\nimport { CircleIcon } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A radio group component for selecting a single option from a list\n *\n * @param props - The props for the RadioGroup component\n * @param props.className - Additional CSS classes to apply to the radio group\n * @param ref - The forwarded ref for the radio group element\n * @returns A radio group container element\n */\nfunction RadioGroup({ className, ...props }: ComponentProps<typeof Root>) {\n return <Root data-slot='radio-group' className={cn('grid gap-3', className)} {...props} />;\n}\n\n/**\n * An individual radio item within a RadioGroup\n *\n * @param props - The props for the RadioGroupItem component\n * @param props.className - Additional CSS classes to apply to the radio item\n * @param ref - The forwarded ref for the radio item element\n * @returns A styled radio input element\n */\nfunction RadioGroupItem({ className, ...props }: ComponentProps<typeof Item>) {\n return (\n <Item\n data-slot='radio-group-item'\n className={cn(\n 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <Indicator data-slot='radio-group-indicator' className='relative flex items-center justify-center'>\n <CircleIcon className='fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' />\n </Indicator>\n </Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n", "import { ariaDescribedByIds, FormContextType, rangeSpec, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\n\nimport { Slider } from '../components/ui/slider';\n\nconst allowedProps = [\n 'name',\n 'min',\n 'max',\n 'step',\n 'orientation',\n 'disabled',\n 'defaultValue',\n 'value',\n 'onValueChange',\n 'className',\n 'dir',\n 'inverted',\n 'minStepsBetweenThumbs',\n];\n\n/**\n * A range widget component that renders a slider for number input\n * @param {object} props - The widget properties\n * @param {number} props.value - The current value of the range\n * @param {boolean} props.readonly - Whether the widget is read-only\n * @param {boolean} props.disabled - Whether the widget is disabled\n * @param {object} props.options - Additional options for the widget\n * @param props.schema - The JSON schema for this field\n * @param {(value: any) => void} props.onChange - Callback for when the value changes\n * @param {string} props.label - The label for the range input\n * @param {string} props.id - The unique identifier for the widget\n * @returns {JSX.Element} The rendered range widget\n */\nexport default function RangeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n value,\n readonly,\n disabled,\n options,\n schema,\n onChange,\n label,\n id,\n}: WidgetProps<T, S, F>): JSX.Element {\n const _onChange = (value: number[]) => onChange(value[0]);\n\n const sliderProps = { value, label, id, ...rangeSpec<S>(schema) };\n const uiProps = { id, ..._pick((options.props as object) || {}, allowedProps) };\n return (\n <>\n <Slider\n disabled={disabled || readonly}\n min={sliderProps.min}\n max={sliderProps.max}\n step={sliderProps.step}\n value={[value as number]}\n onValueChange={_onChange}\n {...uiProps}\n aria-describedby={ariaDescribedByIds(id)}\n />\n {value}\n </>\n );\n}\n", "'use client';\n\nimport { Range, Root, Thumb, Track } from '@radix-ui/react-slider';\nimport { ComponentProps, useMemo } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A slider component for selecting a numeric value within a range\n *\n * @param props - The props for the Slider component\n * @param props.className - Additional CSS classes to apply to the slider\n * @param ref - The forwarded ref for the slider element\n * @returns A slider input element with track and thumb\n */\nfunction Slider({ className, defaultValue, value, min = 0, max = 100, ...props }: ComponentProps<typeof Root>) {\n const _values = useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n return (\n <Root\n data-slot='slider'\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <Track\n data-slot='slider-track'\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5',\n )}\n >\n <Range\n data-slot='slider-range'\n className={cn('bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full')}\n />\n </Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <Thumb\n data-slot='slider-thumb'\n key={index}\n className='border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50'\n />\n ))}\n </Root>\n );\n}\n\nexport { Slider };\n", "import {\n ariaDescribedByIds,\n enumOptionsIndexForValue,\n enumOptionsValueForIndex,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\n\nimport { FancyMultiSelect } from '../components/ui/fancy-multi-select';\nimport { FancySelect } from '../components/ui/fancy-select';\nimport { cn } from '../lib/utils';\n\n/** The `SelectWidget` is a widget for rendering dropdowns.\n * It is typically used with string properties constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function SelectWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n options,\n required,\n disabled,\n readonly,\n value,\n multiple,\n autofocus,\n onChange,\n onBlur,\n onFocus,\n defaultValue,\n placeholder,\n rawErrors = [],\n className,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, emptyValue: optEmptyValue } = options;\n\n const _onFancyFocus = () => {\n onFocus(id, enumOptionsValueForIndex<S>(value, enumOptions, optEmptyValue));\n };\n\n const _onFancyBlur = () => {\n onBlur(id, enumOptionsValueForIndex<S>(value, enumOptions, optEmptyValue));\n };\n\n const items = (enumOptions as any)?.map(({ value, label }: any, index: number) => ({\n value: multiple ? value : index.toString(),\n label: label,\n index,\n disabled: Array.isArray(enumDisabled) && enumDisabled.includes(value),\n }));\n\n const cnClassName = cn({ 'border-destructive': rawErrors.length > 0 }, className);\n\n return (\n <div className='p-0.5'>\n {!multiple ? (\n <FancySelect\n items={items}\n selected={enumOptionsIndexForValue<S>(value ?? defaultValue, enumOptions, false) as unknown as string}\n onValueChange={(selectedValue) => {\n onChange(enumOptionsValueForIndex<S>(selectedValue, enumOptions, optEmptyValue));\n }}\n autoFocus={autofocus}\n disabled={disabled || readonly}\n required={required}\n placeholder={placeholder}\n className={cnClassName}\n onFocus={_onFancyFocus}\n onBlur={_onFancyBlur}\n ariaDescribedby={ariaDescribedByIds(id)}\n />\n ) : (\n <FancyMultiSelect\n id={id}\n autoFocus={autofocus}\n disabled={disabled || readonly}\n multiple\n className={cnClassName}\n items={items}\n selected={value}\n onValueChange={(values) => {\n onChange(enumOptionsValueForIndex<S>(values, enumOptions, optEmptyValue));\n }}\n onFocus={_onFancyFocus}\n onBlur={_onFancyBlur}\n />\n )}\n </div>\n );\n}\n", "'use client';\n\nimport { Command as CommandPrimitive } from 'cmdk';\nimport isEqual from 'lodash/isEqual';\nimport { X } from 'lucide-react';\nimport {\n FocusEvent,\n FocusEventHandler,\n KeyboardEvent,\n ReactElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { cn } from '../../lib/utils';\nimport { Badge } from './badge';\nimport { Command, CommandGroup, CommandItem, CommandList } from './command';\n\n/**\n * Represents an item in the fancy multi-select dropdown\n */\nexport type FancySelectItem = {\n /** The value of the item */\n value: any;\n /** The display label for the item */\n label: string;\n /** The index position of the item */\n index: number;\n /** Whether the item is disabled */\n disabled?: boolean;\n};\n\n/**\n * Props interface for the FancyMultiSelect component\n */\ninterface FancyMultiSelectProps {\n /** Whether multiple items can be selected */\n multiple: boolean;\n /** Array of items to display in the dropdown */\n items?: FancySelectItem[];\n /** Array of selected item values */\n selected: string[];\n /** Callback function when value changes */\n onValueChange?: (value: number[]) => void;\n /** Whether the component should autofocus */\n autoFocus?: boolean;\n /** ID of the element that describes this select */\n ariaDescribedby?: string;\n /** Aria placeholder text */\n ariaPlaceholder?: string;\n /** Additional className for styling */\n className?: string;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Callback function for blur event */\n onBlur?: FocusEventHandler<HTMLDivElement>;\n /** Callback function for focus event */\n onFocus?: FocusEventHandler<HTMLDivElement>;\n /** Unique identifier for the component */\n id: string;\n}\n\n/**\n * A fancy multi-select component that allows users to select multiple items from a dropdown\n * @param props - The component props\n * @returns A React component that renders a searchable multi-select dropdown with tags\n */\nexport function FancyMultiSelect({\n multiple,\n items = [],\n selected,\n onValueChange,\n autoFocus = false,\n disabled = false,\n ariaDescribedby,\n ariaPlaceholder,\n onFocus,\n onBlur,\n className,\n id,\n}: Readonly<FancyMultiSelectProps>): ReactElement {\n const inputRef = useRef<HTMLInputElement>(null);\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n\n const selectedItems = useMemo(\n () => items.filter((item) => selected.some((selectedValue) => isEqual(item.value, selectedValue))),\n [items, selected],\n );\n\n const selectables = useMemo(\n () => items.filter((framework) => !selectedItems.some((item) => isEqual(item.value, framework.value))),\n [items, selectedItems],\n );\n\n const handleUnselect = useCallback(\n (framework: FancySelectItem) => {\n if (disabled) {\n return;\n }\n const newSelected = selectedItems.filter((s) => !isEqual(s.value, framework.value));\n onValueChange?.(newSelected.map((item) => item.index));\n },\n [selectedItems, onValueChange, disabled],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || !inputRef.current || inputRef.current.value !== '') {\n return;\n }\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n const newSelected = selectedItems.slice(0, -1);\n onValueChange?.(newSelected.map((item) => item.index));\n } else if (e.key === 'Escape') {\n inputRef.current.blur();\n }\n },\n [selectedItems, onValueChange, disabled],\n );\n\n const handleSelect = useCallback(\n (item: FancySelectItem) => {\n if (disabled) {\n return;\n }\n setInputValue('');\n const newSelected = multiple ? [...selectedItems, item] : [item];\n onValueChange?.(newSelected.map((item) => item.index));\n },\n [multiple, selectedItems, onValueChange, disabled],\n );\n\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLDivElement>) => {\n if (!disabled) {\n setOpen(true);\n }\n onFocus?.(e);\n },\n [disabled, onFocus],\n );\n\n return (\n <Command\n onKeyDown={handleKeyDown}\n className={cn('overflow-visible bg-transparent', className)}\n autoFocus={autoFocus}\n aria-disabled={disabled}\n onBlur={onBlur}\n onFocus={handleFocus}\n aria-describedby={ariaDescribedby}\n aria-placeholder={ariaPlaceholder}\n >\n <div\n className={cn(\n 'group border border-input px-3 py-2 text-sm ring-offset-background rounded-md focus-within:ring-1 focus-within:ring-ring focus-within:ring-offset-1',\n disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n <div className='flex gap-1 flex-wrap'>\n {selectedItems.map((item) => (\n <Badge key={item.value} variant='secondary'>\n {item.label}\n <button\n type='button'\n className='rtl:mr-1 ltr:ml-1 ring-offset-background rounded-full outline-none focus:ring-1 focus:ring-ring focus:ring-offset-1'\n onKeyDown={(e) => e.key === 'Enter' && !disabled && handleUnselect(item)}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(item)}\n disabled={disabled}\n >\n <X\n className={cn(\n 'h-3 w-3 text-muted-foreground hover:text-foreground',\n disabled && 'pointer-events-none',\n )}\n />\n </button>\n </Badge>\n ))}\n <CommandPrimitive.Input\n ref={inputRef}\n value={inputValue}\n onValueChange={setInputValue}\n onBlur={() => setOpen(false)}\n onFocus={() => !disabled && setOpen(true)}\n placeholder='Select ...'\n className='rtl:mr-2 ltr:ml-2 bg-transparent outline-none placeholder:text-muted-foreground flex-1'\n disabled={disabled}\n aria-controls={`command-item-input-${id}`}\n aria-labelledby={`command-item-input-${id}`}\n id={`command-item-input-${id}`}\n />\n </div>\n </div>\n {open && !disabled && selectables.length > 0 && (\n <div className='relative mt-2'>\n <div className='absolute w-full z-10 top-0 rounded-md border bg-popover text-popover-foreground shadow-md outline-none animate-in'>\n <CommandGroup className='h-full overflow-auto'>\n <CommandList>\n {selectables.map((item) => (\n <CommandItem\n disabled={item.disabled}\n key={`${item.value}-command-item`}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n aria-controls={`${item.value}-command-item`}\n aria-labelledby={`${item.value}-command-item`}\n id={`${item.value}-command-item`}\n onSelect={() => handleSelect(item)}\n className='cursor-pointer'\n >\n {item.label}\n </CommandItem>\n ))}\n </CommandList>\n </CommandGroup>\n </div>\n </div>\n )}\n </Command>\n );\n}\n", "import { cva, type VariantProps } from 'class-variance-authority';\nimport { ComponentProps } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Predefined badge variants using class-variance-authority\n * @see https://ui.shadcn.com/docs/components/badge\n */\nconst badgeVariants = cva(\n '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',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary: 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\n/**\n * A badge component that displays short status descriptors\n *\n * @param asChild - If true, renders the badge as a child component (useful for custom components)\n * @param props - The props for the Badge component\n * @param props.className - Additional CSS classes to apply to the badge\n * @param props.variant - The style variant of the badge: 'default' | 'secondary' | 'destructive' | 'outline'\n * @returns A div element that displays as a badge\n */\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: ComponentProps<'span'> & VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span';\n return <Comp data-slot='badge' className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n", "'use client';\n\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\nimport { ComponentProps, ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { cn } from '../../lib/utils';\n\n/**\n * The root Command component that provides command menu functionality\n * @see https://ui.shadcn.com/docs/components/command\n * @returns A command menu component\n */\n\nfunction Command({ className, ...props }: ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot='command'\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * A dialog wrapper for the Command component to display it in a modal\n *\n * @param title\n * @param description\n * @param className\n * @param showCloseButton\n * @param props - The props for the CommandDialog component\n * @param props.children - The content of the command dialog\n * @returns A dialog component containing the command menu\n */\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n ...props\n}: ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className='sr-only'>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className={cn('overflow-hidden p-0', className)} showCloseButton={showCloseButton}>\n <Command className='[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5'>\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\n/**\n * The search input field for the command menu\n *\n * @param props - The props for the CommandInput component\n * @param props.className - Additional CSS classes to apply\n * @returns A search input component for the command menu\n */\nconst CommandInput = forwardRef<\n ElementRef<typeof CommandPrimitive.Input>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className='flex items-center border-b px-3' {...{ 'cmdk-input-wrapper': '' }}>\n <Search className='mr-2 h-4 w-4 shrink-0 opacity-50' />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\n/**\n * Container for the list of command items\n *\n * @param props - The props for the CommandList component\n * @param props.className - Additional CSS classes to apply\n * @returns A container component for command items\n */\nfunction CommandList({ className, ...props }: ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot='command-list'\n className={cn('max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto', className)}\n {...props}\n />\n );\n}\n\n/**\n * Displayed when no results are found\n */\nfunction CommandEmpty({ ...props }: ComponentProps<typeof CommandPrimitive.Empty>) {\n return <CommandPrimitive.Empty data-slot='command-empty' className='py-6 text-center text-sm' {...props} />;\n}\n\n/**\n * Groups related command items together\n *\n * @param props - The props for the CommandGroup component\n * @param props.className - Additional CSS classes to apply\n * @returns A group container for related command items\n */\nfunction CommandGroup({ className, ...props }: ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot='command-group'\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Visual separator between command groups or items\n * @returns A separator component for the command menu\n */\nfunction CommandSeparator({ className, ...props }: ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot='command-separator'\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\n/**\n * Individual command item that can be selected\n *\n * @param props - The props for the CommandItem component\n * @param props.className - Additional CSS classes to apply\n * @returns A selectable command item component\n */\nfunction CommandItem({ className, ...props }: ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot='command-item'\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Displays keyboard shortcut hints for command items\n *\n * @param props - The props for the CommandShortcut component\n * @param props.className - Additional CSS classes to apply\n * @returns A component displaying keyboard shortcuts\n */\n\nfunction CommandShortcut({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot='command-shortcut'\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n", "'use client';\n\nimport { Close, Content, Description, Overlay, Portal, Root, Title, Trigger } from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport { ComponentProps } from 'react';\nimport { cn } from '../../lib/utils';\n\n/**\n * The root Dialog component that manages the state and accessibility of the dialog\n * @see https://ui.shadcn.com/docs/components/dialog\n * @returns A Dialog root component\n */\nfunction Dialog({ ...props }: ComponentProps<typeof Root>) {\n return <Root data-slot='dialog' {...props} />;\n}\n\n/**\n * The button that opens the dialog when clicked\n * @returns A button component that triggers the dialog\n */\nfunction DialogTrigger({ ...props }: ComponentProps<typeof Trigger>) {\n return <Trigger data-slot='dialog-trigger' {...props} />;\n}\n\n/**\n * Portal component that renders the dialog content in a portal\n * @returns A portal component for dialog content\n */\n\nfunction DialogPortal({ ...props }: ComponentProps<typeof Portal>) {\n return <Portal data-slot='dialog-portal' {...props} />;\n}\n\n/**\n * Button component for closing the dialog\n * @returns A close button component\n */\nfunction DialogClose({ ...props }: ComponentProps<typeof Close>) {\n return <Close data-slot='dialog-close' {...props} />;\n}\n\n/**\n * The overlay that covers the screen behind the dialog\n * @param props - Props for the overlay component including className and ref\n * @param props.className - Additional CSS classes to apply to the dialog overlay\n * @returns A semi-transparent overlay component\n */\nfunction DialogOverlay({ className, ...props }: ComponentProps<typeof Overlay>) {\n return (\n <Overlay\n data-slot='dialog-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * The main content container of the dialog\n * @param children - The content to be displayed inside the dialog\n * @param showCloseButton- Whether to show the close button in the dialog\n * @param props - Props for the content component including className, children and ref\n * @param props.className - Additional CSS classes to apply to the dialog content\n * @returns A dialog content container component\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: ComponentProps<typeof Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot='dialog-portal'>\n <DialogOverlay />\n <Content\n data-slot='dialog-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <Close\n data-slot='dialog-close'\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className='sr-only'>Close</span>\n </Close>\n )}\n </Content>\n </DialogPortal>\n );\n}\n\n/**\n * Container for the dialog header content\n * @param props - HTML div element attributes including className\n * @param props.className - Additional CSS classes to apply to the dialog header\n * @returns A header container component\n */\nfunction DialogHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='dialog-header'\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\n/**\n * Container for the dialog footer content\n * @param props - HTML div element attributes including className\n * @param props.className - Additional CSS classes to apply to the dialog footer\n * @returns A footer container component\n */\nfunction DialogFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='dialog-footer'\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n );\n}\n\n/**\n * The title component of the dialog\n * @param props - Props for the title component including className and ref\n * @param props.className - Additional CSS classes to apply to the dialog title\n * @returns A title component for the dialog\n */\nfunction DialogTitle({ className, ...props }: ComponentProps<typeof Title>) {\n return <Title data-slot='dialog-title' className={cn('text-lg leading-none font-semibold', className)} {...props} />;\n}\n\n/**\n * The description component of the dialog\n * @param props - Props for the description component including className and ref\n * @param props.className - Additional CSS classes to apply to the dialog description\n * @returns A description component for the dialog\n */\n\nfunction DialogDescription({ className, ...props }: ComponentProps<typeof Description>) {\n return (\n <Description data-slot='dialog-description' className={cn('text-muted-foreground text-sm', className)} {...props} />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n", "'use client';\n\nimport { Check, ChevronDown } from 'lucide-react';\nimport { FocusEvent, FocusEventHandler, ReactElement, useEffect, useRef, useState } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Command, CommandGroup, CommandItem, CommandList } from './command';\n\n/**\n * Represents an item in the fancy select dropdown\n */\nexport type FancySelectItem = {\n /** The value of the item */\n value: any;\n /** The display label for the item */\n label: string;\n /** The index position of the item */\n index: number;\n /** Whether the item is disabled */\n disabled?: boolean;\n};\n\n/**\n * Props interface for the FancySelect component\n */\ninterface FancySelectInterface {\n /** Array of items to display in the dropdown */\n items: FancySelectItem[] | undefined;\n /** Currently selected item value */\n selected: string;\n /** Callback function when value changes */\n onValueChange?: (value: any) => void;\n /** Whether the component should autofocus */\n autoFocus?: boolean;\n /** ID of the element that describes this select */\n ariaDescribedby?: string;\n /** Aria placeholder text */\n ariaPlaceholder?: string;\n /** Additional className for styling */\n className?: string;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Callback function for blur event */\n onBlur?: FocusEventHandler<HTMLDivElement> | undefined;\n /** Callback function for focus event */\n onFocus?: FocusEventHandler<HTMLDivElement> | undefined;\n /** Whether the field is required */\n required?: boolean;\n /** Placeholder text when no item is selected */\n placeholder?: string;\n}\n\n/**\n * A fancy select component that provides a styled dropdown with search functionality\n * @param props - The component props\n * @returns A React component that renders a searchable select dropdown\n */\nexport function FancySelect({\n items,\n selected,\n onValueChange,\n autoFocus = false,\n disabled = false,\n required = false,\n placeholder = 'Select...',\n ariaDescribedby,\n ariaPlaceholder,\n onFocus,\n onBlur,\n className,\n}: Readonly<FancySelectInterface>): ReactElement {\n const [open, setOpen] = useState(false);\n const selectedItem = items?.find((item) => item.value === selected);\n const selectedRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && selectedRef.current) {\n requestAnimationFrame(() => {\n selectedRef.current?.scrollIntoView({ block: 'nearest' });\n });\n }\n }, [open]);\n\n const handleBlur = (e: FocusEvent<HTMLDivElement>) => {\n if (containerRef.current && !containerRef.current.contains(e.relatedTarget as Node)) {\n setOpen(false);\n }\n onBlur?.(e);\n };\n\n return (\n <Command\n ref={containerRef}\n className={cn('overflow-visible bg-transparent', className)}\n autoFocus={autoFocus}\n aria-disabled={disabled}\n onBlur={handleBlur}\n onFocus={onFocus}\n aria-describedby={ariaDescribedby}\n aria-placeholder={ariaPlaceholder}\n >\n <div\n onClick={() => !disabled && setOpen(!open)}\n className={cn(\n 'flex h-9 w-full items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n !selectedItem && required && 'border-red-500',\n disabled && 'opacity-50 cursor-not-allowed',\n className,\n )}\n >\n <span className={cn('flex-1 line-clamp-1', !selectedItem && 'text-muted-foreground')}>\n {selectedItem?.label || placeholder}\n </span>\n <ChevronDown className='h-4 w-4 opacity-50' />\n </div>\n <div className='relative'>\n {open && items && items.length > 0 ? (\n <div\n style={{ top: '0.5rem' }}\n className='absolute w-full z-10 rounded-md border bg-popover text-popover-foreground shadow-md outline-none'\n >\n <CommandGroup className='h-full overflow-auto'>\n <CommandList>\n {items.map((item) => (\n <CommandItem\n ref={item.value === selected ? selectedRef : undefined}\n key={item.value}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => {\n if (!item.disabled) {\n onValueChange?.(item.value);\n setOpen(false);\n }\n }}\n className={cn(\n 'cursor-pointer relative flex items-center justify-between rounded-sm py-1.5 gap-2 rtl:flex-row-reverse',\n item.value === selected && 'font-semibold',\n item.disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n <span>{item.label}</span>\n <span className='flex h-3.5 w-3.5 items-center justify-center'>\n {item.value === selected && <Check className='h-4 w-4' />}\n </span>\n </CommandItem>\n ))}\n </CommandList>\n </CommandGroup>\n </div>\n ) : null}\n </div>\n </Command>\n );\n}\n", "import { ChangeEvent, FocusEvent } from 'react';\nimport { ariaDescribedByIds, FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';\n\nimport { Textarea } from '../components/ui/textarea';\n\ntype CustomWidgetProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> = WidgetProps<\n T,\n S,\n F\n> & {\n options: any;\n};\n\n/** The `TextareaWidget` is a widget for rendering input fields as textarea.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TextareaWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n placeholder,\n value,\n required,\n disabled,\n autofocus,\n readonly,\n onBlur,\n onFocus,\n onChange,\n options,\n className,\n}: CustomWidgetProps<T, S, F>) {\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLTextAreaElement>) =>\n onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target }: FocusEvent<HTMLTextAreaElement>) => onBlur(id, target && target.value);\n const _onFocus = ({ target }: FocusEvent<HTMLTextAreaElement>) => onFocus(id, target && target.value);\n\n return (\n <div className='flex p-0.5'>\n <Textarea\n id={id}\n name={htmlName || id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readonly}\n value={value ?? ''}\n required={required}\n autoFocus={autofocus}\n rows={options.rows || 5}\n onChange={_onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n className={className}\n />\n </div>\n );\n}\n", "import { TextareaHTMLAttributes, ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Props for the Textarea component\n * @extends TextareaHTMLAttributes<HTMLTextAreaElement> - HTML textarea element attributes\n */\nexport type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement>;\n\n/**\n * A textarea component with styling and focus states\n *\n * @param props - The props for the Textarea component\n * @param props.className - Additional CSS classes to apply to the textarea\n * @param ref - The forwarded ref for the textarea element\n * @returns A styled textarea element\n */\nfunction Textarea({ className, ...props }: ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot='textarea'\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n", "import { FormContextType, RegistryWidgetsType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport CheckboxWidget from '../CheckboxWidget/CheckboxWidget';\nimport CheckboxesWidget from '../CheckboxesWidget/CheckboxesWidget';\nimport RadioWidget from '../RadioWidget/RadioWidget';\nimport RangeWidget from '../RangeWidget/RangeWidget';\nimport SelectWidget from '../SelectWidget/SelectWidget';\nimport TextareaWidget from '../TextareaWidget/TextareaWidget';\n\nexport function generateWidgets<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): RegistryWidgetsType<T, S, F> {\n return {\n CheckboxWidget,\n CheckboxesWidget,\n RadioWidget,\n RangeWidget,\n SelectWidget,\n TextareaWidget,\n };\n}\n\nexport default generateWidgets();\n", "import { ThemeProps } from '@rjsf/core';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nimport { generateTemplates } from '../Templates';\nimport { generateWidgets } from '../Widgets';\n\nexport function generateTheme<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): ThemeProps<T, S, F> {\n return {\n templates: generateTemplates<T, S, F>(),\n widgets: generateWidgets<T, S, F>(),\n };\n}\n\nexport default generateTheme();\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import Form from './Form/Form';\n\nexport { default as Form, generateForm } from './Form';\nexport { default as Templates, generateTemplates } from './Templates';\nexport { default as Theme, generateTheme } from './Theme';\nexport { default as Widgets, generateWidgets } from './Widgets';\n\nexport default Form;\n", "import { ComponentType } from 'react';\n\nimport { FormProps, withTheme } from '@rjsf/core';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nimport { generateTheme } from '../Theme';\n\nexport function generateForm<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): ComponentType<FormProps<T, S, F>> {\n return withTheme<T, S, F>(generateTheme<T, S, F>());\n}\n\nexport default generateForm();\n", "import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport { PlusCircle } from 'lucide-react';\n\nimport { Button } from '../components/ui/button';\nimport { cn } from '../lib/utils';\n\n/**\n * A button component for adding new items in a form\n * @param uiSchema - The UI schema for the form, which can include custom properties\n * @param registry - The registry object containing the form's configuration and utilities\n * @param className - Allow custom class names to be passed for Tailwind CSS styling\n * @param props - The component properties\n */\nexport default function AddButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n uiSchema,\n registry,\n className,\n ...props\n}: IconButtonProps<T, S, F>) {\n const { translateString } = registry;\n return (\n <div className='p-0 m-0'>\n <Button {...props} className={cn('w-fit gap-2', className)} variant='outline' type='button'>\n <PlusCircle size={16} /> {translateString(TranslatableString.AddItemButton)}\n </Button>\n </div>\n );\n}\n", "import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Predefined button variants using class-variance-authority\n * @see https://ui.shadcn.com/docs/components/button\n */\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-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\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n xs: 'h-6 rounded-md gap-1 px-2 has-[>svg]:px-2',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\n/**\n * A button component with multiple style variants and sizes\n *\n * @param props - The props for the Button component\n * @param props.className - Additional CSS classes to apply to the button\n * @param props.variant - The style variant of the button: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'\n * @param props.size - The size variant of the button: 'default' | 'sm' | 'lg' | 'icon'\n * @param props.asChild - Whether to render the button as a child component\n * @param ref - The forwarded ref for the button element\n * @returns A button element with the specified styles and behavior\n */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n return <Comp data-slot='button' className={cn(buttonVariants({ variant, size, className }))} {...props} />;\n}\n\nexport { Button, buttonVariants };\n", "import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n", "import {\n ArrayFieldItemTemplateProps,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\n/** The `ArrayFieldItemTemplate` component is the template used to render an items of an array.\n *\n * @param props - The `ArrayFieldItemTemplateProps` props for the component\n */\nexport default function ArrayFieldItemTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ArrayFieldItemTemplateProps<T, S, F>) {\n const { children, buttonsProps, hasToolbar, uiSchema, registry } = props;\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const ArrayFieldItemButtonsTemplate = getTemplate<'ArrayFieldItemButtonsTemplate', T, S, F>(\n 'ArrayFieldItemButtonsTemplate',\n registry,\n uiOptions,\n );\n return (\n <div>\n <div className='mb-2 flex flex-row flex-wrap items-center'>\n <div className='grow shrink'>{children}</div>\n <div className='flex items-end justify-end p-0.5'>\n {hasToolbar && (\n <div className='flex gap-2'>\n <ArrayFieldItemButtonsTemplate {...buttonsProps} />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n", "import {\n ArrayFieldTemplateProps,\n buttonId,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\n/** The `ArrayFieldTemplate` component is the template used to render all items in an array.\n *\n * @param props - The `ArrayFieldTemplateProps` props for the component\n */\nexport default function ArrayFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: ArrayFieldTemplateProps<T, S, F>) {\n const {\n canAdd,\n disabled,\n fieldPathId,\n uiSchema,\n items,\n optionalDataControl,\n onAddClick,\n readonly,\n registry,\n required,\n schema,\n title,\n } = props;\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const ArrayFieldDescriptionTemplate = getTemplate<'ArrayFieldDescriptionTemplate', T, S, F>(\n 'ArrayFieldDescriptionTemplate',\n registry,\n uiOptions,\n );\n const ArrayFieldTitleTemplate = getTemplate<'ArrayFieldTitleTemplate', T, S, F>(\n 'ArrayFieldTitleTemplate',\n registry,\n uiOptions,\n );\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n return (\n <div>\n <div className='m-0 flex p-0'>\n <div className='m-0 w-full p-0'>\n <ArrayFieldTitleTemplate\n fieldPathId={fieldPathId}\n title={uiOptions.title || title}\n schema={schema}\n uiSchema={uiSchema}\n required={required}\n registry={registry}\n optionalDataControl={showOptionalDataControlInTitle ? optionalDataControl : undefined}\n />\n <ArrayFieldDescriptionTemplate\n fieldPathId={fieldPathId}\n description={uiOptions.description || schema.description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n <div key={`array-item-list-${fieldPathId.$id}`} className='p-0 m-0 w-full mb-2'>\n {!showOptionalDataControlInTitle ? optionalDataControl : undefined}\n {items}\n {canAdd && (\n <div className='mt-2 flex'>\n <AddButton\n id={buttonId(fieldPathId, 'add')}\n className='rjsf-array-item-add'\n onClick={onAddClick}\n disabled={disabled || readonly}\n uiSchema={uiSchema}\n registry={registry}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n", "import {\n ariaDescribedByIds,\n BaseInputTemplateProps,\n examplesId,\n FormContextType,\n getInputProps,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\nimport { ChangeEvent, FocusEvent } from 'react';\n\nimport { Input } from '../components/ui/input';\nimport { cn } from '../lib/utils';\n\n/** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.\n * It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n placeholder,\n required,\n readonly,\n disabled,\n type,\n value,\n onChange,\n onChangeOverride,\n onBlur,\n onFocus,\n autofocus,\n options,\n schema,\n rawErrors = [],\n children,\n extraProps,\n className,\n}: BaseInputTemplateProps<T, S, F>) {\n const inputProps = {\n ...extraProps,\n ...getInputProps<T, S, F>(schema, type, options),\n };\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLInputElement>) =>\n onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) => onBlur(id, target && target.value);\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) => onFocus(id, target && target.value);\n\n return (\n <div className='p-0.5'>\n <Input\n id={id}\n name={htmlName || id}\n type={type}\n placeholder={placeholder}\n autoFocus={autofocus}\n required={required}\n disabled={disabled}\n readOnly={readonly}\n className={cn({ 'border-destructive focus-visible:ring-0': rawErrors.length > 0 }, className)}\n list={schema.examples ? examplesId(id) : undefined}\n {...inputProps}\n value={value || value === 0 ? value : ''}\n onChange={onChangeOverride || _onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id, !!schema.examples)}\n />\n {children}\n {Array.isArray(schema.examples) ? (\n <datalist id={examplesId(id)}>\n {(schema.examples as string[])\n .concat(schema.default && !schema.examples.includes(schema.default) ? ([schema.default] as string[]) : [])\n .map((example: any) => {\n return <option key={example} value={example} />;\n })}\n </datalist>\n ) : null}\n </div>\n );\n}\n", "import { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * An input component with styling and focus states\n *\n * @param props - The props for the Input component\n * @param props.className - Additional CSS classes to apply to the input\n * @param props.type - The type of the input element\n * @param ref - The forwarded ref for the input element\n * @returns An input element with the specified styles and behavior\n */\nfunction Input({ className, type, ...props }: ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot='input'\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n", "import { DescriptionFieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { RichDescription } from '@rjsf/core';\n\n/** The `DescriptionField` is the template to use to render the description of a field\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function DescriptionField<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({ id, description, registry, uiSchema }: DescriptionFieldProps<T, S, F>) {\n if (!description) {\n return null;\n }\n\n return (\n <div>\n <div id={id} className='text-sm text-muted-foreground'>\n <RichDescription description={description} registry={registry} uiSchema={uiSchema} />\n </div>\n </div>\n );\n}\n", "import { ErrorListProps, FormContextType, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport { AlertCircle } from 'lucide-react';\n\nimport { Alert, AlertDescription, AlertTitle } from '../components/ui/alert';\n\n/** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`\n *\n * @param props - The `ErrorListProps` for this component\n */\nexport default function ErrorList<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n errors,\n registry,\n}: ErrorListProps<T, S, F>) {\n const { translateString } = registry;\n return (\n <Alert variant='destructive' className='mb-2'>\n <AlertCircle className='h-4 w-4' />\n <AlertTitle>{translateString(TranslatableString.ErrorsLabel)}</AlertTitle>\n <AlertDescription className='flex flex-col gap-1'>\n {errors.map((error, i: number) => {\n return <span key={i}>&#x2022; {error.stack}</span>;\n })}\n </AlertDescription>\n </Alert>\n );\n}\n", "import { cva, type VariantProps } from 'class-variance-authority';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\nconst alertVariants = cva(\n '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',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\n/** A component that displays a brief, important message in a way that attracts the user's attention without interrupting their task.\n *\n * @param props - Component props\n * @param props.variant - 'default' | 'destructive' - Style variant of the alert\n * @param props.className - Additional CSS classes\n * @returns A div element that serves as an alert component\n */\nfunction Alert({ className, variant, ...props }: ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return <div data-slot='alert' role='alert' className={cn(alertVariants({ variant }), className)} {...props} />;\n}\n\n/** Represents the title content of an Alert component.\n *\n * @param props - Component props\n * @param props.className - Additional CSS classes\n * @returns A heading element for the alert title\n */\nfunction AlertTitle({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-title'\n className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\n/** Represents the description content of an Alert component.\n *\n * @param props - Component props\n * @param props.className - Additional CSS classes\n * @returns A div element containing the alert description\n */\nfunction AlertDescription({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='alert-description'\n className={cn(\n 'text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle };\n", "import { FieldErrorProps, FormContextType, RJSFSchema, StrictRJSFSchema, errorId } from '@rjsf/utils';\n\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: FieldErrorProps<T, S, F>) {\n const { errors = [], fieldPathId } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(fieldPathId);\n\n return (\n <div className='flex flex-col gap-1' id={id}>\n {errors.map((error, i: number) => {\n return (\n <span className={'text-xs font-medium text-destructive mb-1'} key={i}>\n {error}\n </span>\n );\n })}\n </div>\n );\n}\n", "import { FieldHelpProps, FormContextType, RJSFSchema, StrictRJSFSchema, helpId } from '@rjsf/utils';\n\nimport { cn } from '../lib/utils';\n\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: FieldHelpProps<T, S, F>) {\n const { fieldPathId, help, hasErrors } = props;\n if (!help) {\n return null;\n }\n const id = helpId(fieldPathId);\n return (\n <span className={cn('text-xs font-medium text-muted-foreground', { ' text-destructive': hasErrors })} id={id}>\n {help}\n </span>\n );\n}\n", "import {\n FieldTemplateProps,\n FormContextType,\n getTemplate,\n getUiOptions,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\n\nimport { cn } from '../lib/utils';\n\n/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field\n * content, (label, description, children, errors and help) inside a `WrapIfAdditional` component.\n *\n * @param props - The `FieldTemplateProps` for this component\n */\nexport default function FieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n children,\n displayLabel,\n rawErrors = [],\n errors,\n help,\n description,\n rawDescription,\n classNames,\n style,\n disabled,\n label,\n hidden,\n onKeyRename,\n onKeyRenameBlur,\n onRemoveProperty,\n readonly,\n required,\n schema,\n uiSchema,\n registry,\n}: FieldTemplateProps<T, S, F>) {\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate<'WrapIfAdditionalTemplate', T, S, F>(\n 'WrapIfAdditionalTemplate',\n registry,\n uiOptions,\n );\n if (hidden) {\n return <div className='hidden'>{children}</div>;\n }\n const isCheckbox = uiOptions.widget === 'checkbox';\n return (\n <WrapIfAdditionalTemplate\n classNames={classNames}\n style={style}\n disabled={disabled}\n id={id}\n label={label}\n onKeyRename={onKeyRename}\n onKeyRenameBlur={onKeyRenameBlur}\n onRemoveProperty={onRemoveProperty}\n readonly={readonly}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n >\n <div className='flex flex-col gap-2'>\n {displayLabel && !isCheckbox && (\n <label\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n { ' text-destructive': rawErrors.length > 0 },\n )}\n htmlFor={id}\n >\n {label}\n {required ? '*' : null}\n </label>\n )}\n {children}\n {displayLabel && rawDescription && !isCheckbox && (\n <span\n className={cn('text-xs font-medium text-muted-foreground', { ' text-destructive': rawErrors.length > 0 })}\n >\n {description}\n </span>\n )}\n {errors}\n {help}\n </div>\n </WrapIfAdditionalTemplate>\n );\n}\n", "import { GridTemplateProps } from '@rjsf/utils';\nimport { cn } from '../lib/utils';\n\n/** Renders a `GridTemplate` for mui, which is expecting the column sizing information coming in via the\n * extra props provided by the caller, which are spread directly on the `Grid2`.\n *\n * @param props - The GridTemplateProps, including the extra props containing the mui grid positioning details\n */\nexport default function GridTemplate(props: GridTemplateProps) {\n const { children, column, className, ...rest } = props;\n return (\n <div className={cn('grid gap-2', className)} {...rest}>\n {children}\n </div>\n );\n}\n", "import { FormContextType, IconButtonProps, RJSFSchema, StrictRJSFSchema, TranslatableString } from '@rjsf/utils';\nimport { ChevronDown, ChevronUp, Copy, Trash2 } from 'lucide-react';\nimport type { VariantProps } from 'class-variance-authority';\n\nimport { Button, buttonVariants } from '../components/ui/button';\n\nexport type ShadIconButtonProps<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n> = IconButtonProps<T, S, F> & VariantProps<typeof buttonVariants>;\n\n/** Base button component that renders a Shadcn button with an icon for RJSF form actions.\n * This component serves as the foundation for other specialized buttons used in array operations.\n * It combines RJSF's IconButtonProps with Shadcn's ButtonProps to provide a consistent styling\n * and behavior across the form.\n *\n * @param props - The combined props from RJSF IconButtonProps and Shadcn ButtonProps, including icon and event handlers\n */\nexport default function IconButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const { icon, iconType, className, uiSchema, registry, ...otherProps } = props;\n return (\n <Button size='icon' variant='outline' className={className} {...otherProps} type='button'>\n {icon}\n </Button>\n );\n}\n\n/** Renders a copy button for RJSF array fields that allows users to duplicate array items.\n * The button includes a copy icon and uses the RJSF translation system for the tooltip text.\n * This is used within ArrayField to provide item duplication functionality.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function CopyButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton title={translateString(TranslatableString.CopyButton)} {...props} icon={<Copy className='h-4 w-4' />} />\n );\n}\n\n/** Renders a move down button for RJSF array fields that allows reordering of array items.\n * The button includes a chevron-down icon and uses the RJSF translation system for the tooltip text.\n * This is used within ArrayField to allow moving items to a lower index in the array.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function MoveDownButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.MoveDownButton)}\n {...props}\n icon={<ChevronDown className='h-4 w-4' />}\n />\n );\n}\n\n/** Renders a move up button for RJSF array fields that allows reordering of array items.\n * The button includes a chevron-up icon and uses the RJSF translation system for the tooltip text.\n * This is used within ArrayField to allow moving items to a higher index in the array.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function MoveUpButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.MoveUpButton)}\n {...props}\n icon={<ChevronUp className='h-4 w-4' />}\n />\n );\n}\n\n/** Renders a remove button for RJSF array fields that allows deletion of array items.\n * The button includes a trash icon and uses the RJSF translation system for the tooltip text.\n * It has special styling with destructive colors to indicate its dangerous action.\n * This is used within ArrayField to provide item removal functionality.\n *\n * @param props - The RJSF icon button properties, including registry for translations and event handlers\n */\nexport function RemoveButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: ShadIconButtonProps<T, S, F>,\n) {\n const {\n registry: { translateString },\n } = props;\n return (\n <IconButton\n title={translateString(TranslatableString.RemoveButton)}\n {...props}\n className={'border-destructive'}\n icon={<Trash2 className='h-4 w-4 stroke-destructive' />}\n />\n );\n}\n", "import { FormContextType, MultiSchemaFieldTemplateProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { cn } from '../lib/utils';\n\nexport default function MultiSchemaFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({ selector, optionSchemaField }: MultiSchemaFieldTemplateProps<T, S, F>) {\n return (\n <div className={cn('p-4 border rounded-md bg-background shadow-sm')}>\n <div className={cn('mb-4')}>{selector}</div>\n {optionSchemaField}\n </div>\n );\n}\n", "import {\n buttonId,\n canExpand,\n descriptionId,\n FormContextType,\n getTemplate,\n getUiOptions,\n ObjectFieldTemplateProps,\n RJSFSchema,\n StrictRJSFSchema,\n titleId,\n} from '@rjsf/utils';\n\n/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the\n * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all\n * the properties.\n *\n * @param props - The `ObjectFieldTemplateProps` for this component\n */\nexport default function ObjectFieldTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n description,\n title,\n properties,\n required,\n uiSchema,\n fieldPathId,\n schema,\n formData,\n optionalDataControl,\n onAddProperty,\n disabled,\n readonly,\n registry,\n}: ObjectFieldTemplateProps<T, S, F>) {\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n const TitleFieldTemplate = getTemplate<'TitleFieldTemplate', T, S, F>('TitleFieldTemplate', registry, uiOptions);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n uiOptions,\n );\n const showOptionalDataControlInTitle = !readonly && !disabled;\n // Button templates are not overridden in the uiSchema\n const {\n ButtonTemplates: { AddButton },\n } = registry.templates;\n return (\n <>\n {title && (\n <TitleFieldTemplate\n id={titleId(fieldPathId)}\n title={title}\n required={required}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n optionalDataControl={showOptionalDataControlInTitle ? optionalDataControl : undefined}\n />\n )}\n {description && (\n <DescriptionFieldTemplate\n id={descriptionId(fieldPathId)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n <div className='flex flex-col gap-2'>\n {!showOptionalDataControlInTitle ? optionalDataControl : undefined}\n {properties.map((element: any, index: number) => (\n <div key={index} className={`${element.hidden ? 'hidden' : ''} flex`}>\n <div className='w-full'>{element.content}</div>\n </div>\n ))}\n {canExpand(schema, uiSchema, formData) ? (\n <AddButton\n id={buttonId(fieldPathId, 'add')}\n onClick={onAddProperty}\n disabled={disabled || readonly}\n className='rjsf-object-property-expand'\n uiSchema={uiSchema}\n registry={registry}\n />\n ) : null}\n </div>\n </>\n );\n}\n", "import { FormContextType, OptionalDataControlsTemplateProps, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { PlusCircle } from 'lucide-react';\n\nimport IconButton, { RemoveButton } from '../IconButton';\n\n/** The OptionalDataControlsTemplate renders one of three different states. If\n * there is an `onAddClick()` function, it renders the \"Add\" button. If there is\n * an `onRemoveClick()` function, it renders the \"Remove\" button. Otherwise it\n * renders the \"No data found\" section. All of them use the `label` as either\n * the `title` of buttons or simply outputting it.\n *\n * @param props - The `OptionalDataControlsTemplateProps` for the template\n */\nexport default function OptionalDataControlsTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: OptionalDataControlsTemplateProps<T, S, F>) {\n const { id, registry, label, onAddClick, onRemoveClick } = props;\n if (onAddClick) {\n return (\n <IconButton\n id={id}\n registry={registry}\n className='rjsf-add-optional-data'\n onClick={onAddClick}\n title={label}\n icon={<PlusCircle />}\n size='xs'\n />\n );\n } else if (onRemoveClick) {\n return (\n <RemoveButton\n id={id}\n registry={registry}\n className='rjsf-remove-optional-data'\n onClick={onRemoveClick}\n title={label}\n size='xs'\n />\n );\n }\n return <em id={id}>{label}</em>;\n}\n", "import { FormContextType, getSubmitButtonOptions, RJSFSchema, StrictRJSFSchema, SubmitButtonProps } from '@rjsf/utils';\n\nimport { Button } from '../components/ui/button';\nimport { cn } from '../lib/utils';\n\n/** The `SubmitButton` renders a button that represent the `Submit` action on a form\n */\nexport default function SubmitButton<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n props: SubmitButtonProps<T, S, F>,\n) {\n const { submitText, norender, props: submitButtonProps } = getSubmitButtonOptions<T, S, F>(props.uiSchema);\n if (norender) {\n return null;\n }\n return (\n <div>\n <Button type='submit' {...submitButtonProps} className={cn('my-2', submitButtonProps?.className)}>\n {submitText}\n </Button>\n </div>\n );\n}\n", "import { FormContextType, getUiOptions, RJSFSchema, StrictRJSFSchema, TitleFieldProps } from '@rjsf/utils';\n\nimport { Separator } from '../components/ui/separator';\n\n/** The `TitleField` is the template to use to render the title of a field\n *\n * @param props - The `TitleFieldProps` for this component\n */\nexport default function TitleField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n id,\n title,\n uiSchema,\n optionalDataControl,\n}: TitleFieldProps<T, S, F>) {\n const uiOptions = getUiOptions<T, S, F>(uiSchema);\n let heading = <h5>{uiOptions.title || title}</h5>;\n if (optionalDataControl) {\n heading = (\n <div className='flex flex-row'>\n <div className='flex-grow'>{heading}</div>\n <div className='flex'>{optionalDataControl}</div>\n </div>\n );\n }\n return (\n <div id={id} className='my-1 flex flex-col gap-0.5'>\n {heading}\n <Separator dir='horizontal' style={{ height: '1px' }} className='my-1' />\n </div>\n );\n}\n", "'use client';\n\nimport { Root } from '@radix-ui/react-separator';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A separator component for visually dividing content\n *\n * @param props - The props for the Separator component\n * @param props.className - Additional CSS classes to apply to the separator\n * @param props.orientation - The orientation of the separator ('horizontal' | 'vertical')\n * @param props.decorative - Whether the separator is decorative or semantic\n * @param ref - The forwarded ref for the separator element\n * @returns A styled separator element\n */\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: ComponentProps<typeof Root>) {\n return (\n <Root\n data-slot='separator'\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n", "import {\n ADDITIONAL_PROPERTY_FLAG,\n buttonId,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n TranslatableString,\n WrapIfAdditionalTemplateProps,\n} from '@rjsf/utils';\n\nimport { Input } from '../components/ui/input';\nimport { Separator } from '../components/ui/separator';\n\n/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are\n * part of an `additionalProperties` part of a schema.\n *\n * @param props - The `WrapIfAdditionalProps` for this component\n */\nexport default function WrapIfAdditionalTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n classNames,\n style,\n children,\n disabled,\n id,\n label,\n onRemoveProperty,\n onKeyRenameBlur,\n readonly,\n required,\n schema,\n uiSchema,\n registry,\n}: WrapIfAdditionalTemplateProps<T, S, F>) {\n const { templates, translateString } = registry;\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n\n if (!additional) {\n return (\n <div className={classNames} style={style}>\n {children}\n </div>\n );\n }\n\n const keyId = `${id}-key`;\n\n return (\n <>\n <div className={`flex flex-row items-center gap-2 relative w-full ${classNames}`} style={style}>\n <div className='flex flex-col w-full gap-2 line-clamp-1'>\n <div className='flex-grow'>\n <label htmlFor={keyId} className='pt-2 text-sm font-medium text-muted-foreground mb-4 line-clamp-1'>\n {keyLabel}\n </label>\n <div className='pl-0.5'>\n <Input\n required={required}\n defaultValue={label}\n disabled={disabled || readonly}\n id={keyId}\n name={keyId}\n onBlur={!readonly ? onKeyRenameBlur : undefined}\n type='text'\n className='mt-1 w-full border shadow-sm'\n />\n </div>\n </div>\n <div className='flex-grow pr-0.5'>{children}</div>\n </div>\n\n <RemoveButton\n id={buttonId(id, 'remove')}\n iconType='block'\n className='rjsf-object-property-remove w-full'\n disabled={disabled || readonly}\n onClick={onRemoveProperty}\n uiSchema={uiSchema}\n registry={registry}\n />\n </div>\n <Separator dir='horizontal' className='mt-2' />\n </>\n );\n}\n", "import { FormContextType, RJSFSchema, StrictRJSFSchema, TemplatesType } from '@rjsf/utils';\nimport AddButton from '../AddButton';\nimport ArrayFieldItemTemplate from '../ArrayFieldItemTemplate';\nimport ArrayFieldTemplate from '../ArrayFieldTemplate';\nimport BaseInputTemplate from '../BaseInputTemplate/BaseInputTemplate';\nimport DescriptionField from '../DescriptionField';\nimport ErrorList from '../ErrorList';\nimport FieldErrorTemplate from '../FieldErrorTemplate';\nimport FieldHelpTemplate from '../FieldHelpTemplate';\nimport FieldTemplate from '../FieldTemplate';\nimport GridTemplate from '../GridTemplate';\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } from '../IconButton';\nimport MultiSchemaFieldTemplate from '../MultiSchemaFieldTemplate';\nimport ObjectFieldTemplate from '../ObjectFieldTemplate';\nimport OptionalDataControlsTemplate from '../OptionalDataControlsTemplate';\nimport SubmitButton from '../SubmitButton';\nimport TitleField from '../TitleField';\nimport WrapIfAdditionalTemplate from '../WrapIfAdditionalTemplate';\n\nexport function generateTemplates<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): Partial<TemplatesType<T, S, F>> {\n return {\n ArrayFieldItemTemplate,\n ArrayFieldTemplate,\n BaseInputTemplate,\n ButtonTemplates: {\n AddButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n SubmitButton,\n },\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FieldErrorTemplate,\n FieldHelpTemplate,\n FieldTemplate,\n GridTemplate,\n MultiSchemaFieldTemplate,\n ObjectFieldTemplate,\n OptionalDataControlsTemplate,\n TitleFieldTemplate: TitleField,\n WrapIfAdditionalTemplate,\n };\n}\n\nexport default generateTemplates();\n", "import {\n ariaDescribedByIds,\n descriptionId,\n FormContextType,\n getTemplate,\n labelValue,\n RJSFSchema,\n schemaRequiresTrueValue,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\nimport { Checkbox } from '../components/ui/checkbox';\nimport { Label } from '../components/ui/label';\n\n/** The `CheckBoxWidget` is a widget for rendering boolean properties.\n * It is typically used to represent a boolean.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function CheckboxWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: WidgetProps<T, S, F>) {\n const {\n id,\n htmlName,\n value,\n disabled,\n readonly,\n label,\n hideLabel,\n schema,\n autofocus,\n options,\n onChange,\n onBlur,\n onFocus,\n registry,\n uiSchema,\n className,\n } = props;\n // Because an unchecked checkbox will cause html5 validation to fail, only add\n // the \"required\" attribute if the field value must be \"true\", due to the\n // \"const\" or \"enum\" keywords\n const required = schemaRequiresTrueValue<S>(schema);\n const DescriptionFieldTemplate = getTemplate<'DescriptionFieldTemplate', T, S, F>(\n 'DescriptionFieldTemplate',\n registry,\n options,\n );\n\n const _onChange = (checked: boolean) => onChange(checked);\n const _onBlur = () => onBlur(id, value);\n const _onFocus = () => onFocus(id, value);\n\n const description = options.description || schema.description;\n return (\n <div\n className={`relative ${disabled || readonly ? 'cursor-not-allowed opacity-50' : ''}`}\n aria-describedby={ariaDescribedByIds(id)}\n >\n {!hideLabel && description && (\n <DescriptionFieldTemplate\n id={descriptionId(id)}\n description={description}\n schema={schema}\n uiSchema={uiSchema}\n registry={registry}\n />\n )}\n <div className='flex items-center gap-2 my-2'>\n <Checkbox\n id={id}\n name={htmlName || id}\n checked={typeof value === 'undefined' ? false : Boolean(value)}\n required={required}\n disabled={disabled || readonly}\n autoFocus={autofocus}\n onCheckedChange={_onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n className={className}\n />\n <Label className='leading-tight' htmlFor={id}>\n {labelValue(label, hideLabel || !label)}\n </Label>\n </div>\n </div>\n );\n}\n", "'use client';\n\nimport { Indicator, Root } from '@radix-ui/react-checkbox';\nimport { CheckIcon } from '@radix-ui/react-icons';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A checkbox component built on top of Radix UI Checkbox primitive\n * Renders an interactive checkbox that can be either checked or unchecked\n * @see https://ui.shadcn.com/docs/components/checkbox\n *\n * @param props - Props extending Radix UI Checkbox primitive props\n * @param props.className - Additional CSS classes to apply to the checkbox\n * @param ref - Forward ref to access the underlying checkbox element\n */\nfunction Checkbox({ className, ...props }: ComponentProps<typeof Root>) {\n return (\n <Root\n data-slot='checkbox'\n className={cn(\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <Indicator\n data-slot='checkbox-indicator'\n className='flex items-center justify-center text-current transition-none'\n >\n <CheckIcon className='size-3.5' />\n </Indicator>\n </Root>\n );\n}\n\nexport { Checkbox };\n", "'use client';\n\nimport { Root } from '@radix-ui/react-label';\nimport { ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A label component with styling variants\n *\n * @param props - The props for the Label component\n * @param props.className - Additional CSS classes to apply to the label\n * @param ref - The forwarded ref for the label element\n * @returns A styled label element\n */\nfunction Label({ className, ...props }: ComponentProps<typeof Root>) {\n return (\n <Root\n data-slot='label'\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n", "import {\n ariaDescribedByIds,\n enumOptionsDeselectValue,\n enumOptionsIsSelected,\n enumOptionsSelectValue,\n enumOptionsValueForIndex,\n FormContextType,\n optionId,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\nimport { FocusEvent } from 'react';\n\nimport { Checkbox } from '../components/ui/checkbox';\nimport { Label } from '../components/ui/label';\nimport { cn } from '../lib/utils';\n\n/** The `CheckboxesWidget` is a widget for rendering checkbox groups.\n * It is typically used to represent an array of enums.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function CheckboxesWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n disabled,\n options,\n value,\n autofocus,\n readonly,\n required,\n onChange,\n onBlur,\n onFocus,\n className,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, inline, emptyValue } = options;\n const checkboxesValues = Array.isArray(value) ? value : [value];\n\n const _onBlur = ({ target }: FocusEvent<HTMLButtonElement>) =>\n onBlur(id, enumOptionsValueForIndex<S>(target && (target as any).value, enumOptions, emptyValue));\n const _onFocus = ({ target }: FocusEvent<HTMLButtonElement>) =>\n onFocus(id, enumOptionsValueForIndex<S>(target && (target as any).value, enumOptions, emptyValue));\n\n return (\n <div className={cn({ 'flex flex-col gap-2': !inline, 'flex flex-row gap-4 flex-wrap': inline })}>\n {Array.isArray(enumOptions) &&\n enumOptions.map((option, index: number) => {\n const checked = enumOptionsIsSelected<S>(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const indexOptionId = optionId(id, index);\n\n return (\n <div className='flex items-center gap-2' key={indexOptionId}>\n <Checkbox\n id={indexOptionId}\n name={htmlName || id}\n required={required}\n disabled={disabled || itemDisabled || readonly}\n onCheckedChange={(state) => {\n if (state) {\n onChange(enumOptionsSelectValue<S>(index, checkboxesValues, enumOptions));\n } else {\n onChange(enumOptionsDeselectValue<S>(index, checkboxesValues, enumOptions));\n }\n }}\n className={className}\n checked={checked}\n autoFocus={autofocus && index === 0}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n />\n <Label className='leading-tight' htmlFor={optionId(id, index)}>\n {option.label}\n </Label>\n </div>\n );\n })}\n </div>\n );\n}\n", "import {\n ariaDescribedByIds,\n enumOptionsIsSelected,\n enumOptionsValueForIndex,\n FormContextType,\n optionId,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\nimport { FocusEvent } from 'react';\n\nimport { Label } from '../components/ui/label';\nimport { RadioGroup, RadioGroupItem } from '../components/ui/radio-group';\nimport { cn } from '../lib/utils';\n\n/** The `RadioWidget` is a widget for rendering a radio group.\n * It is typically used with a string property constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RadioWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n id,\n options,\n value,\n required,\n disabled,\n readonly,\n onChange,\n onBlur,\n onFocus,\n className,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, emptyValue } = options;\n\n const _onChange = (value: string) => onChange(enumOptionsValueForIndex<S>(value, enumOptions, emptyValue));\n const _onBlur = ({ target }: FocusEvent<HTMLInputElement>) =>\n onBlur(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n const _onFocus = ({ target }: FocusEvent<HTMLInputElement>) =>\n onFocus(id, enumOptionsValueForIndex<S>(target && target.value, enumOptions, emptyValue));\n\n const inline = Boolean(options && options.inline);\n\n return (\n <div className='mb-0'>\n <RadioGroup\n defaultValue={value?.toString()}\n required={required}\n disabled={disabled || readonly}\n onValueChange={(e: string) => {\n _onChange(e);\n }}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n orientation={inline ? 'horizontal' : 'vertical'}\n className={cn('flex flex-wrap', { 'flex-col': !inline }, className)}\n >\n {Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const checked = enumOptionsIsSelected<S>(option.value, value);\n return (\n <div className='flex items-center gap-2' key={optionId(id, index)}>\n <RadioGroupItem\n checked={checked}\n value={index.toString()}\n id={optionId(id, index)}\n disabled={itemDisabled}\n />\n <Label className='leading-tight' htmlFor={optionId(id, index)}>\n {option.label}\n </Label>\n </div>\n );\n })}\n </RadioGroup>\n </div>\n );\n}\n", "'use client';\n\nimport { Root, Indicator, Item } from '@radix-ui/react-radio-group';\nimport { ComponentProps } from 'react';\nimport { CircleIcon } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A radio group component for selecting a single option from a list\n *\n * @param props - The props for the RadioGroup component\n * @param props.className - Additional CSS classes to apply to the radio group\n * @param ref - The forwarded ref for the radio group element\n * @returns A radio group container element\n */\nfunction RadioGroup({ className, ...props }: ComponentProps<typeof Root>) {\n return <Root data-slot='radio-group' className={cn('grid gap-3', className)} {...props} />;\n}\n\n/**\n * An individual radio item within a RadioGroup\n *\n * @param props - The props for the RadioGroupItem component\n * @param props.className - Additional CSS classes to apply to the radio item\n * @param ref - The forwarded ref for the radio item element\n * @returns A styled radio input element\n */\nfunction RadioGroupItem({ className, ...props }: ComponentProps<typeof Item>) {\n return (\n <Item\n data-slot='radio-group-item'\n className={cn(\n 'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <Indicator data-slot='radio-group-indicator' className='relative flex items-center justify-center'>\n <CircleIcon className='fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2' />\n </Indicator>\n </Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n", "import { ariaDescribedByIds, FormContextType, rangeSpec, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\n\nimport { Slider } from '../components/ui/slider';\n\nconst allowedProps = [\n 'name',\n 'min',\n 'max',\n 'step',\n 'orientation',\n 'disabled',\n 'defaultValue',\n 'value',\n 'onValueChange',\n 'className',\n 'dir',\n 'inverted',\n 'minStepsBetweenThumbs',\n];\n\n/**\n * A range widget component that renders a slider for number input\n * @param {object} props - The widget properties\n * @param {number} props.value - The current value of the range\n * @param {boolean} props.readonly - Whether the widget is read-only\n * @param {boolean} props.disabled - Whether the widget is disabled\n * @param {object} props.options - Additional options for the widget\n * @param props.schema - The JSON schema for this field\n * @param {(value: any) => void} props.onChange - Callback for when the value changes\n * @param {string} props.label - The label for the range input\n * @param {string} props.id - The unique identifier for the widget\n * @returns {JSX.Element} The rendered range widget\n */\nexport default function RangeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({\n value,\n readonly,\n disabled,\n options,\n schema,\n onChange,\n label,\n id,\n}: WidgetProps<T, S, F>): JSX.Element {\n const _onChange = (value: number[]) => onChange(value[0]);\n\n const sliderProps = { value, label, id, ...rangeSpec<S>(schema) };\n const uiProps = { id, ..._pick((options.props as object) || {}, allowedProps) };\n return (\n <>\n <Slider\n disabled={disabled || readonly}\n min={sliderProps.min}\n max={sliderProps.max}\n step={sliderProps.step}\n value={[value as number]}\n onValueChange={_onChange}\n {...uiProps}\n aria-describedby={ariaDescribedByIds(id)}\n />\n {value}\n </>\n );\n}\n", "'use client';\n\nimport { Range, Root, Thumb, Track } from '@radix-ui/react-slider';\nimport { ComponentProps, useMemo } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * A slider component for selecting a numeric value within a range\n *\n * @param props - The props for the Slider component\n * @param props.className - Additional CSS classes to apply to the slider\n * @param ref - The forwarded ref for the slider element\n * @returns A slider input element with track and thumb\n */\nfunction Slider({ className, defaultValue, value, min = 0, max = 100, ...props }: ComponentProps<typeof Root>) {\n const _values = useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n return (\n <Root\n data-slot='slider'\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}\n >\n <Track\n data-slot='slider-track'\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5',\n )}\n >\n <Range\n data-slot='slider-range'\n className={cn('bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full')}\n />\n </Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <Thumb\n data-slot='slider-thumb'\n key={index}\n className='border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50'\n />\n ))}\n </Root>\n );\n}\n\nexport { Slider };\n", "import {\n ariaDescribedByIds,\n enumOptionsIndexForValue,\n enumOptionsValueForIndex,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n WidgetProps,\n} from '@rjsf/utils';\n\nimport { FancyMultiSelect } from '../components/ui/fancy-multi-select';\nimport { FancySelect } from '../components/ui/fancy-select';\nimport { cn } from '../lib/utils';\n\n/** The `SelectWidget` is a widget for rendering dropdowns.\n * It is typically used with string properties constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function SelectWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n options,\n required,\n disabled,\n readonly,\n value,\n multiple,\n autofocus,\n onChange,\n onBlur,\n onFocus,\n defaultValue,\n placeholder,\n rawErrors = [],\n className,\n}: WidgetProps<T, S, F>) {\n const { enumOptions, enumDisabled, emptyValue: optEmptyValue } = options;\n\n const _onFancyFocus = () => {\n onFocus(id, enumOptionsValueForIndex<S>(value, enumOptions, optEmptyValue));\n };\n\n const _onFancyBlur = () => {\n onBlur(id, enumOptionsValueForIndex<S>(value, enumOptions, optEmptyValue));\n };\n\n const items = (enumOptions as any)?.map(({ value, label }: any, index: number) => ({\n value: multiple ? value : index.toString(),\n label: label,\n index,\n disabled: Array.isArray(enumDisabled) && enumDisabled.includes(value),\n }));\n\n const cnClassName = cn({ 'border-destructive': rawErrors.length > 0 }, className);\n\n return (\n <div className='p-0.5'>\n {!multiple ? (\n <FancySelect\n items={items}\n selected={enumOptionsIndexForValue<S>(value ?? defaultValue, enumOptions, false) as unknown as string}\n onValueChange={(selectedValue) => {\n onChange(enumOptionsValueForIndex<S>(selectedValue, enumOptions, optEmptyValue));\n }}\n autoFocus={autofocus}\n disabled={disabled || readonly}\n required={required}\n placeholder={placeholder}\n className={cnClassName}\n onFocus={_onFancyFocus}\n onBlur={_onFancyBlur}\n ariaDescribedby={ariaDescribedByIds(id)}\n />\n ) : (\n <FancyMultiSelect\n id={id}\n autoFocus={autofocus}\n disabled={disabled || readonly}\n multiple\n className={cnClassName}\n items={items}\n selected={value}\n onValueChange={(values) => {\n onChange(enumOptionsValueForIndex<S>(values, enumOptions, optEmptyValue));\n }}\n onFocus={_onFancyFocus}\n onBlur={_onFancyBlur}\n />\n )}\n </div>\n );\n}\n", "'use client';\n\nimport { Command as CommandPrimitive } from 'cmdk';\nimport isEqual from 'lodash/isEqual';\nimport { X } from 'lucide-react';\nimport {\n FocusEvent,\n FocusEventHandler,\n KeyboardEvent,\n ReactElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { cn } from '../../lib/utils';\nimport { Badge } from './badge';\nimport { Command, CommandGroup, CommandItem, CommandList } from './command';\n\n/**\n * Represents an item in the fancy multi-select dropdown\n */\nexport type FancySelectItem = {\n /** The value of the item */\n value: any;\n /** The display label for the item */\n label: string;\n /** The index position of the item */\n index: number;\n /** Whether the item is disabled */\n disabled?: boolean;\n};\n\n/**\n * Props interface for the FancyMultiSelect component\n */\ninterface FancyMultiSelectProps {\n /** Whether multiple items can be selected */\n multiple: boolean;\n /** Array of items to display in the dropdown */\n items?: FancySelectItem[];\n /** Array of selected item values */\n selected: string[];\n /** Callback function when value changes */\n onValueChange?: (value: number[]) => void;\n /** Whether the component should autofocus */\n autoFocus?: boolean;\n /** ID of the element that describes this select */\n ariaDescribedby?: string;\n /** Aria placeholder text */\n ariaPlaceholder?: string;\n /** Additional className for styling */\n className?: string;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Callback function for blur event */\n onBlur?: FocusEventHandler<HTMLDivElement>;\n /** Callback function for focus event */\n onFocus?: FocusEventHandler<HTMLDivElement>;\n /** Unique identifier for the component */\n id: string;\n}\n\n/**\n * A fancy multi-select component that allows users to select multiple items from a dropdown\n * @param props - The component props\n * @returns A React component that renders a searchable multi-select dropdown with tags\n */\nexport function FancyMultiSelect({\n multiple,\n items = [],\n selected,\n onValueChange,\n autoFocus = false,\n disabled = false,\n ariaDescribedby,\n ariaPlaceholder,\n onFocus,\n onBlur,\n className,\n id,\n}: Readonly<FancyMultiSelectProps>): ReactElement {\n const inputRef = useRef<HTMLInputElement>(null);\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState('');\n\n const selectedItems = useMemo(\n () => items.filter((item) => selected.some((selectedValue) => isEqual(item.value, selectedValue))),\n [items, selected],\n );\n\n const selectables = useMemo(\n () => items.filter((framework) => !selectedItems.some((item) => isEqual(item.value, framework.value))),\n [items, selectedItems],\n );\n\n const handleUnselect = useCallback(\n (framework: FancySelectItem) => {\n if (disabled) {\n return;\n }\n const newSelected = selectedItems.filter((s) => !isEqual(s.value, framework.value));\n onValueChange?.(newSelected.map((item) => item.index));\n },\n [selectedItems, onValueChange, disabled],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled || !inputRef.current || inputRef.current.value !== '') {\n return;\n }\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n const newSelected = selectedItems.slice(0, -1);\n onValueChange?.(newSelected.map((item) => item.index));\n } else if (e.key === 'Escape') {\n inputRef.current.blur();\n }\n },\n [selectedItems, onValueChange, disabled],\n );\n\n const handleSelect = useCallback(\n (item: FancySelectItem) => {\n if (disabled) {\n return;\n }\n setInputValue('');\n const newSelected = multiple ? [...selectedItems, item] : [item];\n onValueChange?.(newSelected.map((item) => item.index));\n },\n [multiple, selectedItems, onValueChange, disabled],\n );\n\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLDivElement>) => {\n if (!disabled) {\n setOpen(true);\n }\n onFocus?.(e);\n },\n [disabled, onFocus],\n );\n\n return (\n <Command\n onKeyDown={handleKeyDown}\n className={cn('overflow-visible bg-transparent', className)}\n autoFocus={autoFocus}\n aria-disabled={disabled}\n onBlur={onBlur}\n onFocus={handleFocus}\n aria-describedby={ariaDescribedby}\n aria-placeholder={ariaPlaceholder}\n >\n <div\n className={cn(\n 'group border border-input px-3 py-2 text-sm ring-offset-background rounded-md focus-within:ring-1 focus-within:ring-ring focus-within:ring-offset-1',\n disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n <div className='flex gap-1 flex-wrap'>\n {selectedItems.map((item) => (\n <Badge key={item.value} variant='secondary'>\n {item.label}\n <button\n type='button'\n className='rtl:mr-1 ltr:ml-1 ring-offset-background rounded-full outline-none focus:ring-1 focus:ring-ring focus:ring-offset-1'\n onKeyDown={(e) => e.key === 'Enter' && !disabled && handleUnselect(item)}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(item)}\n disabled={disabled}\n >\n <X\n className={cn(\n 'h-3 w-3 text-muted-foreground hover:text-foreground',\n disabled && 'pointer-events-none',\n )}\n />\n </button>\n </Badge>\n ))}\n <CommandPrimitive.Input\n ref={inputRef}\n value={inputValue}\n onValueChange={setInputValue}\n onBlur={() => setOpen(false)}\n onFocus={() => !disabled && setOpen(true)}\n placeholder='Select ...'\n className='rtl:mr-2 ltr:ml-2 bg-transparent outline-none placeholder:text-muted-foreground flex-1'\n disabled={disabled}\n aria-controls={`command-item-input-${id}`}\n aria-labelledby={`command-item-input-${id}`}\n id={`command-item-input-${id}`}\n />\n </div>\n </div>\n {open && !disabled && selectables.length > 0 && (\n <div className='relative mt-2'>\n <div className='absolute w-full z-10 top-0 rounded-md border bg-popover text-popover-foreground shadow-md outline-none animate-in'>\n <CommandGroup className='h-full overflow-auto'>\n <CommandList>\n {selectables.map((item) => (\n <CommandItem\n disabled={item.disabled}\n key={`${item.value}-command-item`}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n aria-controls={`${item.value}-command-item`}\n aria-labelledby={`${item.value}-command-item`}\n id={`${item.value}-command-item`}\n onSelect={() => handleSelect(item)}\n className='cursor-pointer'\n >\n {item.label}\n </CommandItem>\n ))}\n </CommandList>\n </CommandGroup>\n </div>\n </div>\n )}\n </Command>\n );\n}\n", "import { cva, type VariantProps } from 'class-variance-authority';\nimport { ComponentProps } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Predefined badge variants using class-variance-authority\n * @see https://ui.shadcn.com/docs/components/badge\n */\nconst badgeVariants = cva(\n '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',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary: 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\n/**\n * A badge component that displays short status descriptors\n *\n * @param asChild - If true, renders the badge as a child component (useful for custom components)\n * @param props - The props for the Badge component\n * @param props.className - Additional CSS classes to apply to the badge\n * @param props.variant - The style variant of the badge: 'default' | 'secondary' | 'destructive' | 'outline'\n * @returns A div element that displays as a badge\n */\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: ComponentProps<'span'> & VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span';\n return <Comp data-slot='badge' className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n", "'use client';\n\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\nimport { ComponentProps, ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from './dialog';\nimport { cn } from '../../lib/utils';\n\n/**\n * The root Command component that provides command menu functionality\n * @see https://ui.shadcn.com/docs/components/command\n * @returns A command menu component\n */\n\nconst Command = forwardRef<ElementRef<typeof CommandPrimitive>, ComponentPropsWithoutRef<typeof CommandPrimitive>>(\n ({ className, ...props }, ref) => {\n return (\n <CommandPrimitive\n ref={ref}\n data-slot='command'\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n );\n },\n);\n\n/**\n * A dialog wrapper for the Command component to display it in a modal\n *\n * @param title\n * @param description\n * @param className\n * @param showCloseButton\n * @param props - The props for the CommandDialog component\n * @param props.children - The content of the command dialog\n * @returns A dialog component containing the command menu\n */\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n ...props\n}: ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className='sr-only'>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className={cn('overflow-hidden p-0', className)} showCloseButton={showCloseButton}>\n <Command className='[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5'>\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\n/**\n * The search input field for the command menu\n *\n * @param props - The props for the CommandInput component\n * @param props.className - Additional CSS classes to apply\n * @returns A search input component for the command menu\n */\nconst CommandInput = forwardRef<\n ElementRef<typeof CommandPrimitive.Input>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className='flex items-center border-b px-3' {...{ 'cmdk-input-wrapper': '' }}>\n <Search className='mr-2 h-4 w-4 shrink-0 opacity-50' />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\n/**\n * Container for the list of command items\n *\n * @param props - The props for the CommandList component\n * @param props.className - Additional CSS classes to apply\n * @returns A container component for command items\n */\nfunction CommandList({ className, ...props }: ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot='command-list'\n className={cn('max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto', className)}\n {...props}\n />\n );\n}\n\n/**\n * Displayed when no results are found\n */\nfunction CommandEmpty({ ...props }: ComponentProps<typeof CommandPrimitive.Empty>) {\n return <CommandPrimitive.Empty data-slot='command-empty' className='py-6 text-center text-sm' {...props} />;\n}\n\n/**\n * Groups related command items together\n *\n * @param props - The props for the CommandGroup component\n * @param props.className - Additional CSS classes to apply\n * @returns A group container for related command items\n */\nfunction CommandGroup({ className, ...props }: ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot='command-group'\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Visual separator between command groups or items\n * @returns A separator component for the command menu\n */\nfunction CommandSeparator({ className, ...props }: ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot='command-separator'\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\n/**\n * Individual command item that can be selected\n *\n * @param props - The props for the CommandItem component\n * @param props.className - Additional CSS classes to apply\n * @returns A selectable command item component\n */\nfunction CommandItem({ className, ...props }: ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot='command-item'\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Displays keyboard shortcut hints for command items\n *\n * @param props - The props for the CommandShortcut component\n * @param props.className - Additional CSS classes to apply\n * @returns A component displaying keyboard shortcuts\n */\n\nfunction CommandShortcut({ className, ...props }: ComponentProps<'span'>) {\n return (\n <span\n data-slot='command-shortcut'\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n", "'use client';\n\nimport { Close, Content, Description, Overlay, Portal, Root, Title, Trigger } from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport { ComponentProps } from 'react';\nimport { cn } from '../../lib/utils';\n\n/**\n * The root Dialog component that manages the state and accessibility of the dialog\n * @see https://ui.shadcn.com/docs/components/dialog\n * @returns A Dialog root component\n */\nfunction Dialog({ ...props }: ComponentProps<typeof Root>) {\n return <Root data-slot='dialog' {...props} />;\n}\n\n/**\n * The button that opens the dialog when clicked\n * @returns A button component that triggers the dialog\n */\nfunction DialogTrigger({ ...props }: ComponentProps<typeof Trigger>) {\n return <Trigger data-slot='dialog-trigger' {...props} />;\n}\n\n/**\n * Portal component that renders the dialog content in a portal\n * @returns A portal component for dialog content\n */\n\nfunction DialogPortal({ ...props }: ComponentProps<typeof Portal>) {\n return <Portal data-slot='dialog-portal' {...props} />;\n}\n\n/**\n * Button component for closing the dialog\n * @returns A close button component\n */\nfunction DialogClose({ ...props }: ComponentProps<typeof Close>) {\n return <Close data-slot='dialog-close' {...props} />;\n}\n\n/**\n * The overlay that covers the screen behind the dialog\n * @param props - Props for the overlay component including className and ref\n * @param props.className - Additional CSS classes to apply to the dialog overlay\n * @returns A semi-transparent overlay component\n */\nfunction DialogOverlay({ className, ...props }: ComponentProps<typeof Overlay>) {\n return (\n <Overlay\n data-slot='dialog-overlay'\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * The main content container of the dialog\n * @param children - The content to be displayed inside the dialog\n * @param showCloseButton- Whether to show the close button in the dialog\n * @param props - Props for the content component including className, children and ref\n * @param props.className - Additional CSS classes to apply to the dialog content\n * @returns A dialog content container component\n */\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: ComponentProps<typeof Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot='dialog-portal'>\n <DialogOverlay />\n <Content\n data-slot='dialog-content'\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg',\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <Close\n data-slot='dialog-close'\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className='sr-only'>Close</span>\n </Close>\n )}\n </Content>\n </DialogPortal>\n );\n}\n\n/**\n * Container for the dialog header content\n * @param props - HTML div element attributes including className\n * @param props.className - Additional CSS classes to apply to the dialog header\n * @returns A header container component\n */\nfunction DialogHeader({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='dialog-header'\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\n/**\n * Container for the dialog footer content\n * @param props - HTML div element attributes including className\n * @param props.className - Additional CSS classes to apply to the dialog footer\n * @returns A footer container component\n */\nfunction DialogFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot='dialog-footer'\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n );\n}\n\n/**\n * The title component of the dialog\n * @param props - Props for the title component including className and ref\n * @param props.className - Additional CSS classes to apply to the dialog title\n * @returns A title component for the dialog\n */\nfunction DialogTitle({ className, ...props }: ComponentProps<typeof Title>) {\n return <Title data-slot='dialog-title' className={cn('text-lg leading-none font-semibold', className)} {...props} />;\n}\n\n/**\n * The description component of the dialog\n * @param props - Props for the description component including className and ref\n * @param props.className - Additional CSS classes to apply to the dialog description\n * @returns A description component for the dialog\n */\n\nfunction DialogDescription({ className, ...props }: ComponentProps<typeof Description>) {\n return (\n <Description data-slot='dialog-description' className={cn('text-muted-foreground text-sm', className)} {...props} />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n", "'use client';\n\nimport { Check, ChevronDown } from 'lucide-react';\nimport { FocusEvent, FocusEventHandler, ReactElement, useEffect, useRef, useState } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Command, CommandGroup, CommandItem, CommandList } from './command';\n\n/**\n * Represents an item in the fancy select dropdown\n */\nexport type FancySelectItem = {\n /** The value of the item */\n value: any;\n /** The display label for the item */\n label: string;\n /** The index position of the item */\n index: number;\n /** Whether the item is disabled */\n disabled?: boolean;\n};\n\n/**\n * Props interface for the FancySelect component\n */\ninterface FancySelectInterface {\n /** Array of items to display in the dropdown */\n items: FancySelectItem[] | undefined;\n /** Currently selected item value */\n selected: string;\n /** Callback function when value changes */\n onValueChange?: (value: any) => void;\n /** Whether the component should autofocus */\n autoFocus?: boolean;\n /** ID of the element that describes this select */\n ariaDescribedby?: string;\n /** Aria placeholder text */\n ariaPlaceholder?: string;\n /** Additional className for styling */\n className?: string;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Callback function for blur event */\n onBlur?: FocusEventHandler<HTMLDivElement> | undefined;\n /** Callback function for focus event */\n onFocus?: FocusEventHandler<HTMLDivElement> | undefined;\n /** Whether the field is required */\n required?: boolean;\n /** Placeholder text when no item is selected */\n placeholder?: string;\n}\n\n/**\n * A fancy select component that provides a styled dropdown with search functionality\n * @param props - The component props\n * @returns A React component that renders a searchable select dropdown\n */\nexport function FancySelect({\n items,\n selected,\n onValueChange,\n autoFocus = false,\n disabled = false,\n required = false,\n placeholder = 'Select...',\n ariaDescribedby,\n ariaPlaceholder,\n onFocus,\n onBlur,\n className,\n}: Readonly<FancySelectInterface>): ReactElement {\n const [open, setOpen] = useState(false);\n const selectedItem = items?.find((item) => item.value === selected);\n const selectedRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && selectedRef.current) {\n requestAnimationFrame(() => {\n selectedRef.current?.scrollIntoView({ block: 'nearest' });\n });\n }\n }, [open]);\n\n const handleBlur = (e: FocusEvent<HTMLDivElement>) => {\n if (containerRef.current && !containerRef.current.contains(e.relatedTarget as Node)) {\n setOpen(false);\n }\n onBlur?.(e);\n };\n\n return (\n <Command\n ref={containerRef}\n className={cn('overflow-visible bg-transparent', className)}\n autoFocus={autoFocus}\n aria-disabled={disabled}\n onBlur={handleBlur}\n onFocus={onFocus}\n aria-describedby={ariaDescribedby}\n aria-placeholder={ariaPlaceholder}\n >\n <div\n onClick={() => !disabled && setOpen(!open)}\n className={cn(\n 'flex h-9 w-full items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n !selectedItem && required && 'border-red-500',\n disabled && 'opacity-50 cursor-not-allowed',\n className,\n )}\n >\n <span className={cn('flex-1 line-clamp-1', !selectedItem && 'text-muted-foreground')}>\n {selectedItem?.label || placeholder}\n </span>\n <ChevronDown className='h-4 w-4 opacity-50' />\n </div>\n <div className='relative'>\n {open && items && items.length > 0 ? (\n <div\n style={{ top: '0.5rem' }}\n className='absolute w-full z-10 rounded-md border bg-popover text-popover-foreground shadow-md outline-none'\n >\n <CommandGroup className='h-full overflow-auto'>\n <CommandList>\n {items.map((item) => (\n <CommandItem\n ref={item.value === selected ? selectedRef : undefined}\n key={item.value}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => {\n if (!item.disabled) {\n onValueChange?.(item.value);\n setOpen(false);\n }\n }}\n className={cn(\n 'cursor-pointer relative flex items-center justify-between rounded-sm py-1.5 gap-2 rtl:flex-row-reverse',\n item.value === selected && 'font-semibold',\n item.disabled && 'opacity-50 cursor-not-allowed',\n )}\n >\n <span>{item.label}</span>\n <span className='flex h-3.5 w-3.5 items-center justify-center'>\n {item.value === selected && <Check className='h-4 w-4' />}\n </span>\n </CommandItem>\n ))}\n </CommandList>\n </CommandGroup>\n </div>\n ) : null}\n </div>\n </Command>\n );\n}\n", "import { ChangeEvent, FocusEvent } from 'react';\nimport { ariaDescribedByIds, FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';\n\nimport { Textarea } from '../components/ui/textarea';\n\ntype CustomWidgetProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> = WidgetProps<\n T,\n S,\n F\n> & {\n options: any;\n};\n\n/** The `TextareaWidget` is a widget for rendering input fields as textarea.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TextareaWidget<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>({\n id,\n htmlName,\n placeholder,\n value,\n required,\n disabled,\n autofocus,\n readonly,\n onBlur,\n onFocus,\n onChange,\n options,\n className,\n}: CustomWidgetProps<T, S, F>) {\n const _onChange = ({ target: { value } }: ChangeEvent<HTMLTextAreaElement>) =>\n onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target }: FocusEvent<HTMLTextAreaElement>) => onBlur(id, target && target.value);\n const _onFocus = ({ target }: FocusEvent<HTMLTextAreaElement>) => onFocus(id, target && target.value);\n\n return (\n <div className='flex p-0.5'>\n <Textarea\n id={id}\n name={htmlName || id}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readonly}\n value={value ?? ''}\n required={required}\n autoFocus={autofocus}\n rows={options.rows || 5}\n onChange={_onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds(id)}\n className={className}\n />\n </div>\n );\n}\n", "import { TextareaHTMLAttributes, ComponentProps } from 'react';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Props for the Textarea component\n * @extends TextareaHTMLAttributes<HTMLTextAreaElement> - HTML textarea element attributes\n */\nexport type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement>;\n\n/**\n * A textarea component with styling and focus states\n *\n * @param props - The props for the Textarea component\n * @param props.className - Additional CSS classes to apply to the textarea\n * @param ref - The forwarded ref for the textarea element\n * @returns A styled textarea element\n */\nfunction Textarea({ className, ...props }: ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot='textarea'\n className={cn(\n 'border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n", "import { FormContextType, RegistryWidgetsType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport CheckboxWidget from '../CheckboxWidget/CheckboxWidget';\nimport CheckboxesWidget from '../CheckboxesWidget/CheckboxesWidget';\nimport RadioWidget from '../RadioWidget/RadioWidget';\nimport RangeWidget from '../RangeWidget/RangeWidget';\nimport SelectWidget from '../SelectWidget/SelectWidget';\nimport TextareaWidget from '../TextareaWidget/TextareaWidget';\n\nexport function generateWidgets<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): RegistryWidgetsType<T, S, F> {\n return {\n CheckboxWidget,\n CheckboxesWidget,\n RadioWidget,\n RangeWidget,\n SelectWidget,\n TextareaWidget,\n };\n}\n\nexport default generateWidgets();\n", "import { ThemeProps } from '@rjsf/core';\nimport { FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\n\nimport { generateTemplates } from '../Templates';\nimport { generateWidgets } from '../Widgets';\n\nexport function generateTheme<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(): ThemeProps<T, S, F> {\n return {\n templates: generateTemplates<T, S, F>(),\n widgets: generateWidgets<T, S, F>(),\n };\n}\n\nexport default generateTheme();\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_core", "import_utils", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "AddButton", "import_utils", "import_jsx_runtime", "import_jsx_runtime", "value", "import_jsx_runtime", "import_utils", "import_lucide_react", "import_class_variance_authority", "import_jsx_runtime", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "WrapIfAdditionalTemplate", "import_jsx_runtime", "import_utils", "import_lucide_react", "import_jsx_runtime", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "AddButton", "import_lucide_react", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "RemoveButton", "import_utils", "import_jsx_runtime", "import_jsx_runtime", "import_jsx_runtime", "import_utils", "import_jsx_runtime", "import_utils", "import_lucide_react", "import_jsx_runtime", "import_jsx_runtime", "value", "import_utils", "import_jsx_runtime", "import_jsx_runtime", "value", "_pick", "import_utils", "import_cmdk", "import_lucide_react", "import_react", "import_class_variance_authority", "import_react_slot", "import_jsx_runtime", "import_lucide_react", "import_react", "import_lucide_react", "import_jsx_runtime", "import_jsx_runtime", "CommandPrimitive", "CommandPrimitive", "CommandPrimitive", "CommandPrimitive", "import_jsx_runtime", "isEqual", "item", "CommandPrimitive", "import_lucide_react", "import_react", "import_jsx_runtime", "import_jsx_runtime", "value", "import_utils", "import_jsx_runtime", "import_jsx_runtime", "value"]
7
7
  }