@yca-software/yca-react-core 0.0.24 → 0.0.25
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.
- package/dist/{chunk-L4KNKLFW.js → chunk-CTFLNTPC.js} +3 -3
- package/dist/{chunk-L4KNKLFW.js.map → chunk-CTFLNTPC.js.map} +1 -1
- package/dist/{chunk-GDYI2I74.js → chunk-FJUWTB3A.js} +6 -3
- package/dist/chunk-FJUWTB3A.js.map +1 -0
- package/dist/{chunk-BL4GPQGY.js → chunk-VUWBN4CZ.js} +3 -3
- package/dist/{chunk-BL4GPQGY.js.map → chunk-VUWBN4CZ.js.map} +1 -1
- package/dist/components/forms/index.js +2 -2
- package/dist/components/spa/index.js +2 -2
- package/dist/components/ui/index.d.ts +3 -1
- package/dist/components/ui/index.js +1 -1
- package/dist/index.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-GDYI2I74.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormField, FormItem, FormLabel, FormControl, Textarea, FormMessage, Select, Tooltip, Checkbox, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './chunk-
|
|
1
|
+
import { FormField, FormItem, FormLabel, FormControl, Textarea, FormMessage, Select, Tooltip, Checkbox, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './chunk-FJUWTB3A.js';
|
|
2
2
|
import { Input } from './chunk-3AYG73DK.js';
|
|
3
3
|
import { cn } from './chunk-GXWVFQCK.js';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -335,5 +335,5 @@ function RoleSelectField({
|
|
|
335
335
|
}
|
|
336
336
|
|
|
337
337
|
export { DescriptionField, EmailField, ExpiresAtField, FirstNameField, LastNameField, NameField, PasswordField, PermissionsField, RoleSelectField };
|
|
338
|
-
//# sourceMappingURL=chunk-
|
|
339
|
-
//# sourceMappingURL=chunk-
|
|
338
|
+
//# sourceMappingURL=chunk-CTFLNTPC.js.map
|
|
339
|
+
//# sourceMappingURL=chunk-CTFLNTPC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/description-field/index.tsx","../src/components/forms/email-field/index.tsx","../src/components/forms/expires-at-field/index.tsx","../src/components/forms/first-name-field/index.tsx","../src/components/forms/last-name-field/index.tsx","../src/components/forms/name-field/index.tsx","../src/components/forms/password-field/index.tsx","../src/components/forms/permissions-field/index.tsx","../src/components/forms/role-select-field/index.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-L4KNKLFW.js","sourcesContent":["import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Textarea } from '../../ui';\n\ntype DescriptionFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n};\n\nexport function DescriptionField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n disabled,\n}: DescriptionFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Textarea placeholder={placeholder} disabled={disabled} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype EmailFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n description?: string;\n autoComplete?: 'email' | 'username';\n className?: string;\n};\n\nexport function EmailField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n description,\n autoComplete = 'email',\n className,\n}: EmailFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n {description && <p className=\"text-sm text-muted-foreground mt-0.5\">{description}</p>}\n <FormControl>\n <Input type=\"email\" placeholder={placeholder} autoComplete={autoComplete} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormField, FormItem, FormLabel, FormMessage, Select } from '../../ui';\n\ntype ExpiresAtOption = {\n value: string;\n label: string;\n};\n\ntype ExpiresAtFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n ariaLabel?: string;\n options: ExpiresAtOption[];\n};\n\nexport function ExpiresAtField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n ariaLabel,\n options,\n}: ExpiresAtFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem>\n <FormLabel>{label}</FormLabel>\n <Select\n value={(field.value as string) ?? ''}\n onValueChange={(next) => {\n field.onChange(next);\n }}\n options={options}\n placeholder={placeholder}\n aria-label={ariaLabel ?? label}\n />\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype FirstNameFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n};\n\nexport function FirstNameField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n}: FirstNameFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Input placeholder={placeholder} autoComplete=\"given-name\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype LastNameFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n};\n\nexport function LastNameField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n}: LastNameFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Input placeholder={placeholder} autoComplete=\"family-name\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype NameFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n};\n\nexport function NameField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n disabled,\n}: NameFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Input placeholder={placeholder} disabled={disabled} autoComplete=\"off\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { ReactNode } from 'react';\nimport type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype PasswordFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n autoComplete?: 'current-password' | 'new-password';\n /** Optional node to show on the right of the label (e.g. \"Forgot password?\" link) */\n rightLabel?: ReactNode;\n className?: string;\n};\n\nexport function PasswordField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n autoComplete = 'current-password',\n rightLabel,\n className,\n}: PasswordFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <div className=\"flex items-center justify-between\">\n <FormLabel>{label}</FormLabel>\n {rightLabel}\n </div>\n <FormControl>\n <Input\n type=\"password\"\n placeholder={placeholder}\n autoComplete={autoComplete}\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import { Info } from 'lucide-react';\nimport type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport type { PermissionGroup, PermissionOption } from '../../../types';\nimport { Checkbox, FormField, FormItem, FormLabel, FormMessage, Tooltip } from '../../ui';\n\nexport type {\n PermissionAction,\n PermissionGroup,\n PermissionOption,\n} from '../../../types';\n\ntype PermissionsFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n groups: PermissionGroup[];\n t: (key: string) => string;\n disabled?: boolean;\n};\n\nexport function PermissionsField<T extends FieldValues>({\n control,\n name,\n label,\n groups,\n t,\n disabled = false,\n}: PermissionsFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => {\n const selected = (field.value as string[]) ?? [];\n\n const togglePermission = (key: string, group: PermissionOption[]) => {\n const readKey = getReadKeyForGroup(group);\n const opt = group.find((p) => p.key === key);\n if (!opt) return;\n\n const next = selected.includes(key)\n ? selected.filter((k) => k !== key)\n : [...selected, key];\n\n if (opt.action === 'write' || opt.action === 'delete') {\n if (next.includes(key) && readKey && !next.includes(readKey)) {\n next.push(readKey);\n }\n }\n if (opt.action === 'delete') {\n const writeKey = getWriteKeyForGroup(group);\n if (next.includes(key) && writeKey && !next.includes(writeKey)) {\n next.push(writeKey);\n }\n }\n\n field.onChange(next);\n };\n\n return (\n <FormItem>\n <FormLabel>{label}</FormLabel>\n <div className=\"space-y-4\">\n {groups.map((group) => {\n const readKey = getReadKeyForGroup(group.permissions);\n const writeKey = getWriteKeyForGroup(group.permissions);\n const readDisabled = readKey\n ? hasWriteOrDelete(group.permissions, selected)\n : false;\n const writeDisabled = writeKey ? hasDelete(group.permissions, selected) : false;\n const readChecked =\n readKey !== null && (selected.includes(readKey) || readDisabled);\n const writeChecked =\n writeKey !== null && (selected.includes(writeKey) || writeDisabled);\n\n return (\n <div key={group.contextKey} className=\"space-y-2\">\n <div className=\"flex items-center gap-1.5\">\n <p className=\"text-sm font-medium\">{t(group.labelKey)}</p>\n <Tooltip content={t(group.descriptionKey)} side=\"top\" align=\"start\">\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground cursor-help inline-flex rounded p-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label={t(group.descriptionKey)}\n >\n <Info className=\"size-3.5\" aria-hidden />\n </button>\n </Tooltip>\n </div>\n <div className=\"flex flex-wrap gap-4 pl-2\">\n {group.permissions.map((perm) => {\n const isRead = perm.action === 'read';\n const isWrite = perm.action === 'write';\n const checked = isRead\n ? readChecked\n : isWrite\n ? writeChecked\n : selected.includes(perm.key);\n const permissionDisabled =\n (isRead && readDisabled) || (isWrite && writeDisabled);\n const globallyDisabled = disabled || permissionDisabled;\n\n return (\n <div key={perm.key} className=\"flex items-center space-x-2\">\n <Checkbox\n id={perm.key}\n checked={isRead ? readChecked : checked}\n disabled={globallyDisabled}\n onCheckedChange={() =>\n !globallyDisabled && togglePermission(perm.key, group.permissions)\n }\n />\n <label\n htmlFor={perm.key}\n className=\"text-sm font-normal leading-none cursor-pointer peer-disabled:opacity-70\"\n >\n {t(perm.labelKey)}\n </label>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n );\n}\n\nfunction getReadKeyForGroup(permissions: PermissionOption[]): string | null {\n const readOpt = permissions.find((p) => p.action === 'read');\n return readOpt?.key ?? null;\n}\n\nfunction getWriteKeyForGroup(permissions: PermissionOption[]): string | null {\n const writeOpt = permissions.find((p) => p.action === 'write');\n return writeOpt?.key ?? null;\n}\n\nfunction hasWriteOrDelete(permissions: PermissionOption[], selected: string[]): boolean {\n return permissions.some(\n (p) => (p.action === 'write' || p.action === 'delete') && selected.includes(p.key),\n );\n}\n\nfunction hasDelete(permissions: PermissionOption[], selected: string[]): boolean {\n return permissions.some((p) => p.action === 'delete' && selected.includes(p.key));\n}\n","import { ChevronDown } from 'lucide-react';\nimport type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { cn } from '../../../lib/utils';\nimport type { RoleOption } from '../../../types';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui';\n\nexport type { RoleOption } from '../../../types';\n\ntype RoleSelectFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n options: RoleOption[];\n className?: string;\n};\n\nexport function RoleSelectField<T extends FieldValues>({\n control,\n name,\n label,\n options,\n className,\n}: RoleSelectFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => {\n const selectedOption = options.find((opt) => opt.value === field.value);\n const displayValue = selectedOption?.label ?? label;\n\n return (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n role=\"combobox\"\n aria-label={label}\n onBlur={field.onBlur}\n className={cn(\n 'flex h-9 w-full cursor-pointer items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-colors',\n 'hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive',\n !field.value && 'text-muted-foreground',\n )}\n >\n <span className=\"min-w-0 truncate text-left\">{displayValue}</span>\n <ChevronDown className=\"ml-2 h-4 w-4 shrink-0 text-muted-foreground\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n sideOffset={0}\n className={cn('min-w-(--radix-dropdown-menu-trigger-width) z-101')}\n >\n {options.map((opt) => (\n <DropdownMenuItem key={opt.value} onClick={() => field.onChange(opt.value)}>\n {opt.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/description-field/index.tsx","../src/components/forms/email-field/index.tsx","../src/components/forms/expires-at-field/index.tsx","../src/components/forms/first-name-field/index.tsx","../src/components/forms/last-name-field/index.tsx","../src/components/forms/name-field/index.tsx","../src/components/forms/password-field/index.tsx","../src/components/forms/permissions-field/index.tsx","../src/components/forms/role-select-field/index.tsx"],"names":["jsx","jsxs"],"mappings":";;;;;;AAYO,SAAS,gBAAA,CAAwC;AAAA,EACtD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAA6B;AAC3B,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAQ,CAAC,EAAE,OAAM,qBACf,IAAA,CAAC,YAAS,SAAA,EACR,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAClB,GAAA,CAAC,eACC,QAAA,kBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,aAA0B,QAAA,EAAqB,GAAG,OAAO,CAAA,EACrE,CAAA;AAAA,4BACC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;ACtBO,SAAS,UAAA,CAAkC;AAAA,EAChD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA,GAAe,OAAA;AAAA,EACf;AACF,CAAA,EAAuB;AACrB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACTC,IAAAA,CAAC,YAAS,SAAA,EACR,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QACjB,+BAAeA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wCAAwC,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,wBACjFA,GAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,OAAA,EAAQ,WAAA,EAA0B,YAAA,EAA6B,GAAG,KAAA,EAAO,CAAA,EACvF,CAAA;AAAA,wBACAA,IAAC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;ACrBO,SAAS,cAAA,CAAsC;AAAA,EACpD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAQ,CAAC,EAAE,OAAM,qBACfC,KAAC,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAClBA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAQ,MAAM,KAAA,IAAoB,EAAA;AAAA,YAClC,aAAA,EAAe,CAAC,IAAA,KAAS;AACvB,cAAA,KAAA,CAAM,SAAS,IAAI,CAAA;AAAA,YACrB,CAAA;AAAA,YACA,OAAA;AAAA,YACA,WAAA;AAAA,YACA,cAAY,SAAA,IAAa;AAAA;AAAA,SAC3B;AAAA,wBACAA,IAAC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;ACnCO,SAAS,cAAA,CAAsC;AAAA,EACpD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACTC,IAAAA,CAAC,YAAS,SAAA,EACR,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAClBA,GAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAM,WAAA,EAA0B,YAAA,EAAa,YAAA,EAAc,GAAG,KAAA,EAAO,CAAA,EACxE,CAAA;AAAA,wBACAA,IAAC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;ACtBO,SAAS,aAAA,CAAqC;AAAA,EACnD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACTC,IAAAA,CAAC,YAAS,SAAA,EACR,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAClBA,GAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAM,WAAA,EAA0B,YAAA,EAAa,aAAA,EAAe,GAAG,KAAA,EAAO,CAAA,EACzE,CAAA;AAAA,wBACAA,IAAC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;ACrBO,SAAS,SAAA,CAAiC;AAAA,EAC/C,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACTC,IAAAA,CAAC,YAAS,SAAA,EACR,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAClBA,GAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAM,WAAA,EAA0B,QAAA,EAAoB,YAAA,EAAa,KAAA,EAAO,GAAG,KAAA,EAAO,CAAA,EACrF,CAAA;AAAA,wBACAA,IAAC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;ACpBO,SAAS,aAAA,CAAqC;AAAA,EACnD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA,GAAe,kBAAA;AAAA,EACf,UAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,uBACTC,IAAAA,CAAC,YAAS,SAAA,EACR,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACjB;AAAA,SAAA,EACH,CAAA;AAAA,wBACAA,GAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,UAAA;AAAA,YACL,WAAA;AAAA,YACA,YAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN,EACF,CAAA;AAAA,wBACAA,IAAC,WAAA,EAAA,EAAY;AAAA,OAAA,EACf;AAAA;AAAA,GAEJ;AAEJ;AC3BO,SAAS,gBAAA,CAAwC;AAAA,EACtD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,CAAA;AAAA,EACA,QAAA,GAAW;AACb,CAAA,EAA6B;AAC3B,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAM,KAAM;AACrB,QAAA,MAAM,QAAA,GAAY,KAAA,CAAM,KAAA,IAAsB,EAAC;AAE/C,QAAA,MAAM,gBAAA,GAAmB,CAAC,GAAA,EAAa,KAAA,KAA8B;AACnE,UAAA,MAAM,OAAA,GAAU,mBAAmB,KAAK,CAAA;AACxC,UAAA,MAAM,MAAM,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,QAAQ,GAAG,CAAA;AAC3C,UAAA,IAAI,CAAC,GAAA,EAAK;AAEV,UAAA,MAAM,IAAA,GAAO,QAAA,CAAS,QAAA,CAAS,GAAG,IAC9B,QAAA,CAAS,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,GAAG,CAAA,GAChC,CAAC,GAAG,UAAU,GAAG,CAAA;AAErB,UAAA,IAAI,GAAA,CAAI,MAAA,KAAW,OAAA,IAAW,GAAA,CAAI,WAAW,QAAA,EAAU;AACrD,YAAA,IAAI,IAAA,CAAK,SAAS,GAAG,CAAA,IAAK,WAAW,CAAC,IAAA,CAAK,QAAA,CAAS,OAAO,CAAA,EAAG;AAC5D,cAAA,IAAA,CAAK,KAAK,OAAO,CAAA;AAAA,YACnB;AAAA,UACF;AACA,UAAA,IAAI,GAAA,CAAI,WAAW,QAAA,EAAU;AAC3B,YAAA,MAAM,QAAA,GAAW,oBAAoB,KAAK,CAAA;AAC1C,YAAA,IAAI,IAAA,CAAK,SAAS,GAAG,CAAA,IAAK,YAAY,CAAC,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA,EAAG;AAC9D,cAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA,YACpB;AAAA,UACF;AAEA,UAAA,KAAA,CAAM,SAAS,IAAI,CAAA;AAAA,QACrB,CAAA;AAEA,QAAA,uBACEC,KAAC,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BAClBA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aACZ,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AACrB,YAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,KAAA,CAAM,WAAW,CAAA;AACpD,YAAA,MAAM,QAAA,GAAW,mBAAA,CAAoB,KAAA,CAAM,WAAW,CAAA;AACtD,YAAA,MAAM,eAAe,OAAA,GACjB,gBAAA,CAAiB,KAAA,CAAM,WAAA,EAAa,QAAQ,CAAA,GAC5C,KAAA;AACJ,YAAA,MAAM,gBAAgB,QAAA,GAAW,SAAA,CAAU,KAAA,CAAM,WAAA,EAAa,QAAQ,CAAA,GAAI,KAAA;AAC1E,YAAA,MAAM,cACJ,OAAA,KAAY,IAAA,KAAS,QAAA,CAAS,QAAA,CAAS,OAAO,CAAA,IAAK,YAAA,CAAA;AACrD,YAAA,MAAM,eACJ,QAAA,KAAa,IAAA,KAAS,QAAA,CAAS,QAAA,CAAS,QAAQ,CAAA,IAAK,aAAA,CAAA;AAEvD,YAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAA2B,SAAA,EAAU,WAAA,EACpC,QAAA,EAAA;AAAA,8BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,gCAAAD,IAAC,GAAA,EAAA,EAAE,SAAA,EAAU,uBAAuB,QAAA,EAAA,CAAA,CAAE,KAAA,CAAM,QAAQ,CAAA,EAAE,CAAA;AAAA,gCACtDA,GAAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAS,CAAA,CAAE,KAAA,CAAM,cAAc,CAAA,EAAG,IAAA,EAAK,KAAA,EAAM,KAAA,EAAM,OAAA,EAC1D,QAAA,kBAAAA,GAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAK,QAAA;AAAA,oBACL,SAAA,EAAU,2JAAA;AAAA,oBACV,YAAA,EAAY,CAAA,CAAE,KAAA,CAAM,cAAc,CAAA;AAAA,oBAElC,0BAAAA,GAAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAW,eAAW,IAAA,EAAC;AAAA;AAAA,iBACzC,EACF;AAAA,eAAA,EACF,CAAA;AAAA,8BACAA,IAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BACZ,QAAA,EAAA,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,KAAS;AAC/B,gBAAA,MAAM,MAAA,GAAS,KAAK,MAAA,KAAW,MAAA;AAC/B,gBAAA,MAAM,OAAA,GAAU,KAAK,MAAA,KAAW,OAAA;AAChC,gBAAA,MAAM,OAAA,GAAU,SACZ,WAAA,GACA,OAAA,GACE,eACA,QAAA,CAAS,QAAA,CAAS,KAAK,GAAG,CAAA;AAChC,gBAAA,MAAM,kBAAA,GACH,MAAA,IAAU,YAAA,IAAkB,OAAA,IAAW,aAAA;AAC1C,gBAAA,MAAM,mBAAmB,QAAA,IAAY,kBAAA;AAErC,gBAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAmB,SAAA,EAAU,6BAAA,EAC5B,QAAA,EAAA;AAAA,kCAAAD,GAAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,IAAI,IAAA,CAAK,GAAA;AAAA,sBACT,OAAA,EAAS,SAAS,WAAA,GAAc,OAAA;AAAA,sBAChC,QAAA,EAAU,gBAAA;AAAA,sBACV,eAAA,EAAiB,MACf,CAAC,gBAAA,IAAoB,iBAAiB,IAAA,CAAK,GAAA,EAAK,MAAM,WAAW;AAAA;AAAA,mBAErE;AAAA,kCACAA,GAAAA;AAAA,oBAAC,OAAA;AAAA,oBAAA;AAAA,sBACC,SAAS,IAAA,CAAK,GAAA;AAAA,sBACd,SAAA,EAAU,0EAAA;AAAA,sBAET,QAAA,EAAA,CAAA,CAAE,KAAK,QAAQ;AAAA;AAAA;AAClB,iBAAA,EAAA,EAdQ,KAAK,GAef,CAAA;AAAA,cAEJ,CAAC,CAAA,EACH;AAAA,aAAA,EAAA,EA7CQ,MAAM,UA8ChB,CAAA;AAAA,UAEJ,CAAC,CAAA,EACH,CAAA;AAAA,0BACAA,IAAC,WAAA,EAAA,EAAY;AAAA,SAAA,EACf,CAAA;AAAA,MAEJ;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,mBAAmB,WAAA,EAAgD;AAC1E,EAAA,MAAM,UAAU,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,MAAM,CAAA;AAC3D,EAAA,OAAO,SAAS,GAAA,IAAO,IAAA;AACzB;AAEA,SAAS,oBAAoB,WAAA,EAAgD;AAC3E,EAAA,MAAM,WAAW,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,OAAO,CAAA;AAC7D,EAAA,OAAO,UAAU,GAAA,IAAO,IAAA;AAC1B;AAEA,SAAS,gBAAA,CAAiB,aAAiC,QAAA,EAA6B;AACtF,EAAA,OAAO,WAAA,CAAY,IAAA;AAAA,IACjB,CAAC,CAAA,KAAA,CAAO,CAAA,CAAE,MAAA,KAAW,OAAA,IAAW,CAAA,CAAE,MAAA,KAAW,QAAA,KAAa,QAAA,CAAS,QAAA,CAAS,CAAA,CAAE,GAAG;AAAA,GACnF;AACF;AAEA,SAAS,SAAA,CAAU,aAAiC,QAAA,EAA6B;AAC/E,EAAA,OAAO,WAAA,CAAY,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,KAAW,QAAA,IAAY,QAAA,CAAS,QAAA,CAAS,CAAA,CAAE,GAAG,CAAC,CAAA;AAClF;AC9HO,SAAS,eAAA,CAAuC;AAAA,EACrD,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,uBACEA,GAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAM,KAAM;AACrB,QAAA,MAAM,cAAA,GAAiB,QAAQ,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,KAAA,KAAU,MAAM,KAAK,CAAA;AACtE,QAAA,MAAM,YAAA,GAAe,gBAAgB,KAAA,IAAS,KAAA;AAE9C,QAAA,uBACEC,IAAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EACR,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,aAAW,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BAClBA,GAAAA,CAAC,WAAA,EAAA,EACC,QAAA,kBAAAC,KAAC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAAD,GAAAA,CAAC,mBAAA,EAAA,EAAoB,OAAA,EAAO,IAAA,EAC1B,QAAA,kBAAAC,IAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,IAAA,EAAK,UAAA;AAAA,gBACL,YAAA,EAAY,KAAA;AAAA,gBACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,gBACd,SAAA,EAAW,EAAA;AAAA,kBACT,sKAAA;AAAA,kBACA,6FAAA;AAAA,kBACA,kDAAA;AAAA,kBACA,kEAAA;AAAA,kBACA,CAAC,MAAM,KAAA,IAAS;AAAA,iBAClB;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4BAAA,EAA8B,QAAA,EAAA,YAAA,EAAa,CAAA;AAAA,kCAC3DA,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,6CAAA,EAA8C;AAAA;AAAA;AAAA,aACvE,EACF,CAAA;AAAA,4BACAA,GAAAA;AAAA,cAAC,mBAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAM,OAAA;AAAA,gBACN,UAAA,EAAY,CAAA;AAAA,gBACZ,SAAA,EAAW,GAAG,mDAAmD,CAAA;AAAA,gBAEhE,kBAAQ,GAAA,CAAI,CAAC,wBACZA,GAAAA,CAAC,oBAAiC,OAAA,EAAS,MAAM,KAAA,CAAM,QAAA,CAAS,IAAI,KAAK,CAAA,EACtE,cAAI,KAAA,EAAA,EADgB,GAAA,CAAI,KAE3B,CACD;AAAA;AAAA;AACH,WAAA,EACF,CAAA,EACF,CAAA;AAAA,0BACAA,IAAC,WAAA,EAAA,EAAY;AAAA,SAAA,EACf,CAAA;AAAA,MAEJ;AAAA;AAAA,GACF;AAEJ","file":"chunk-CTFLNTPC.js","sourcesContent":["import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Textarea } from '../../ui';\n\ntype DescriptionFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n};\n\nexport function DescriptionField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n disabled,\n}: DescriptionFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Textarea placeholder={placeholder} disabled={disabled} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype EmailFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n description?: string;\n autoComplete?: 'email' | 'username';\n className?: string;\n};\n\nexport function EmailField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n description,\n autoComplete = 'email',\n className,\n}: EmailFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n {description && <p className=\"text-sm text-muted-foreground mt-0.5\">{description}</p>}\n <FormControl>\n <Input type=\"email\" placeholder={placeholder} autoComplete={autoComplete} {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormField, FormItem, FormLabel, FormMessage, Select } from '../../ui';\n\ntype ExpiresAtOption = {\n value: string;\n label: string;\n};\n\ntype ExpiresAtFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n ariaLabel?: string;\n options: ExpiresAtOption[];\n};\n\nexport function ExpiresAtField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n ariaLabel,\n options,\n}: ExpiresAtFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem>\n <FormLabel>{label}</FormLabel>\n <Select\n value={(field.value as string) ?? ''}\n onValueChange={(next) => {\n field.onChange(next);\n }}\n options={options}\n placeholder={placeholder}\n aria-label={ariaLabel ?? label}\n />\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype FirstNameFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n};\n\nexport function FirstNameField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n}: FirstNameFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Input placeholder={placeholder} autoComplete=\"given-name\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype LastNameFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n};\n\nexport function LastNameField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n}: LastNameFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Input placeholder={placeholder} autoComplete=\"family-name\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype NameFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n};\n\nexport function NameField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n className,\n disabled,\n}: NameFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <Input placeholder={placeholder} disabled={disabled} autoComplete=\"off\" {...field} />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import type { ReactNode } from 'react';\nimport type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { FormControl, FormField, FormItem, FormLabel, FormMessage, Input } from '../../ui';\n\ntype PasswordFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n placeholder?: string;\n autoComplete?: 'current-password' | 'new-password';\n /** Optional node to show on the right of the label (e.g. \"Forgot password?\" link) */\n rightLabel?: ReactNode;\n className?: string;\n};\n\nexport function PasswordField<T extends FieldValues>({\n control,\n name,\n label,\n placeholder,\n autoComplete = 'current-password',\n rightLabel,\n className,\n}: PasswordFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => (\n <FormItem className={className}>\n <div className=\"flex items-center justify-between\">\n <FormLabel>{label}</FormLabel>\n {rightLabel}\n </div>\n <FormControl>\n <Input\n type=\"password\"\n placeholder={placeholder}\n autoComplete={autoComplete}\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n );\n}\n","import { Info } from 'lucide-react';\nimport type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport type { PermissionGroup, PermissionOption } from '../../../types';\nimport { Checkbox, FormField, FormItem, FormLabel, FormMessage, Tooltip } from '../../ui';\n\nexport type {\n PermissionAction,\n PermissionGroup,\n PermissionOption,\n} from '../../../types';\n\ntype PermissionsFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n groups: PermissionGroup[];\n t: (key: string) => string;\n disabled?: boolean;\n};\n\nexport function PermissionsField<T extends FieldValues>({\n control,\n name,\n label,\n groups,\n t,\n disabled = false,\n}: PermissionsFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => {\n const selected = (field.value as string[]) ?? [];\n\n const togglePermission = (key: string, group: PermissionOption[]) => {\n const readKey = getReadKeyForGroup(group);\n const opt = group.find((p) => p.key === key);\n if (!opt) return;\n\n const next = selected.includes(key)\n ? selected.filter((k) => k !== key)\n : [...selected, key];\n\n if (opt.action === 'write' || opt.action === 'delete') {\n if (next.includes(key) && readKey && !next.includes(readKey)) {\n next.push(readKey);\n }\n }\n if (opt.action === 'delete') {\n const writeKey = getWriteKeyForGroup(group);\n if (next.includes(key) && writeKey && !next.includes(writeKey)) {\n next.push(writeKey);\n }\n }\n\n field.onChange(next);\n };\n\n return (\n <FormItem>\n <FormLabel>{label}</FormLabel>\n <div className=\"space-y-4\">\n {groups.map((group) => {\n const readKey = getReadKeyForGroup(group.permissions);\n const writeKey = getWriteKeyForGroup(group.permissions);\n const readDisabled = readKey\n ? hasWriteOrDelete(group.permissions, selected)\n : false;\n const writeDisabled = writeKey ? hasDelete(group.permissions, selected) : false;\n const readChecked =\n readKey !== null && (selected.includes(readKey) || readDisabled);\n const writeChecked =\n writeKey !== null && (selected.includes(writeKey) || writeDisabled);\n\n return (\n <div key={group.contextKey} className=\"space-y-2\">\n <div className=\"flex items-center gap-1.5\">\n <p className=\"text-sm font-medium\">{t(group.labelKey)}</p>\n <Tooltip content={t(group.descriptionKey)} side=\"top\" align=\"start\">\n <button\n type=\"button\"\n className=\"text-muted-foreground hover:text-foreground cursor-help inline-flex rounded p-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label={t(group.descriptionKey)}\n >\n <Info className=\"size-3.5\" aria-hidden />\n </button>\n </Tooltip>\n </div>\n <div className=\"flex flex-wrap gap-4 pl-2\">\n {group.permissions.map((perm) => {\n const isRead = perm.action === 'read';\n const isWrite = perm.action === 'write';\n const checked = isRead\n ? readChecked\n : isWrite\n ? writeChecked\n : selected.includes(perm.key);\n const permissionDisabled =\n (isRead && readDisabled) || (isWrite && writeDisabled);\n const globallyDisabled = disabled || permissionDisabled;\n\n return (\n <div key={perm.key} className=\"flex items-center space-x-2\">\n <Checkbox\n id={perm.key}\n checked={isRead ? readChecked : checked}\n disabled={globallyDisabled}\n onCheckedChange={() =>\n !globallyDisabled && togglePermission(perm.key, group.permissions)\n }\n />\n <label\n htmlFor={perm.key}\n className=\"text-sm font-normal leading-none cursor-pointer peer-disabled:opacity-70\"\n >\n {t(perm.labelKey)}\n </label>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n );\n}\n\nfunction getReadKeyForGroup(permissions: PermissionOption[]): string | null {\n const readOpt = permissions.find((p) => p.action === 'read');\n return readOpt?.key ?? null;\n}\n\nfunction getWriteKeyForGroup(permissions: PermissionOption[]): string | null {\n const writeOpt = permissions.find((p) => p.action === 'write');\n return writeOpt?.key ?? null;\n}\n\nfunction hasWriteOrDelete(permissions: PermissionOption[], selected: string[]): boolean {\n return permissions.some(\n (p) => (p.action === 'write' || p.action === 'delete') && selected.includes(p.key),\n );\n}\n\nfunction hasDelete(permissions: PermissionOption[], selected: string[]): boolean {\n return permissions.some((p) => p.action === 'delete' && selected.includes(p.key));\n}\n","import { ChevronDown } from 'lucide-react';\nimport type { Control, FieldPath, FieldValues } from 'react-hook-form';\nimport { cn } from '../../../lib/utils';\nimport type { RoleOption } from '../../../types';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '../../ui';\n\nexport type { RoleOption } from '../../../types';\n\ntype RoleSelectFieldProps<T extends FieldValues> = {\n control: Control<T>;\n name: FieldPath<T>;\n label: string;\n options: RoleOption[];\n className?: string;\n};\n\nexport function RoleSelectField<T extends FieldValues>({\n control,\n name,\n label,\n options,\n className,\n}: RoleSelectFieldProps<T>) {\n return (\n <FormField\n control={control}\n name={name}\n render={({ field }) => {\n const selectedOption = options.find((opt) => opt.value === field.value);\n const displayValue = selectedOption?.label ?? label;\n\n return (\n <FormItem className={className}>\n <FormLabel>{label}</FormLabel>\n <FormControl>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n role=\"combobox\"\n aria-label={label}\n onBlur={field.onBlur}\n className={cn(\n 'flex h-9 w-full cursor-pointer items-center justify-between rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-colors',\n 'hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'aria-invalid:ring-destructive/20 aria-invalid:border-destructive',\n !field.value && 'text-muted-foreground',\n )}\n >\n <span className=\"min-w-0 truncate text-left\">{displayValue}</span>\n <ChevronDown className=\"ml-2 h-4 w-4 shrink-0 text-muted-foreground\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"start\"\n sideOffset={0}\n className={cn('min-w-(--radix-dropdown-menu-trigger-width) z-101')}\n >\n {options.map((opt) => (\n <DropdownMenuItem key={opt.value} onClick={() => field.onChange(opt.value)}>\n {opt.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </FormControl>\n <FormMessage />\n </FormItem>\n );\n }}\n />\n );\n}\n"]}
|
|
@@ -1339,6 +1339,7 @@ function DropdownMenuTrigger({
|
|
|
1339
1339
|
}
|
|
1340
1340
|
function DropdownMenuContent({
|
|
1341
1341
|
className,
|
|
1342
|
+
animated = true,
|
|
1342
1343
|
sideOffset = 4,
|
|
1343
1344
|
portalled = true,
|
|
1344
1345
|
...props
|
|
@@ -1350,7 +1351,8 @@ function DropdownMenuContent({
|
|
|
1350
1351
|
sideOffset,
|
|
1351
1352
|
className: cn(
|
|
1352
1353
|
surfaceOverlay,
|
|
1353
|
-
"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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2
|
|
1354
|
+
animated && "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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1355
|
+
"z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto p-1",
|
|
1354
1356
|
className
|
|
1355
1357
|
),
|
|
1356
1358
|
...props
|
|
@@ -2439,6 +2441,7 @@ function Select({
|
|
|
2439
2441
|
/* @__PURE__ */ jsxs(
|
|
2440
2442
|
DropdownMenuContent,
|
|
2441
2443
|
{
|
|
2444
|
+
animated: false,
|
|
2442
2445
|
align: "start",
|
|
2443
2446
|
sideOffset: 0,
|
|
2444
2447
|
portalled: !insideModalScrollLock,
|
|
@@ -3203,5 +3206,5 @@ function UploadDropzone(props) {
|
|
|
3203
3206
|
}
|
|
3204
3207
|
|
|
3205
3208
|
export { Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Avatar, AvatarFallback, AvatarImage, Badge, Calendar, Checkbox, ConfirmDialog, DatePicker, DateRangePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, DropdownScrollableList, DropdownSelectSearchInput, EventCalendar, Form, FormControl, FormDescription, FormDrawer, FormField, FormItem, FormLabel, FormMessage, H3, Heading, Label, Link, MultiSelect, Paragraph, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, SEARCHABLE_SELECT_MIN_OPTIONS, ScrollArea, ScrollBar, SearchField, Select, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Tooltip, TooltipProvider, UploadDropzone, badgeVariants, dropdownMenuSelectOptionsMaxHeightClassName, fileMatchesAccept, filterSelectOptions, foldSearchText, headingVariants, isSelectSearchable, linkStyles, paragraphVariants, useFormField };
|
|
3206
|
-
//# sourceMappingURL=chunk-
|
|
3207
|
-
//# sourceMappingURL=chunk-
|
|
3209
|
+
//# sourceMappingURL=chunk-FJUWTB3A.js.map
|
|
3210
|
+
//# sourceMappingURL=chunk-FJUWTB3A.js.map
|