dgz-ui-shared 1.2.38 → 1.2.39
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/components/form/index.cjs.js +1 -1
- package/dist/components/form/index.cjs.js.map +1 -1
- package/dist/components/form/index.es.js +144 -144
- package/dist/components/form/index.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/App.d.ts.map +1 -1
- package/dist/types/components/form/MyCheckbox.d.ts.map +1 -1
- package/dist/types/components/form/MyRadio.d.ts.map +1 -1
- package/dist/types/components/form/MySwitch.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("dgz-ui/form"),e=require("react/jsx-runtime"),b=require("react"),g=require("dgz-ui/calendar"),M=require("dgz-ui/popover"),x=require("dgz-ui/utils"),F=require("../../chunks/MyInput-mL2G5h2s.cjs.js"),S=require("lucide-react"),I=require("../../chunks/DateRangePicker-CUv-qznZ.cjs.js"),P=require("../../chunks/MySelect-CmLxmNJz.cjs.js"),T=({control:r,name:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("dgz-ui/form"),e=require("react/jsx-runtime"),b=require("react"),g=require("dgz-ui/calendar"),M=require("dgz-ui/popover"),x=require("dgz-ui/utils"),F=require("../../chunks/MyInput-mL2G5h2s.cjs.js"),S=require("lucide-react"),I=require("../../chunks/DateRangePicker-CUv-qznZ.cjs.js"),P=require("../../chunks/MySelect-CmLxmNJz.cjs.js"),T=({control:r,name:t,label:a,rules:o,...c})=>{const l=b.useId();return t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:o,render:({field:n})=>e.jsx(s.FormLabel,{className:"block",htmlFor:c.id||l,children:e.jsxs(s.FormItem,{className:"flex flex-row items-start gap-3",children:[e.jsx(s.FormControl,{children:e.jsx(s.Checkbox,{id:c.id||l,checked:n.value,onCheckedChange:n.onChange,...c})}),a&&e.jsx("div",{className:"mt-0.5",children:a})]})})})||null},f=({control:r,name:t,label:a,required:o,rules:c,format:l=g.DATE,floatingError:n,placeholder:i,disabled:m,register:j,className:u,showTime:N,inputProps:y,...v})=>t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:c,render:({field:d,formState:h})=>e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{className:"block",children:[a," ",o&&e.jsx("span",{className:"text-red-600",children:"*"})]}),e.jsxs(M.Popover,{children:[e.jsx(M.PopoverTrigger,{asChild:!0,children:e.jsxs("div",{className:"relative",children:[e.jsx(s.FormControl,{children:e.jsx(s.Input,{...y,variant:F.get(h.errors,`${t}.message`)?"failure":"default",disabled:m,...d,readOnly:!0,placeholder:i||"Pick a date",value:d.value?x.dayjs(d.value).format(l):void 0,className:x.cn("m-0 text-start",u)})}),e.jsx(S.Calendar1,{className:x.cn("text-secondary absolute top-2.5 right-2 size-5",m&&"pointer-events-none opacity-50")}),e.jsx(s.FormMessage,{className:x.cn(n&&"absolute -bottom-5")})]})}),!m&&e.jsxs(M.PopoverContent,{className:"w-auto p-0",align:"start",children:[e.jsx(g.Calendar,{...v,mode:"single",selected:d.value,onSelect:d.onChange}),N&&e.jsx("div",{className:"px-4 pb-3",children:e.jsx(g.TimePicker,{value:x.dayjs(d.value).format("HH:mm"),onChange:k=>{const[C,p]=k.split(":");d.onChange(x.dayjs(d.value).set("hour",Number(C)).set("minute",Number(p)).toDate())}})})]})]})]})})||null,q=({control:r,name:t,label:a,required:o,rules:c,placeholder:l,floatingError:n,...i})=>t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:c,render:({field:m,formState:j})=>e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{className:"block",children:[a," ",o&&e.jsx("span",{className:"text-red-600",children:"*"})]}),e.jsxs("div",{children:[e.jsx(s.FormControl,{children:e.jsx(I.DateRangePicker,{...i,error:`${F.get(j.errors,t,"")}`,selected:m.value,onRangeSelected:m.onChange,placeholder:l})}),e.jsx(s.FormMessage,{className:x.cn(n&&"absolute -bottom-5")})]})]})})||null,L=({control:r,name:t,label:a,rules:o,required:c,floatingError:l,...n})=>t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:o,render:({field:i})=>e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{className:"block",children:[a," ",c&&e.jsx("span",{className:"text-red-600",children:"*"})]}),e.jsxs("div",{children:[e.jsx(s.FormControl,{children:e.jsx(s.HtmlEditor,{...i,...n})}),e.jsx(s.FormMessage,{className:x.cn(l&&"absolute -bottom-5")})]})]})})||null,R=({control:r,name:t,label:a,rules:o,required:c,floatingError:l,...n})=>t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:o,render:({field:i,formState:m})=>e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{className:"block",children:[a," ",c&&e.jsx("span",{className:"text-red-600",children:"*"})]}),e.jsxs("div",{children:[e.jsx(s.FormControl,{children:e.jsx(s.MaskInput,{thousandsSeparator:" ",lazy:!1,placeholderChar:"_",unmask:!0,...i,...n,variant:F.get(m.errors,`${t}.message`)?"failure":"default",onAccept:j=>i.onChange(j)})}),e.jsx(s.FormMessage,{className:x.cn(l&&"absolute -bottom-5")})]})]})})||null,w=({control:r,name:t,label:a,rules:o,value:c,...l})=>{const n=b.useId();return t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:o,render:({field:i})=>e.jsx(s.FormLabel,{className:"block",htmlFor:l.id||n,children:e.jsxs(s.FormItem,{className:"flex flex-row items-start gap-3",children:[e.jsx(s.FormControl,{children:e.jsx(s.RadioGroupItem,{id:l.id||n,value:c,checked:i.value===c,onClick:()=>{i.value!==c&&i.onChange(c)},...l})}),a&&e.jsx("div",{className:"mt-0.5",children:a})]})})})||null},D=({control:r,name:t,label:a,required:o,className:c,rules:l,options:n=[],placeholder:i="Select an option",disabled:m,onChange:j})=>t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:l,render:({field:u,formState:N})=>{const y=!!F.get(N.errors,`${t}`),v=d=>{const h=Number(d)?Number(d):d;h&&u.value!==h&&(u.onChange(h),j==null||j(h))};return e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{children:[a," ",o&&e.jsx("span",{className:"text-red-600",children:"*"})]}),e.jsxs("div",{children:[e.jsx(s.FormControl,{children:e.jsxs(s.Select,{value:`${u.value||""}`,onValueChange:v,disabled:m,children:[e.jsx(s.SelectTrigger,{ref:u.ref,variant:y?"failure":"default",className:x.cn(c),children:e.jsx(s.SelectValue,{placeholder:i})}),e.jsx(s.SelectContent,{children:n.map(d=>e.jsx(s.SelectItem,{value:String(d.value),children:d.label},String(d.value)))})]})}),e.jsx(s.FormMessage,{})]})]})}}),E=({control:r,name:t,label:a,rules:o,...c})=>{const l=b.useId();return t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:o,render:({field:n})=>e.jsx(s.FormLabel,{className:"block",htmlFor:c.id||l,children:e.jsxs(s.FormItem,{className:"flex flex-row items-start gap-3",children:[e.jsx(s.FormControl,{children:e.jsx(s.Switch,{id:c.id||l,className:"m-0",checked:n.value,onCheckedChange:n.onChange,...c})}),a&&e.jsx("div",{className:"mt-0.5",children:a})]})})})||null},O=({control:r,name:t,label:a,required:o,rules:c,className:l,floatingError:n,...i})=>t&&r&&e.jsx(s.FormField,{control:r,name:t,rules:c,render:({field:m,formState:j})=>e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{className:"block",children:[a," ",o&&e.jsx("span",{className:"text-red-600",children:"*"})]}),e.jsxs("div",{children:[e.jsx(s.FormControl,{children:e.jsx(s.Textarea,{variant:F.get(j.errors,`${t}.message`)?"failure":"default",...i,...m,className:x.cn(l)})}),e.jsx(s.FormMessage,{className:x.cn(n&&"absolute -bottom-5")})]})]})})||null,$=({control:r,name:t,label:a,required:o,className:c,rules:l,floatingError:n,...i})=>t&&r?e.jsx(s.FormField,{control:r,name:t,rules:l,render:({field:m})=>e.jsxs(s.FormItem,{children:[a&&e.jsxs(s.FormLabel,{className:"block",children:[a," ",o&&e.jsx("span",{className:"text-red-600",children:"*"})]})," ",e.jsxs("div",{children:[e.jsx(s.FormControl,{children:e.jsx(g.TimePicker,{...m,...i})}),e.jsx(s.FormMessage,{className:x.cn(n&&"absolute -bottom-5")})]})]})}):e.jsx(g.TimePicker,{className:"mt-2",...i});exports.MyInput=F.MyInput;exports.MySelect=P.MySelect;exports.MyCheckbox=T;exports.MyDatePicker=f;exports.MyDateRangePicker=q;exports.MyHtmlEditor=L;exports.MyMaskInput=R;exports.MyRadio=w;exports.MyShadcnSelect=D;exports.MySwitch=E;exports.MyTextarea=O;exports.MyTimePicker=$;Object.keys(s).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>s[r]})});
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../src/components/form/MyCheckbox.tsx","../../../src/components/form/MyDatePicker.tsx","../../../src/components/form/MyDateRangePicker.tsx","../../../src/components/form/MyHtmlEditor.tsx","../../../src/components/form/MyMaskInput.tsx","../../../src/components/form/MyRadio.tsx","../../../src/components/form/MyShadcnSelect.tsx","../../../src/components/form/MySwitch.tsx","../../../src/components/form/MyTextarea.tsx","../../../src/components/form/MyTimePicker.tsx"],"sourcesContent":["import {\n Checkbox,\n type CheckboxProps,\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyCheckbox component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyCheckboxProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & CheckboxProps;\n\n/**\n * MyCheckbox is a checkbox component with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the checkbox.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Checkbox and form item props.\n * @returns {JSX.Element | null} A checkbox component wrapped with form handling logic, or null if name/control are missing\n */\nexport const MyCheckbox = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MyCheckboxProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Checkbox\n id={props.id || id}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n <div className=\"space-y-1 leading-none\">\n {label && <div>{label}</div>}\n </div>\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n Calendar,\n type CalendarProps,\n DATE,\n TimePicker,\n} from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Input,\n type InputProps,\n} from 'dgz-ui/form';\nimport { Popover, PopoverContent, PopoverTrigger } from 'dgz-ui/popover';\nimport { cn, dayjs } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport { Calendar1 } from 'lucide-react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyDatePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDatePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<CalendarProps, 'mode' | 'disabled' | 'required'> & {\n /** Date format string for display. */\n format?: string;\n /** Props passed to the underlying Input component. */\n inputProps?: Omit<InputProps, 'onSelect'>;\n /** Placeholder text when no date is selected. */\n placeholder?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** When true, shows a TimePicker below the calendar for time selection. */\n showTime?: true;\n\n required?: true;\n };\n\n/**\n * MyDatePicker shows a calendar popover to pick a single date, integrated with react-hook-form.\n * Can also be used standalone when no control/name are provided.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date selected.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param register - The `react-hook-form` register function.\n * @param disabled - Whether the date picker is disabled.\n * @param className - Additional CSS classes.\n * @param showTime - When true, shows a TimePicker below the calendar for time selection.\n * @param inputProps - Props passed to the underlying Input component.\n * @param props - Calendar, button and form item props.\n * @returns {JSX.Element | null} A date picker component integrated with react-hook-form, or null if name/control are missing.\n */\nexport const MyDatePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n format = DATE,\n floatingError,\n placeholder,\n disabled,\n register,\n className,\n showTime,\n inputProps,\n ...props\n}: MyDatePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <Popover>\n <PopoverTrigger asChild>\n <div className={'relative'}>\n <FormControl>\n <Input\n {...inputProps}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n disabled={disabled}\n {...field}\n readOnly\n placeholder={placeholder || 'Pick a date'}\n value={\n field.value\n ? dayjs(field.value).format(format)\n : undefined\n }\n className={cn('m-0 text-start', className)}\n />\n </FormControl>\n <Calendar1\n className={cn(\n 'text-secondary absolute top-2.5 right-2 size-5',\n disabled && 'pointer-events-none opacity-50'\n )}\n />\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </PopoverTrigger>\n {!disabled && (\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n {...props}\n mode=\"single\"\n selected={field.value}\n onSelect={field.onChange}\n />\n {showTime && (\n <div className={'px-4 pb-3'}>\n <TimePicker\n value={dayjs(field.value as Date).format('HH:mm')}\n onChange={(time) => {\n const [hour, minute] = time.split(':');\n field.onChange(\n dayjs(field.value)\n .set('hour', Number(hour))\n .set('minute', Number(minute))\n .toDate()\n );\n }}\n />\n </div>\n )}\n </PopoverContent>\n )}\n </Popover>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\nimport { DateRangePicker, type DateRangePickerProps } from '../datepicker';\n\n/**\n * Props for the MyDateRangePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDateRangePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<DateRangePickerProps, 'required'> & {\n required?: true;\n };\n\n/**\n * MyDateRangePicker renders a date range selector integrated with react-hook-form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date range picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date is selected.\n * @param props - DateRangePicker props and form item props.\n * @returns {JSX.Element | null} A date range picker integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyDateRangePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n placeholder,\n floatingError,\n ...props\n}: MyDateRangePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <DateRangePicker\n {...props}\n error={`${get(formState.errors, name, '')}`}\n selected={field.value}\n onRangeSelected={field.onChange}\n placeholder={placeholder}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n HtmlEditor,\n type HtmlEditorProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyHtmlEditor component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyHtmlEditorProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n HtmlEditorProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyHtmlEditor is a rich-text HTML editor with optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the HTML editor.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - HtmlEditor and form item props.\n * @returns {JSX.Element | null} An HtmlEditor component with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyHtmlEditor = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyHtmlEditorProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <HtmlEditor {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n MaskInput,\n type MaskInputProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyMaskInput component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyMaskInputProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n MaskInputProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyMaskInput is an input component with masking support and optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes. By default it uses a space as\n * thousands separator, underscores as placeholder characters, lazy formatting disabled, and returns\n * unmasked value on change.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the mask input.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - MaskInput and form item props.\n * @returns {JSX.Element | null} A masked input with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyMaskInput = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyMaskInputProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <MaskInput\n thousandsSeparator={' '}\n lazy={false}\n placeholderChar=\"_\"\n unmask\n {...field}\n {...props}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n onAccept={(value) => field.onChange(value)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n RadioGroupItem,\n} from 'dgz-ui/form';\nimport React, { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\ntype RadioItemProps = React.ComponentPropsWithoutRef<typeof RadioGroupItem>;\n\n/**\n * Props for the MyRadio component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyRadioProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & RadioItemProps;\n\n/**\n * MyRadio is a radio input that can integrate with react-hook-form when control and name are provided.\n * Falls back to an uncontrolled radio item when not used inside a form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the radio input.\n * @param rules - The `react-hook-form` validation rules.\n * @param value - The value of the radio input.\n * @param props - Radio item and form item props.\n * @returns {JSX.Element | null} A radio button item with form integration, or null if name/control are missing\n */\nconst MyRadio = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n value,\n ...props\n}: MyRadioProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <RadioGroupItem\n id={props.id || id}\n value={value}\n checked={field.value === value}\n onClick={() => {\n if (field.value !== value) {\n field.onChange(value);\n }\n }}\n {...props}\n />\n </FormControl>\n <div className=\"space-y-1 leading-none\">\n {label && <div>{label}</div>}\n </div>\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n\nexport { MyRadio };\n","import {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n type FormItemProps,\n type Option,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyShadcnSelect component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyShadcnSelectProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & {\n /** Array of options to display in the select dropdown. */\n options?: Option[];\n /** Placeholder text when no option is selected. */\n placeholder?: string;\n /** Additional CSS classes. */\n className?: string;\n /** Whether the select is disabled. */\n disabled?: boolean;\n /** Callback fired when the selected value changes. */\n onChange?: (value: string | number) => void;\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyShadcnSelect is a native Shadcn select component integrated with react-hook-form.\n * Renders a dropdown select with customizable options and validation support.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the select.\n * @param required - Whether the field is required.\n * @param className - Additional CSS classes.\n * @param rules - The `react-hook-form` validation rules.\n * @param options - Array of options to display in the select dropdown.\n * @param placeholder - Placeholder text when no option is selected.\n * @param disabled - Whether the select is disabled.\n * @param onChange - Callback fired when the selected value changes.\n * @returns {JSX.Element | false} A select component integrated with react-hook-form, or false if name/control are missing\n */\nexport const MyShadcnSelect = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n options = [],\n placeholder = 'Select an option',\n disabled,\n onChange,\n}: MyShadcnSelectProps<TFieldValues>) => {\n return (\n name &&\n control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => {\n const hasError = !!get(formState.errors, `${name}`);\n\n const handleChange = (value: string) => {\n const val = Number(value) ? Number(value) : value;\n if (val && field.value !== val) {\n field.onChange(val);\n onChange?.(val);\n }\n };\n\n return (\n <FormItem>\n {label && (\n <FormLabel>\n {label} {required && <span className=\"text-red-600\">*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Select\n value={`${field.value || ''}`}\n onValueChange={handleChange}\n disabled={disabled}\n >\n <SelectTrigger\n ref={field.ref}\n variant={hasError ? 'failure' : 'default'}\n className={cn(className)}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent>\n {options.map((option) => (\n <SelectItem\n key={String(option.value)}\n value={String(option.value)}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </FormControl>\n <FormMessage />\n </div>\n </FormItem>\n );\n }}\n />\n )\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n Switch,\n type SwitchProps,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MySwitch component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MySwitchProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & SwitchProps;\n\n/**\n * MySwitch is a toggle switch with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the switch.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Switch and form item props.\n * @returns A toggle switch component, or null if name or control are missing.\n */\nexport const MySwitch = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MySwitchProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Switch\n id={props.id || id}\n className={'m-0'}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n <div className=\"space-y-1 leading-none\">\n {label && <div>{label}</div>}\n </div>\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Textarea,\n type TextareaProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTextarea component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTextareaProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & TextareaProps;\n\n/**\n * MyTextarea is a textarea component with optional react-hook-form integration.\n * Supports floating error message styling.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the textarea.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param className - Custom CSS class name.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - Textarea and form item props.\n * @returns {JSX.Element | null} A textarea component integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyTextarea = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n className,\n floatingError,\n ...props\n}: MyTextareaProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Textarea\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n {...props}\n {...field}\n className={cn(className)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import { TimePicker, type TimePickerProps } from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTimePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTimePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n TimePickerProps & {\n /** Whether the field is required. */\n required?: boolean;\n /** Custom CSS class name. */\n className?: string;\n };\n\n/**\n * MyTimePicker is a time selection input with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the time picker.\n * @param required - Whether the field is required.\n * @param className - Custom CSS class name.\n * @param rules - The `react-hook-form` validation rules.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - TimePicker and form item props.\n * @returns {JSX.Element} A time picker component integrated with react-hook-form, or standalone TimePicker if no form integration\n */\nexport const MyTimePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n floatingError,\n ...props\n}: MyTimePickerProps<TFieldValues>) => {\n return name && control ? (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}{' '}\n <div>\n <FormControl>\n <TimePicker {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n ) : (\n <TimePicker className={'mt-2'} {...props} />\n );\n};\n"],"names":["MyCheckbox","control","name","label","rules","props","id","useId","jsx","FormField","field","FormLabel","jsxs","FormItem","FormControl","Checkbox","MyDatePicker","required","format","DATE","floatingError","placeholder","disabled","register","className","showTime","inputProps","formState","Popover","PopoverTrigger","Input","get","dayjs","cn","Calendar1","FormMessage","PopoverContent","Calendar","TimePicker","time","hour","minute","MyDateRangePicker","DateRangePicker","MyHtmlEditor","HtmlEditor","MyMaskInput","MaskInput","value","MyRadio","RadioGroupItem","MyShadcnSelect","options","onChange","hasError","handleChange","val","Select","SelectTrigger","SelectValue","SelectContent","option","SelectItem","MySwitch","Switch","MyTextarea","Textarea","MyTimePicker"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../../src/components/form/MyCheckbox.tsx","../../../src/components/form/MyDatePicker.tsx","../../../src/components/form/MyDateRangePicker.tsx","../../../src/components/form/MyHtmlEditor.tsx","../../../src/components/form/MyMaskInput.tsx","../../../src/components/form/MyRadio.tsx","../../../src/components/form/MyShadcnSelect.tsx","../../../src/components/form/MySwitch.tsx","../../../src/components/form/MyTextarea.tsx","../../../src/components/form/MyTimePicker.tsx"],"sourcesContent":["import {\n Checkbox,\n type CheckboxProps,\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyCheckbox component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyCheckboxProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & CheckboxProps;\n\n/**\n * MyCheckbox is a checkbox component with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the checkbox.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Checkbox and form item props.\n * @returns {JSX.Element | null} A checkbox component wrapped with form handling logic, or null if name/control are missing\n */\nexport const MyCheckbox = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MyCheckboxProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Checkbox\n id={props.id || id}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n {label && <div className={'mt-0.5'}>{label}</div>}\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n Calendar,\n type CalendarProps,\n DATE,\n TimePicker,\n} from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Input,\n type InputProps,\n} from 'dgz-ui/form';\nimport { Popover, PopoverContent, PopoverTrigger } from 'dgz-ui/popover';\nimport { cn, dayjs } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport { Calendar1 } from 'lucide-react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyDatePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDatePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<CalendarProps, 'mode' | 'disabled' | 'required'> & {\n /** Date format string for display. */\n format?: string;\n /** Props passed to the underlying Input component. */\n inputProps?: Omit<InputProps, 'onSelect'>;\n /** Placeholder text when no date is selected. */\n placeholder?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** When true, shows a TimePicker below the calendar for time selection. */\n showTime?: true;\n\n required?: true;\n };\n\n/**\n * MyDatePicker shows a calendar popover to pick a single date, integrated with react-hook-form.\n * Can also be used standalone when no control/name are provided.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date selected.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param register - The `react-hook-form` register function.\n * @param disabled - Whether the date picker is disabled.\n * @param className - Additional CSS classes.\n * @param showTime - When true, shows a TimePicker below the calendar for time selection.\n * @param inputProps - Props passed to the underlying Input component.\n * @param props - Calendar, button and form item props.\n * @returns {JSX.Element | null} A date picker component integrated with react-hook-form, or null if name/control are missing.\n */\nexport const MyDatePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n format = DATE,\n floatingError,\n placeholder,\n disabled,\n register,\n className,\n showTime,\n inputProps,\n ...props\n}: MyDatePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <Popover>\n <PopoverTrigger asChild>\n <div className={'relative'}>\n <FormControl>\n <Input\n {...inputProps}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n disabled={disabled}\n {...field}\n readOnly\n placeholder={placeholder || 'Pick a date'}\n value={\n field.value\n ? dayjs(field.value).format(format)\n : undefined\n }\n className={cn('m-0 text-start', className)}\n />\n </FormControl>\n <Calendar1\n className={cn(\n 'text-secondary absolute top-2.5 right-2 size-5',\n disabled && 'pointer-events-none opacity-50'\n )}\n />\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </PopoverTrigger>\n {!disabled && (\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n {...props}\n mode=\"single\"\n selected={field.value}\n onSelect={field.onChange}\n />\n {showTime && (\n <div className={'px-4 pb-3'}>\n <TimePicker\n value={dayjs(field.value as Date).format('HH:mm')}\n onChange={(time) => {\n const [hour, minute] = time.split(':');\n field.onChange(\n dayjs(field.value)\n .set('hour', Number(hour))\n .set('minute', Number(minute))\n .toDate()\n );\n }}\n />\n </div>\n )}\n </PopoverContent>\n )}\n </Popover>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\nimport { DateRangePicker, type DateRangePickerProps } from '../datepicker';\n\n/**\n * Props for the MyDateRangePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDateRangePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<DateRangePickerProps, 'required'> & {\n required?: true;\n };\n\n/**\n * MyDateRangePicker renders a date range selector integrated with react-hook-form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date range picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date is selected.\n * @param props - DateRangePicker props and form item props.\n * @returns {JSX.Element | null} A date range picker integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyDateRangePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n placeholder,\n floatingError,\n ...props\n}: MyDateRangePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <DateRangePicker\n {...props}\n error={`${get(formState.errors, name, '')}`}\n selected={field.value}\n onRangeSelected={field.onChange}\n placeholder={placeholder}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n HtmlEditor,\n type HtmlEditorProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyHtmlEditor component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyHtmlEditorProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n HtmlEditorProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyHtmlEditor is a rich-text HTML editor with optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the HTML editor.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - HtmlEditor and form item props.\n * @returns {JSX.Element | null} An HtmlEditor component with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyHtmlEditor = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyHtmlEditorProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <HtmlEditor {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n MaskInput,\n type MaskInputProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyMaskInput component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyMaskInputProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n MaskInputProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyMaskInput is an input component with masking support and optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes. By default it uses a space as\n * thousands separator, underscores as placeholder characters, lazy formatting disabled, and returns\n * unmasked value on change.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the mask input.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - MaskInput and form item props.\n * @returns {JSX.Element | null} A masked input with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyMaskInput = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyMaskInputProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <MaskInput\n thousandsSeparator={' '}\n lazy={false}\n placeholderChar=\"_\"\n unmask\n {...field}\n {...props}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n onAccept={(value) => field.onChange(value)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n RadioGroupItem,\n} from 'dgz-ui/form';\nimport React, { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\ntype RadioItemProps = React.ComponentPropsWithoutRef<typeof RadioGroupItem>;\n\n/**\n * Props for the MyRadio component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyRadioProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & RadioItemProps;\n\n/**\n * MyRadio is a radio input that can integrate with react-hook-form when control and name are provided.\n * Falls back to an uncontrolled radio item when not used inside a form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the radio input.\n * @param rules - The `react-hook-form` validation rules.\n * @param value - The value of the radio input.\n * @param props - Radio item and form item props.\n * @returns {JSX.Element | null} A radio button item with form integration, or null if name/control are missing\n */\nconst MyRadio = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n value,\n ...props\n}: MyRadioProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <RadioGroupItem\n id={props.id || id}\n value={value}\n checked={field.value === value}\n onClick={() => {\n if (field.value !== value) {\n field.onChange(value);\n }\n }}\n {...props}\n />\n </FormControl>\n {label && <div className={'mt-0.5'}>{label}</div>}\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n\nexport { MyRadio };\n","import {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n type FormItemProps,\n type Option,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyShadcnSelect component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyShadcnSelectProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & {\n /** Array of options to display in the select dropdown. */\n options?: Option[];\n /** Placeholder text when no option is selected. */\n placeholder?: string;\n /** Additional CSS classes. */\n className?: string;\n /** Whether the select is disabled. */\n disabled?: boolean;\n /** Callback fired when the selected value changes. */\n onChange?: (value: string | number) => void;\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyShadcnSelect is a native Shadcn select component integrated with react-hook-form.\n * Renders a dropdown select with customizable options and validation support.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the select.\n * @param required - Whether the field is required.\n * @param className - Additional CSS classes.\n * @param rules - The `react-hook-form` validation rules.\n * @param options - Array of options to display in the select dropdown.\n * @param placeholder - Placeholder text when no option is selected.\n * @param disabled - Whether the select is disabled.\n * @param onChange - Callback fired when the selected value changes.\n * @returns {JSX.Element | false} A select component integrated with react-hook-form, or false if name/control are missing\n */\nexport const MyShadcnSelect = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n options = [],\n placeholder = 'Select an option',\n disabled,\n onChange,\n}: MyShadcnSelectProps<TFieldValues>) => {\n return (\n name &&\n control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => {\n const hasError = !!get(formState.errors, `${name}`);\n\n const handleChange = (value: string) => {\n const val = Number(value) ? Number(value) : value;\n if (val && field.value !== val) {\n field.onChange(val);\n onChange?.(val);\n }\n };\n\n return (\n <FormItem>\n {label && (\n <FormLabel>\n {label} {required && <span className=\"text-red-600\">*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Select\n value={`${field.value || ''}`}\n onValueChange={handleChange}\n disabled={disabled}\n >\n <SelectTrigger\n ref={field.ref}\n variant={hasError ? 'failure' : 'default'}\n className={cn(className)}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent>\n {options.map((option) => (\n <SelectItem\n key={String(option.value)}\n value={String(option.value)}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </FormControl>\n <FormMessage />\n </div>\n </FormItem>\n );\n }}\n />\n )\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n Switch,\n type SwitchProps,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MySwitch component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MySwitchProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & SwitchProps;\n\n/**\n * MySwitch is a toggle switch with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the switch.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Switch and form item props.\n * @returns A toggle switch component, or null if name or control are missing.\n */\nexport const MySwitch = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MySwitchProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Switch\n id={props.id || id}\n className={'m-0'}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n {label && <div className={'mt-0.5'}>{label}</div>}\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Textarea,\n type TextareaProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTextarea component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTextareaProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & TextareaProps;\n\n/**\n * MyTextarea is a textarea component with optional react-hook-form integration.\n * Supports floating error message styling.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the textarea.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param className - Custom CSS class name.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - Textarea and form item props.\n * @returns {JSX.Element | null} A textarea component integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyTextarea = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n className,\n floatingError,\n ...props\n}: MyTextareaProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Textarea\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n {...props}\n {...field}\n className={cn(className)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import { TimePicker, type TimePickerProps } from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTimePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTimePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n TimePickerProps & {\n /** Whether the field is required. */\n required?: boolean;\n /** Custom CSS class name. */\n className?: string;\n };\n\n/**\n * MyTimePicker is a time selection input with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the time picker.\n * @param required - Whether the field is required.\n * @param className - Custom CSS class name.\n * @param rules - The `react-hook-form` validation rules.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - TimePicker and form item props.\n * @returns {JSX.Element} A time picker component integrated with react-hook-form, or standalone TimePicker if no form integration\n */\nexport const MyTimePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n floatingError,\n ...props\n}: MyTimePickerProps<TFieldValues>) => {\n return name && control ? (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}{' '}\n <div>\n <FormControl>\n <TimePicker {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n ) : (\n <TimePicker className={'mt-2'} {...props} />\n );\n};\n"],"names":["MyCheckbox","control","name","label","rules","props","id","useId","jsx","FormField","field","FormLabel","jsxs","FormItem","FormControl","Checkbox","MyDatePicker","required","format","DATE","floatingError","placeholder","disabled","register","className","showTime","inputProps","formState","Popover","PopoverTrigger","Input","get","dayjs","cn","Calendar1","FormMessage","PopoverContent","Calendar","TimePicker","time","hour","minute","MyDateRangePicker","DateRangePicker","MyHtmlEditor","HtmlEditor","MyMaskInput","MaskInput","value","MyRadio","RadioGroupItem","MyShadcnSelect","options","onChange","hasError","handleChange","val","Select","SelectTrigger","SelectValue","SelectContent","option","SelectItem","MySwitch","Switch","MyTextarea","Textarea","MyTimePicker"],"mappings":"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"}
|
|
@@ -1,82 +1,82 @@
|
|
|
1
1
|
import { FormField as N, FormLabel as v, FormItem as g, FormControl as p, Checkbox as D, Input as $, FormMessage as k, HtmlEditor as R, MaskInput as E, RadioGroupItem as H, Select as j, SelectTrigger as z, SelectValue as A, SelectContent as V, SelectItem as G, Switch as L, Textarea as O } from "dgz-ui/form";
|
|
2
2
|
export * from "dgz-ui/form";
|
|
3
|
-
import { jsx as e, jsxs as
|
|
3
|
+
import { jsx as e, jsxs as c } from "react/jsx-runtime";
|
|
4
4
|
import { useId as P } from "react";
|
|
5
5
|
import { DATE as _, Calendar as q, TimePicker as F } from "dgz-ui/calendar";
|
|
6
6
|
import { Popover as B, PopoverTrigger as J, PopoverContent as K } from "dgz-ui/popover";
|
|
7
7
|
import { cn as u, dayjs as S } from "dgz-ui/utils";
|
|
8
|
-
import { g as
|
|
8
|
+
import { g as b } from "../../chunks/MyInput-ByJ5vTAN.es.js";
|
|
9
9
|
import { M as ke } from "../../chunks/MyInput-ByJ5vTAN.es.js";
|
|
10
10
|
import { Calendar1 as Q } from "lucide-react";
|
|
11
11
|
import { D as U } from "../../chunks/DateRangePicker-DeoV3xqL.es.js";
|
|
12
12
|
import { M as Ce } from "../../chunks/MySelect-CRXtMlbf.es.js";
|
|
13
|
-
const
|
|
13
|
+
const se = ({
|
|
14
14
|
control: a,
|
|
15
15
|
name: r,
|
|
16
|
-
label:
|
|
16
|
+
label: t,
|
|
17
17
|
rules: i,
|
|
18
|
-
...
|
|
18
|
+
...s
|
|
19
19
|
}) => {
|
|
20
|
-
const
|
|
20
|
+
const l = P();
|
|
21
21
|
return r && a && /* @__PURE__ */ e(
|
|
22
22
|
N,
|
|
23
23
|
{
|
|
24
24
|
control: a,
|
|
25
25
|
name: r,
|
|
26
26
|
rules: i,
|
|
27
|
-
render: ({ field:
|
|
27
|
+
render: ({ field: n }) => /* @__PURE__ */ e(v, { className: "block", htmlFor: s.id || l, children: /* @__PURE__ */ c(g, { className: "flex flex-row items-start gap-3", children: [
|
|
28
28
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
29
29
|
D,
|
|
30
30
|
{
|
|
31
|
-
id:
|
|
32
|
-
checked:
|
|
33
|
-
onCheckedChange:
|
|
34
|
-
...
|
|
31
|
+
id: s.id || l,
|
|
32
|
+
checked: n.value,
|
|
33
|
+
onCheckedChange: n.onChange,
|
|
34
|
+
...s
|
|
35
35
|
}
|
|
36
36
|
) }),
|
|
37
|
-
/* @__PURE__ */ e("div", { className: "
|
|
37
|
+
t && /* @__PURE__ */ e("div", { className: "mt-0.5", children: t })
|
|
38
38
|
] }) })
|
|
39
39
|
}
|
|
40
40
|
) || null;
|
|
41
|
-
},
|
|
41
|
+
}, le = ({
|
|
42
42
|
control: a,
|
|
43
43
|
name: r,
|
|
44
|
-
label:
|
|
44
|
+
label: t,
|
|
45
45
|
required: i,
|
|
46
|
-
rules:
|
|
47
|
-
format:
|
|
48
|
-
floatingError:
|
|
46
|
+
rules: s,
|
|
47
|
+
format: l = _,
|
|
48
|
+
floatingError: n,
|
|
49
49
|
placeholder: d,
|
|
50
|
-
disabled:
|
|
51
|
-
register:
|
|
50
|
+
disabled: m,
|
|
51
|
+
register: h,
|
|
52
52
|
className: x,
|
|
53
|
-
showTime:
|
|
54
|
-
inputProps:
|
|
53
|
+
showTime: f,
|
|
54
|
+
inputProps: y,
|
|
55
55
|
...M
|
|
56
56
|
}) => r && a && /* @__PURE__ */ e(
|
|
57
57
|
N,
|
|
58
58
|
{
|
|
59
59
|
control: a,
|
|
60
60
|
name: r,
|
|
61
|
-
rules:
|
|
62
|
-
render: ({ field: o, formState: C }) => /* @__PURE__ */
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
rules: s,
|
|
62
|
+
render: ({ field: o, formState: C }) => /* @__PURE__ */ c(g, { children: [
|
|
63
|
+
t && /* @__PURE__ */ c(v, { className: "block", children: [
|
|
64
|
+
t,
|
|
65
65
|
" ",
|
|
66
66
|
i && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
67
67
|
] }),
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
/* @__PURE__ */ e(J, { asChild: !0, children: /* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ c(B, { children: [
|
|
69
|
+
/* @__PURE__ */ e(J, { asChild: !0, children: /* @__PURE__ */ c("div", { className: "relative", children: [
|
|
70
70
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
71
71
|
$,
|
|
72
72
|
{
|
|
73
|
-
...
|
|
74
|
-
variant:
|
|
75
|
-
disabled:
|
|
73
|
+
...y,
|
|
74
|
+
variant: b(C.errors, `${r}.message`) ? "failure" : "default",
|
|
75
|
+
disabled: m,
|
|
76
76
|
...o,
|
|
77
77
|
readOnly: !0,
|
|
78
78
|
placeholder: d || "Pick a date",
|
|
79
|
-
value: o.value ? S(o.value).format(
|
|
79
|
+
value: o.value ? S(o.value).format(l) : void 0,
|
|
80
80
|
className: u("m-0 text-start", x)
|
|
81
81
|
}
|
|
82
82
|
) }),
|
|
@@ -85,18 +85,18 @@ const le = ({
|
|
|
85
85
|
{
|
|
86
86
|
className: u(
|
|
87
87
|
"text-secondary absolute top-2.5 right-2 size-5",
|
|
88
|
-
|
|
88
|
+
m && "pointer-events-none opacity-50"
|
|
89
89
|
)
|
|
90
90
|
}
|
|
91
91
|
),
|
|
92
92
|
/* @__PURE__ */ e(
|
|
93
93
|
k,
|
|
94
94
|
{
|
|
95
|
-
className: u(
|
|
95
|
+
className: u(n && "absolute -bottom-5")
|
|
96
96
|
}
|
|
97
97
|
)
|
|
98
98
|
] }) }),
|
|
99
|
-
!
|
|
99
|
+
!m && /* @__PURE__ */ c(K, { className: "w-auto p-0", align: "start", children: [
|
|
100
100
|
/* @__PURE__ */ e(
|
|
101
101
|
q,
|
|
102
102
|
{
|
|
@@ -106,7 +106,7 @@ const le = ({
|
|
|
106
106
|
onSelect: o.onChange
|
|
107
107
|
}
|
|
108
108
|
),
|
|
109
|
-
|
|
109
|
+
f && /* @__PURE__ */ e("div", { className: "px-4 pb-3", children: /* @__PURE__ */ e(
|
|
110
110
|
F,
|
|
111
111
|
{
|
|
112
112
|
value: S(o.value).format("HH:mm"),
|
|
@@ -122,42 +122,42 @@ const le = ({
|
|
|
122
122
|
] })
|
|
123
123
|
] })
|
|
124
124
|
}
|
|
125
|
-
) || null,
|
|
125
|
+
) || null, ne = ({
|
|
126
126
|
control: a,
|
|
127
127
|
name: r,
|
|
128
|
-
label:
|
|
128
|
+
label: t,
|
|
129
129
|
required: i,
|
|
130
|
-
rules:
|
|
131
|
-
placeholder:
|
|
132
|
-
floatingError:
|
|
130
|
+
rules: s,
|
|
131
|
+
placeholder: l,
|
|
132
|
+
floatingError: n,
|
|
133
133
|
...d
|
|
134
134
|
}) => r && a && /* @__PURE__ */ e(
|
|
135
135
|
N,
|
|
136
136
|
{
|
|
137
137
|
control: a,
|
|
138
138
|
name: r,
|
|
139
|
-
rules:
|
|
140
|
-
render: ({ field:
|
|
141
|
-
|
|
142
|
-
|
|
139
|
+
rules: s,
|
|
140
|
+
render: ({ field: m, formState: h }) => /* @__PURE__ */ c(g, { children: [
|
|
141
|
+
t && /* @__PURE__ */ c(v, { className: "block", children: [
|
|
142
|
+
t,
|
|
143
143
|
" ",
|
|
144
144
|
i && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
145
145
|
] }),
|
|
146
|
-
/* @__PURE__ */
|
|
146
|
+
/* @__PURE__ */ c("div", { children: [
|
|
147
147
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
148
148
|
U,
|
|
149
149
|
{
|
|
150
150
|
...d,
|
|
151
|
-
error: `${
|
|
152
|
-
selected:
|
|
153
|
-
onRangeSelected:
|
|
154
|
-
placeholder:
|
|
151
|
+
error: `${b(h.errors, r, "")}`,
|
|
152
|
+
selected: m.value,
|
|
153
|
+
onRangeSelected: m.onChange,
|
|
154
|
+
placeholder: l
|
|
155
155
|
}
|
|
156
156
|
) }),
|
|
157
157
|
/* @__PURE__ */ e(
|
|
158
158
|
k,
|
|
159
159
|
{
|
|
160
|
-
className: u(
|
|
160
|
+
className: u(n && "absolute -bottom-5")
|
|
161
161
|
}
|
|
162
162
|
)
|
|
163
163
|
] })
|
|
@@ -166,29 +166,29 @@ const le = ({
|
|
|
166
166
|
) || null, ie = ({
|
|
167
167
|
control: a,
|
|
168
168
|
name: r,
|
|
169
|
-
label:
|
|
169
|
+
label: t,
|
|
170
170
|
rules: i,
|
|
171
|
-
required:
|
|
172
|
-
floatingError:
|
|
173
|
-
...
|
|
171
|
+
required: s,
|
|
172
|
+
floatingError: l,
|
|
173
|
+
...n
|
|
174
174
|
}) => r && a && /* @__PURE__ */ e(
|
|
175
175
|
N,
|
|
176
176
|
{
|
|
177
177
|
control: a,
|
|
178
178
|
name: r,
|
|
179
179
|
rules: i,
|
|
180
|
-
render: ({ field: d }) => /* @__PURE__ */
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
render: ({ field: d }) => /* @__PURE__ */ c(g, { children: [
|
|
181
|
+
t && /* @__PURE__ */ c(v, { className: "block", children: [
|
|
182
|
+
t,
|
|
183
183
|
" ",
|
|
184
|
-
|
|
184
|
+
s && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
185
185
|
] }),
|
|
186
|
-
/* @__PURE__ */
|
|
187
|
-
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(R, { ...d, ...
|
|
186
|
+
/* @__PURE__ */ c("div", { children: [
|
|
187
|
+
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(R, { ...d, ...n }) }),
|
|
188
188
|
/* @__PURE__ */ e(
|
|
189
189
|
k,
|
|
190
190
|
{
|
|
191
|
-
className: u(
|
|
191
|
+
className: u(l && "absolute -bottom-5")
|
|
192
192
|
}
|
|
193
193
|
)
|
|
194
194
|
] })
|
|
@@ -197,24 +197,24 @@ const le = ({
|
|
|
197
197
|
) || null, de = ({
|
|
198
198
|
control: a,
|
|
199
199
|
name: r,
|
|
200
|
-
label:
|
|
200
|
+
label: t,
|
|
201
201
|
rules: i,
|
|
202
|
-
required:
|
|
203
|
-
floatingError:
|
|
204
|
-
...
|
|
202
|
+
required: s,
|
|
203
|
+
floatingError: l,
|
|
204
|
+
...n
|
|
205
205
|
}) => r && a && /* @__PURE__ */ e(
|
|
206
206
|
N,
|
|
207
207
|
{
|
|
208
208
|
control: a,
|
|
209
209
|
name: r,
|
|
210
210
|
rules: i,
|
|
211
|
-
render: ({ field: d, formState:
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
render: ({ field: d, formState: m }) => /* @__PURE__ */ c(g, { children: [
|
|
212
|
+
t && /* @__PURE__ */ c(v, { className: "block", children: [
|
|
213
|
+
t,
|
|
214
214
|
" ",
|
|
215
|
-
|
|
215
|
+
s && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
216
216
|
] }),
|
|
217
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ c("div", { children: [
|
|
218
218
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
219
219
|
E,
|
|
220
220
|
{
|
|
@@ -223,15 +223,15 @@ const le = ({
|
|
|
223
223
|
placeholderChar: "_",
|
|
224
224
|
unmask: !0,
|
|
225
225
|
...d,
|
|
226
|
-
...
|
|
227
|
-
variant:
|
|
228
|
-
onAccept: (
|
|
226
|
+
...n,
|
|
227
|
+
variant: b(m.errors, `${r}.message`) ? "failure" : "default",
|
|
228
|
+
onAccept: (h) => d.onChange(h)
|
|
229
229
|
}
|
|
230
230
|
) }),
|
|
231
231
|
/* @__PURE__ */ e(
|
|
232
232
|
k,
|
|
233
233
|
{
|
|
234
|
-
className: u(
|
|
234
|
+
className: u(l && "absolute -bottom-5")
|
|
235
235
|
}
|
|
236
236
|
)
|
|
237
237
|
] })
|
|
@@ -240,81 +240,81 @@ const le = ({
|
|
|
240
240
|
) || null, oe = ({
|
|
241
241
|
control: a,
|
|
242
242
|
name: r,
|
|
243
|
-
label:
|
|
243
|
+
label: t,
|
|
244
244
|
rules: i,
|
|
245
|
-
value:
|
|
246
|
-
...
|
|
245
|
+
value: s,
|
|
246
|
+
...l
|
|
247
247
|
}) => {
|
|
248
|
-
const
|
|
248
|
+
const n = P();
|
|
249
249
|
return r && a && /* @__PURE__ */ e(
|
|
250
250
|
N,
|
|
251
251
|
{
|
|
252
252
|
control: a,
|
|
253
253
|
name: r,
|
|
254
254
|
rules: i,
|
|
255
|
-
render: ({ field: d }) => /* @__PURE__ */ e(v, { className: "block", htmlFor:
|
|
255
|
+
render: ({ field: d }) => /* @__PURE__ */ e(v, { className: "block", htmlFor: l.id || n, children: /* @__PURE__ */ c(g, { className: "flex flex-row items-start gap-3", children: [
|
|
256
256
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
257
257
|
H,
|
|
258
258
|
{
|
|
259
|
-
id:
|
|
260
|
-
value:
|
|
261
|
-
checked: d.value ===
|
|
259
|
+
id: l.id || n,
|
|
260
|
+
value: s,
|
|
261
|
+
checked: d.value === s,
|
|
262
262
|
onClick: () => {
|
|
263
|
-
d.value !==
|
|
263
|
+
d.value !== s && d.onChange(s);
|
|
264
264
|
},
|
|
265
|
-
...
|
|
265
|
+
...l
|
|
266
266
|
}
|
|
267
267
|
) }),
|
|
268
|
-
/* @__PURE__ */ e("div", { className: "
|
|
268
|
+
t && /* @__PURE__ */ e("div", { className: "mt-0.5", children: t })
|
|
269
269
|
] }) })
|
|
270
270
|
}
|
|
271
271
|
) || null;
|
|
272
|
-
},
|
|
272
|
+
}, me = ({
|
|
273
273
|
control: a,
|
|
274
274
|
name: r,
|
|
275
|
-
label:
|
|
275
|
+
label: t,
|
|
276
276
|
required: i,
|
|
277
|
-
className:
|
|
278
|
-
rules:
|
|
279
|
-
options:
|
|
277
|
+
className: s,
|
|
278
|
+
rules: l,
|
|
279
|
+
options: n = [],
|
|
280
280
|
placeholder: d = "Select an option",
|
|
281
|
-
disabled:
|
|
282
|
-
onChange:
|
|
281
|
+
disabled: m,
|
|
282
|
+
onChange: h
|
|
283
283
|
}) => r && a && /* @__PURE__ */ e(
|
|
284
284
|
N,
|
|
285
285
|
{
|
|
286
286
|
control: a,
|
|
287
287
|
name: r,
|
|
288
|
-
rules:
|
|
289
|
-
render: ({ field: x, formState:
|
|
290
|
-
const
|
|
288
|
+
rules: l,
|
|
289
|
+
render: ({ field: x, formState: f }) => {
|
|
290
|
+
const y = !!b(f.errors, `${r}`), M = (o) => {
|
|
291
291
|
const C = Number(o) ? Number(o) : o;
|
|
292
|
-
C && x.value !== C && (x.onChange(C),
|
|
292
|
+
C && x.value !== C && (x.onChange(C), h == null || h(C));
|
|
293
293
|
};
|
|
294
|
-
return /* @__PURE__ */
|
|
295
|
-
|
|
296
|
-
|
|
294
|
+
return /* @__PURE__ */ c(g, { children: [
|
|
295
|
+
t && /* @__PURE__ */ c(v, { children: [
|
|
296
|
+
t,
|
|
297
297
|
" ",
|
|
298
298
|
i && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
299
299
|
] }),
|
|
300
|
-
/* @__PURE__ */
|
|
301
|
-
/* @__PURE__ */ e(p, { children: /* @__PURE__ */
|
|
300
|
+
/* @__PURE__ */ c("div", { children: [
|
|
301
|
+
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ c(
|
|
302
302
|
j,
|
|
303
303
|
{
|
|
304
304
|
value: `${x.value || ""}`,
|
|
305
305
|
onValueChange: M,
|
|
306
|
-
disabled:
|
|
306
|
+
disabled: m,
|
|
307
307
|
children: [
|
|
308
308
|
/* @__PURE__ */ e(
|
|
309
309
|
z,
|
|
310
310
|
{
|
|
311
311
|
ref: x.ref,
|
|
312
|
-
variant:
|
|
313
|
-
className: u(
|
|
312
|
+
variant: y ? "failure" : "default",
|
|
313
|
+
className: u(s),
|
|
314
314
|
children: /* @__PURE__ */ e(A, { placeholder: d })
|
|
315
315
|
}
|
|
316
316
|
),
|
|
317
|
-
/* @__PURE__ */ e(V, { children:
|
|
317
|
+
/* @__PURE__ */ e(V, { children: n.map((o) => /* @__PURE__ */ e(
|
|
318
318
|
G,
|
|
319
319
|
{
|
|
320
320
|
value: String(o.value),
|
|
@@ -330,70 +330,70 @@ const le = ({
|
|
|
330
330
|
] });
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
|
-
),
|
|
333
|
+
), he = ({
|
|
334
334
|
control: a,
|
|
335
335
|
name: r,
|
|
336
|
-
label:
|
|
336
|
+
label: t,
|
|
337
337
|
rules: i,
|
|
338
|
-
...
|
|
338
|
+
...s
|
|
339
339
|
}) => {
|
|
340
|
-
const
|
|
340
|
+
const l = P();
|
|
341
341
|
return r && a && /* @__PURE__ */ e(
|
|
342
342
|
N,
|
|
343
343
|
{
|
|
344
344
|
control: a,
|
|
345
345
|
name: r,
|
|
346
346
|
rules: i,
|
|
347
|
-
render: ({ field:
|
|
347
|
+
render: ({ field: n }) => /* @__PURE__ */ e(v, { className: "block", htmlFor: s.id || l, children: /* @__PURE__ */ c(g, { className: "flex flex-row items-start gap-3", children: [
|
|
348
348
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
349
349
|
L,
|
|
350
350
|
{
|
|
351
|
-
id:
|
|
351
|
+
id: s.id || l,
|
|
352
352
|
className: "m-0",
|
|
353
|
-
checked:
|
|
354
|
-
onCheckedChange:
|
|
355
|
-
...
|
|
353
|
+
checked: n.value,
|
|
354
|
+
onCheckedChange: n.onChange,
|
|
355
|
+
...s
|
|
356
356
|
}
|
|
357
357
|
) }),
|
|
358
|
-
/* @__PURE__ */ e("div", { className: "
|
|
358
|
+
t && /* @__PURE__ */ e("div", { className: "mt-0.5", children: t })
|
|
359
359
|
] }) })
|
|
360
360
|
}
|
|
361
361
|
) || null;
|
|
362
362
|
}, ue = ({
|
|
363
363
|
control: a,
|
|
364
364
|
name: r,
|
|
365
|
-
label:
|
|
365
|
+
label: t,
|
|
366
366
|
required: i,
|
|
367
|
-
rules:
|
|
368
|
-
className:
|
|
369
|
-
floatingError:
|
|
367
|
+
rules: s,
|
|
368
|
+
className: l,
|
|
369
|
+
floatingError: n,
|
|
370
370
|
...d
|
|
371
371
|
}) => r && a && /* @__PURE__ */ e(
|
|
372
372
|
N,
|
|
373
373
|
{
|
|
374
374
|
control: a,
|
|
375
375
|
name: r,
|
|
376
|
-
rules:
|
|
377
|
-
render: ({ field:
|
|
378
|
-
|
|
379
|
-
|
|
376
|
+
rules: s,
|
|
377
|
+
render: ({ field: m, formState: h }) => /* @__PURE__ */ c(g, { children: [
|
|
378
|
+
t && /* @__PURE__ */ c(v, { className: "block", children: [
|
|
379
|
+
t,
|
|
380
380
|
" ",
|
|
381
381
|
i && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
382
382
|
] }),
|
|
383
|
-
/* @__PURE__ */
|
|
383
|
+
/* @__PURE__ */ c("div", { children: [
|
|
384
384
|
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(
|
|
385
385
|
O,
|
|
386
386
|
{
|
|
387
|
-
variant:
|
|
387
|
+
variant: b(h.errors, `${r}.message`) ? "failure" : "default",
|
|
388
388
|
...d,
|
|
389
|
-
...
|
|
390
|
-
className: u(
|
|
389
|
+
...m,
|
|
390
|
+
className: u(l)
|
|
391
391
|
}
|
|
392
392
|
) }),
|
|
393
393
|
/* @__PURE__ */ e(
|
|
394
394
|
k,
|
|
395
395
|
{
|
|
396
|
-
className: u(
|
|
396
|
+
className: u(n && "absolute -bottom-5")
|
|
397
397
|
}
|
|
398
398
|
)
|
|
399
399
|
] })
|
|
@@ -402,31 +402,31 @@ const le = ({
|
|
|
402
402
|
) || null, Ne = ({
|
|
403
403
|
control: a,
|
|
404
404
|
name: r,
|
|
405
|
-
label:
|
|
405
|
+
label: t,
|
|
406
406
|
required: i,
|
|
407
|
-
className:
|
|
408
|
-
rules:
|
|
409
|
-
floatingError:
|
|
407
|
+
className: s,
|
|
408
|
+
rules: l,
|
|
409
|
+
floatingError: n,
|
|
410
410
|
...d
|
|
411
411
|
}) => r && a ? /* @__PURE__ */ e(
|
|
412
412
|
N,
|
|
413
413
|
{
|
|
414
414
|
control: a,
|
|
415
415
|
name: r,
|
|
416
|
-
rules:
|
|
417
|
-
render: ({ field:
|
|
418
|
-
|
|
419
|
-
|
|
416
|
+
rules: l,
|
|
417
|
+
render: ({ field: m }) => /* @__PURE__ */ c(g, { children: [
|
|
418
|
+
t && /* @__PURE__ */ c(v, { className: "block", children: [
|
|
419
|
+
t,
|
|
420
420
|
" ",
|
|
421
421
|
i && /* @__PURE__ */ e("span", { className: "text-red-600", children: "*" })
|
|
422
422
|
] }),
|
|
423
423
|
" ",
|
|
424
|
-
/* @__PURE__ */
|
|
425
|
-
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(F, { ...
|
|
424
|
+
/* @__PURE__ */ c("div", { children: [
|
|
425
|
+
/* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(F, { ...m, ...d }) }),
|
|
426
426
|
/* @__PURE__ */ e(
|
|
427
427
|
k,
|
|
428
428
|
{
|
|
429
|
-
className: u(
|
|
429
|
+
className: u(n && "absolute -bottom-5")
|
|
430
430
|
}
|
|
431
431
|
)
|
|
432
432
|
] })
|
|
@@ -434,16 +434,16 @@ const le = ({
|
|
|
434
434
|
}
|
|
435
435
|
) : /* @__PURE__ */ e(F, { className: "mt-2", ...d });
|
|
436
436
|
export {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
437
|
+
se as MyCheckbox,
|
|
438
|
+
le as MyDatePicker,
|
|
439
|
+
ne as MyDateRangePicker,
|
|
440
440
|
ie as MyHtmlEditor,
|
|
441
441
|
ke as MyInput,
|
|
442
442
|
de as MyMaskInput,
|
|
443
443
|
oe as MyRadio,
|
|
444
444
|
Ce as MySelect,
|
|
445
|
-
|
|
446
|
-
|
|
445
|
+
me as MyShadcnSelect,
|
|
446
|
+
he as MySwitch,
|
|
447
447
|
ue as MyTextarea,
|
|
448
448
|
Ne as MyTimePicker
|
|
449
449
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../src/components/form/MyCheckbox.tsx","../../../src/components/form/MyDatePicker.tsx","../../../src/components/form/MyDateRangePicker.tsx","../../../src/components/form/MyHtmlEditor.tsx","../../../src/components/form/MyMaskInput.tsx","../../../src/components/form/MyRadio.tsx","../../../src/components/form/MyShadcnSelect.tsx","../../../src/components/form/MySwitch.tsx","../../../src/components/form/MyTextarea.tsx","../../../src/components/form/MyTimePicker.tsx"],"sourcesContent":["import {\n Checkbox,\n type CheckboxProps,\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyCheckbox component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyCheckboxProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & CheckboxProps;\n\n/**\n * MyCheckbox is a checkbox component with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the checkbox.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Checkbox and form item props.\n * @returns {JSX.Element | null} A checkbox component wrapped with form handling logic, or null if name/control are missing\n */\nexport const MyCheckbox = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MyCheckboxProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Checkbox\n id={props.id || id}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n <div className=\"space-y-1 leading-none\">\n {label && <div>{label}</div>}\n </div>\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n Calendar,\n type CalendarProps,\n DATE,\n TimePicker,\n} from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Input,\n type InputProps,\n} from 'dgz-ui/form';\nimport { Popover, PopoverContent, PopoverTrigger } from 'dgz-ui/popover';\nimport { cn, dayjs } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport { Calendar1 } from 'lucide-react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyDatePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDatePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<CalendarProps, 'mode' | 'disabled' | 'required'> & {\n /** Date format string for display. */\n format?: string;\n /** Props passed to the underlying Input component. */\n inputProps?: Omit<InputProps, 'onSelect'>;\n /** Placeholder text when no date is selected. */\n placeholder?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** When true, shows a TimePicker below the calendar for time selection. */\n showTime?: true;\n\n required?: true;\n };\n\n/**\n * MyDatePicker shows a calendar popover to pick a single date, integrated with react-hook-form.\n * Can also be used standalone when no control/name are provided.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date selected.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param register - The `react-hook-form` register function.\n * @param disabled - Whether the date picker is disabled.\n * @param className - Additional CSS classes.\n * @param showTime - When true, shows a TimePicker below the calendar for time selection.\n * @param inputProps - Props passed to the underlying Input component.\n * @param props - Calendar, button and form item props.\n * @returns {JSX.Element | null} A date picker component integrated with react-hook-form, or null if name/control are missing.\n */\nexport const MyDatePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n format = DATE,\n floatingError,\n placeholder,\n disabled,\n register,\n className,\n showTime,\n inputProps,\n ...props\n}: MyDatePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <Popover>\n <PopoverTrigger asChild>\n <div className={'relative'}>\n <FormControl>\n <Input\n {...inputProps}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n disabled={disabled}\n {...field}\n readOnly\n placeholder={placeholder || 'Pick a date'}\n value={\n field.value\n ? dayjs(field.value).format(format)\n : undefined\n }\n className={cn('m-0 text-start', className)}\n />\n </FormControl>\n <Calendar1\n className={cn(\n 'text-secondary absolute top-2.5 right-2 size-5',\n disabled && 'pointer-events-none opacity-50'\n )}\n />\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </PopoverTrigger>\n {!disabled && (\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n {...props}\n mode=\"single\"\n selected={field.value}\n onSelect={field.onChange}\n />\n {showTime && (\n <div className={'px-4 pb-3'}>\n <TimePicker\n value={dayjs(field.value as Date).format('HH:mm')}\n onChange={(time) => {\n const [hour, minute] = time.split(':');\n field.onChange(\n dayjs(field.value)\n .set('hour', Number(hour))\n .set('minute', Number(minute))\n .toDate()\n );\n }}\n />\n </div>\n )}\n </PopoverContent>\n )}\n </Popover>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\nimport { DateRangePicker, type DateRangePickerProps } from '../datepicker';\n\n/**\n * Props for the MyDateRangePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDateRangePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<DateRangePickerProps, 'required'> & {\n required?: true;\n };\n\n/**\n * MyDateRangePicker renders a date range selector integrated with react-hook-form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date range picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date is selected.\n * @param props - DateRangePicker props and form item props.\n * @returns {JSX.Element | null} A date range picker integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyDateRangePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n placeholder,\n floatingError,\n ...props\n}: MyDateRangePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <DateRangePicker\n {...props}\n error={`${get(formState.errors, name, '')}`}\n selected={field.value}\n onRangeSelected={field.onChange}\n placeholder={placeholder}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n HtmlEditor,\n type HtmlEditorProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyHtmlEditor component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyHtmlEditorProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n HtmlEditorProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyHtmlEditor is a rich-text HTML editor with optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the HTML editor.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - HtmlEditor and form item props.\n * @returns {JSX.Element | null} An HtmlEditor component with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyHtmlEditor = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyHtmlEditorProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <HtmlEditor {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n MaskInput,\n type MaskInputProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyMaskInput component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyMaskInputProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n MaskInputProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyMaskInput is an input component with masking support and optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes. By default it uses a space as\n * thousands separator, underscores as placeholder characters, lazy formatting disabled, and returns\n * unmasked value on change.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the mask input.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - MaskInput and form item props.\n * @returns {JSX.Element | null} A masked input with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyMaskInput = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyMaskInputProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <MaskInput\n thousandsSeparator={' '}\n lazy={false}\n placeholderChar=\"_\"\n unmask\n {...field}\n {...props}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n onAccept={(value) => field.onChange(value)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n RadioGroupItem,\n} from 'dgz-ui/form';\nimport React, { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\ntype RadioItemProps = React.ComponentPropsWithoutRef<typeof RadioGroupItem>;\n\n/**\n * Props for the MyRadio component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyRadioProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & RadioItemProps;\n\n/**\n * MyRadio is a radio input that can integrate with react-hook-form when control and name are provided.\n * Falls back to an uncontrolled radio item when not used inside a form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the radio input.\n * @param rules - The `react-hook-form` validation rules.\n * @param value - The value of the radio input.\n * @param props - Radio item and form item props.\n * @returns {JSX.Element | null} A radio button item with form integration, or null if name/control are missing\n */\nconst MyRadio = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n value,\n ...props\n}: MyRadioProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <RadioGroupItem\n id={props.id || id}\n value={value}\n checked={field.value === value}\n onClick={() => {\n if (field.value !== value) {\n field.onChange(value);\n }\n }}\n {...props}\n />\n </FormControl>\n <div className=\"space-y-1 leading-none\">\n {label && <div>{label}</div>}\n </div>\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n\nexport { MyRadio };\n","import {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n type FormItemProps,\n type Option,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyShadcnSelect component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyShadcnSelectProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & {\n /** Array of options to display in the select dropdown. */\n options?: Option[];\n /** Placeholder text when no option is selected. */\n placeholder?: string;\n /** Additional CSS classes. */\n className?: string;\n /** Whether the select is disabled. */\n disabled?: boolean;\n /** Callback fired when the selected value changes. */\n onChange?: (value: string | number) => void;\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyShadcnSelect is a native Shadcn select component integrated with react-hook-form.\n * Renders a dropdown select with customizable options and validation support.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the select.\n * @param required - Whether the field is required.\n * @param className - Additional CSS classes.\n * @param rules - The `react-hook-form` validation rules.\n * @param options - Array of options to display in the select dropdown.\n * @param placeholder - Placeholder text when no option is selected.\n * @param disabled - Whether the select is disabled.\n * @param onChange - Callback fired when the selected value changes.\n * @returns {JSX.Element | false} A select component integrated with react-hook-form, or false if name/control are missing\n */\nexport const MyShadcnSelect = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n options = [],\n placeholder = 'Select an option',\n disabled,\n onChange,\n}: MyShadcnSelectProps<TFieldValues>) => {\n return (\n name &&\n control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => {\n const hasError = !!get(formState.errors, `${name}`);\n\n const handleChange = (value: string) => {\n const val = Number(value) ? Number(value) : value;\n if (val && field.value !== val) {\n field.onChange(val);\n onChange?.(val);\n }\n };\n\n return (\n <FormItem>\n {label && (\n <FormLabel>\n {label} {required && <span className=\"text-red-600\">*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Select\n value={`${field.value || ''}`}\n onValueChange={handleChange}\n disabled={disabled}\n >\n <SelectTrigger\n ref={field.ref}\n variant={hasError ? 'failure' : 'default'}\n className={cn(className)}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent>\n {options.map((option) => (\n <SelectItem\n key={String(option.value)}\n value={String(option.value)}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </FormControl>\n <FormMessage />\n </div>\n </FormItem>\n );\n }}\n />\n )\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n Switch,\n type SwitchProps,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MySwitch component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MySwitchProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & SwitchProps;\n\n/**\n * MySwitch is a toggle switch with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the switch.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Switch and form item props.\n * @returns A toggle switch component, or null if name or control are missing.\n */\nexport const MySwitch = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MySwitchProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Switch\n id={props.id || id}\n className={'m-0'}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n <div className=\"space-y-1 leading-none\">\n {label && <div>{label}</div>}\n </div>\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Textarea,\n type TextareaProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTextarea component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTextareaProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & TextareaProps;\n\n/**\n * MyTextarea is a textarea component with optional react-hook-form integration.\n * Supports floating error message styling.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the textarea.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param className - Custom CSS class name.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - Textarea and form item props.\n * @returns {JSX.Element | null} A textarea component integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyTextarea = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n className,\n floatingError,\n ...props\n}: MyTextareaProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Textarea\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n {...props}\n {...field}\n className={cn(className)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import { TimePicker, type TimePickerProps } from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTimePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTimePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n TimePickerProps & {\n /** Whether the field is required. */\n required?: boolean;\n /** Custom CSS class name. */\n className?: string;\n };\n\n/**\n * MyTimePicker is a time selection input with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the time picker.\n * @param required - Whether the field is required.\n * @param className - Custom CSS class name.\n * @param rules - The `react-hook-form` validation rules.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - TimePicker and form item props.\n * @returns {JSX.Element} A time picker component integrated with react-hook-form, or standalone TimePicker if no form integration\n */\nexport const MyTimePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n floatingError,\n ...props\n}: MyTimePickerProps<TFieldValues>) => {\n return name && control ? (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}{' '}\n <div>\n <FormControl>\n <TimePicker {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n ) : (\n <TimePicker className={'mt-2'} {...props} />\n );\n};\n"],"names":["MyCheckbox","control","name","label","rules","props","id","useId","jsx","FormField","field","FormLabel","jsxs","FormItem","FormControl","Checkbox","MyDatePicker","required","format","DATE","floatingError","placeholder","disabled","register","className","showTime","inputProps","formState","Popover","PopoverTrigger","Input","get","dayjs","cn","Calendar1","FormMessage","PopoverContent","Calendar","TimePicker","time","hour","minute","MyDateRangePicker","DateRangePicker","MyHtmlEditor","HtmlEditor","MyMaskInput","MaskInput","value","MyRadio","RadioGroupItem","MyShadcnSelect","options","onChange","hasError","handleChange","val","Select","SelectTrigger","SelectValue","SelectContent","option","SelectItem","MySwitch","Switch","MyTextarea","Textarea","MyTimePicker"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../src/components/form/MyCheckbox.tsx","../../../src/components/form/MyDatePicker.tsx","../../../src/components/form/MyDateRangePicker.tsx","../../../src/components/form/MyHtmlEditor.tsx","../../../src/components/form/MyMaskInput.tsx","../../../src/components/form/MyRadio.tsx","../../../src/components/form/MyShadcnSelect.tsx","../../../src/components/form/MySwitch.tsx","../../../src/components/form/MyTextarea.tsx","../../../src/components/form/MyTimePicker.tsx"],"sourcesContent":["import {\n Checkbox,\n type CheckboxProps,\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyCheckbox component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyCheckboxProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & CheckboxProps;\n\n/**\n * MyCheckbox is a checkbox component with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the checkbox.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Checkbox and form item props.\n * @returns {JSX.Element | null} A checkbox component wrapped with form handling logic, or null if name/control are missing\n */\nexport const MyCheckbox = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MyCheckboxProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Checkbox\n id={props.id || id}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n {label && <div className={'mt-0.5'}>{label}</div>}\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n Calendar,\n type CalendarProps,\n DATE,\n TimePicker,\n} from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Input,\n type InputProps,\n} from 'dgz-ui/form';\nimport { Popover, PopoverContent, PopoverTrigger } from 'dgz-ui/popover';\nimport { cn, dayjs } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport { Calendar1 } from 'lucide-react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyDatePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDatePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<CalendarProps, 'mode' | 'disabled' | 'required'> & {\n /** Date format string for display. */\n format?: string;\n /** Props passed to the underlying Input component. */\n inputProps?: Omit<InputProps, 'onSelect'>;\n /** Placeholder text when no date is selected. */\n placeholder?: string;\n /** Whether the date picker is disabled. */\n disabled?: boolean;\n /** When true, shows a TimePicker below the calendar for time selection. */\n showTime?: true;\n\n required?: true;\n };\n\n/**\n * MyDatePicker shows a calendar popover to pick a single date, integrated with react-hook-form.\n * Can also be used standalone when no control/name are provided.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date selected.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param register - The `react-hook-form` register function.\n * @param disabled - Whether the date picker is disabled.\n * @param className - Additional CSS classes.\n * @param showTime - When true, shows a TimePicker below the calendar for time selection.\n * @param inputProps - Props passed to the underlying Input component.\n * @param props - Calendar, button and form item props.\n * @returns {JSX.Element | null} A date picker component integrated with react-hook-form, or null if name/control are missing.\n */\nexport const MyDatePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n format = DATE,\n floatingError,\n placeholder,\n disabled,\n register,\n className,\n showTime,\n inputProps,\n ...props\n}: MyDatePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <Popover>\n <PopoverTrigger asChild>\n <div className={'relative'}>\n <FormControl>\n <Input\n {...inputProps}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n disabled={disabled}\n {...field}\n readOnly\n placeholder={placeholder || 'Pick a date'}\n value={\n field.value\n ? dayjs(field.value).format(format)\n : undefined\n }\n className={cn('m-0 text-start', className)}\n />\n </FormControl>\n <Calendar1\n className={cn(\n 'text-secondary absolute top-2.5 right-2 size-5',\n disabled && 'pointer-events-none opacity-50'\n )}\n />\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </PopoverTrigger>\n {!disabled && (\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n {...props}\n mode=\"single\"\n selected={field.value}\n onSelect={field.onChange}\n />\n {showTime && (\n <div className={'px-4 pb-3'}>\n <TimePicker\n value={dayjs(field.value as Date).format('HH:mm')}\n onChange={(time) => {\n const [hour, minute] = time.split(':');\n field.onChange(\n dayjs(field.value)\n .set('hour', Number(hour))\n .set('minute', Number(minute))\n .toDate()\n );\n }}\n />\n </div>\n )}\n </PopoverContent>\n )}\n </Popover>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\nimport { DateRangePicker, type DateRangePickerProps } from '../datepicker';\n\n/**\n * Props for the MyDateRangePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyDateRangePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n Omit<DateRangePickerProps, 'required'> & {\n required?: true;\n };\n\n/**\n * MyDateRangePicker renders a date range selector integrated with react-hook-form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the date range picker.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param format - The date format for display.\n * @param placeholder - The placeholder text when no date is selected.\n * @param props - DateRangePicker props and form item props.\n * @returns {JSX.Element | null} A date range picker integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyDateRangePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n placeholder,\n floatingError,\n ...props\n}: MyDateRangePickerProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <DateRangePicker\n {...props}\n error={`${get(formState.errors, name, '')}`}\n selected={field.value}\n onRangeSelected={field.onChange}\n placeholder={placeholder}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n HtmlEditor,\n type HtmlEditorProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyHtmlEditor component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyHtmlEditorProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n HtmlEditorProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyHtmlEditor is a rich-text HTML editor with optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the HTML editor.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - HtmlEditor and form item props.\n * @returns {JSX.Element | null} An HtmlEditor component with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyHtmlEditor = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyHtmlEditorProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <HtmlEditor {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n MaskInput,\n type MaskInputProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyMaskInput component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyMaskInputProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n MaskInputProps & {\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyMaskInput is an input component with masking support and optional react-hook-form integration.\n * Works in both controlled (with control/name) and uncontrolled modes. By default it uses a space as\n * thousands separator, underscores as placeholder characters, lazy formatting disabled, and returns\n * unmasked value on change.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the mask input.\n * @param rules - The `react-hook-form` validation rules.\n * @param required - Whether the field is required.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - MaskInput and form item props.\n * @returns {JSX.Element | null} A masked input with label, helper text, and validation message, or null if name/control are missing\n */\nexport const MyMaskInput = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n required,\n floatingError,\n ...props\n}: MyMaskInputProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <MaskInput\n thousandsSeparator={' '}\n lazy={false}\n placeholderChar=\"_\"\n unmask\n {...field}\n {...props}\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n onAccept={(value) => field.onChange(value)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n RadioGroupItem,\n} from 'dgz-ui/form';\nimport React, { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\ntype RadioItemProps = React.ComponentPropsWithoutRef<typeof RadioGroupItem>;\n\n/**\n * Props for the MyRadio component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyRadioProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & RadioItemProps;\n\n/**\n * MyRadio is a radio input that can integrate with react-hook-form when control and name are provided.\n * Falls back to an uncontrolled radio item when not used inside a form.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the radio input.\n * @param rules - The `react-hook-form` validation rules.\n * @param value - The value of the radio input.\n * @param props - Radio item and form item props.\n * @returns {JSX.Element | null} A radio button item with form integration, or null if name/control are missing\n */\nconst MyRadio = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n value,\n ...props\n}: MyRadioProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <RadioGroupItem\n id={props.id || id}\n value={value}\n checked={field.value === value}\n onClick={() => {\n if (field.value !== value) {\n field.onChange(value);\n }\n }}\n {...props}\n />\n </FormControl>\n {label && <div className={'mt-0.5'}>{label}</div>}\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n\nexport { MyRadio };\n","import {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n type FormItemProps,\n type Option,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyShadcnSelect component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyShadcnSelectProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & {\n /** Array of options to display in the select dropdown. */\n options?: Option[];\n /** Placeholder text when no option is selected. */\n placeholder?: string;\n /** Additional CSS classes. */\n className?: string;\n /** Whether the select is disabled. */\n disabled?: boolean;\n /** Callback fired when the selected value changes. */\n onChange?: (value: string | number) => void;\n /** Whether the field is required. */\n required?: boolean;\n };\n\n/**\n * MyShadcnSelect is a native Shadcn select component integrated with react-hook-form.\n * Renders a dropdown select with customizable options and validation support.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the select.\n * @param required - Whether the field is required.\n * @param className - Additional CSS classes.\n * @param rules - The `react-hook-form` validation rules.\n * @param options - Array of options to display in the select dropdown.\n * @param placeholder - Placeholder text when no option is selected.\n * @param disabled - Whether the select is disabled.\n * @param onChange - Callback fired when the selected value changes.\n * @returns {JSX.Element | false} A select component integrated with react-hook-form, or false if name/control are missing\n */\nexport const MyShadcnSelect = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n options = [],\n placeholder = 'Select an option',\n disabled,\n onChange,\n}: MyShadcnSelectProps<TFieldValues>) => {\n return (\n name &&\n control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => {\n const hasError = !!get(formState.errors, `${name}`);\n\n const handleChange = (value: string) => {\n const val = Number(value) ? Number(value) : value;\n if (val && field.value !== val) {\n field.onChange(val);\n onChange?.(val);\n }\n };\n\n return (\n <FormItem>\n {label && (\n <FormLabel>\n {label} {required && <span className=\"text-red-600\">*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Select\n value={`${field.value || ''}`}\n onValueChange={handleChange}\n disabled={disabled}\n >\n <SelectTrigger\n ref={field.ref}\n variant={hasError ? 'failure' : 'default'}\n className={cn(className)}\n >\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n\n <SelectContent>\n {options.map((option) => (\n <SelectItem\n key={String(option.value)}\n value={String(option.value)}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </FormControl>\n <FormMessage />\n </div>\n </FormItem>\n );\n }}\n />\n )\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n Switch,\n type SwitchProps,\n} from 'dgz-ui/form';\nimport { useId } from 'react';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MySwitch component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MySwitchProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & SwitchProps;\n\n/**\n * MySwitch is a toggle switch with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the switch.\n * @param rules - The `react-hook-form` validation rules.\n * @param props - Switch and form item props.\n * @returns A toggle switch component, or null if name or control are missing.\n */\nexport const MySwitch = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n rules,\n ...props\n}: MySwitchProps<TFieldValues>) => {\n const id = useId();\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormLabel className={'block'} htmlFor={props.id || id}>\n <FormItem className=\"flex flex-row items-start gap-3\">\n <FormControl>\n <Switch\n id={props.id || id}\n className={'m-0'}\n checked={field.value}\n onCheckedChange={field.onChange}\n {...props}\n />\n </FormControl>\n {label && <div className={'mt-0.5'}>{label}</div>}\n </FormItem>\n </FormLabel>\n )}\n />\n )) ||\n null\n );\n};\n","import {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n Textarea,\n type TextareaProps,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTextarea component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTextareaProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> & TextareaProps;\n\n/**\n * MyTextarea is a textarea component with optional react-hook-form integration.\n * Supports floating error message styling.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the textarea.\n * @param required - Whether the field is required.\n * @param rules - The `react-hook-form` validation rules.\n * @param className - Custom CSS class name.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - Textarea and form item props.\n * @returns {JSX.Element | null} A textarea component integrated with react-hook-form, or null if name/control are missing\n */\nexport const MyTextarea = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n rules,\n className,\n floatingError,\n ...props\n}: MyTextareaProps<TFieldValues>) => {\n return (\n (name && control && (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field, formState }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}\n <div>\n <FormControl>\n <Textarea\n variant={\n get(formState.errors, `${name}.message`)\n ? 'failure'\n : 'default'\n }\n {...props}\n {...field}\n className={cn(className)}\n />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n )) ||\n null\n );\n};\n","import { TimePicker, type TimePickerProps } from 'dgz-ui/calendar';\nimport {\n FormControl,\n FormField,\n FormItem,\n type FormItemProps,\n FormLabel,\n FormMessage,\n} from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport type { FieldPath, FieldValues } from 'react-hook-form';\n\n/**\n * Props for the MyTimePicker component.\n * @template TFieldValues - The type of the form values.\n */\nexport type MyTimePickerProps<TFieldValues extends FieldValues> =\n FormItemProps<TFieldValues> &\n TimePickerProps & {\n /** Whether the field is required. */\n required?: boolean;\n /** Custom CSS class name. */\n className?: string;\n };\n\n/**\n * MyTimePicker is a time selection input with optional react-hook-form integration.\n *\n * @template TFieldValues - Form values type used by react-hook-form.\n * @param control - The `react-hook-form` control object.\n * @param name - The name of the field in `react-hook-form`.\n * @param label - The label to display for the time picker.\n * @param required - Whether the field is required.\n * @param className - Custom CSS class name.\n * @param rules - The `react-hook-form` validation rules.\n * @param floatingError - Whether to show the error message in a floating container.\n * @param props - TimePicker and form item props.\n * @returns {JSX.Element} A time picker component integrated with react-hook-form, or standalone TimePicker if no form integration\n */\nexport const MyTimePicker = <TFieldValues extends FieldValues>({\n control,\n name,\n label,\n required,\n className,\n rules,\n floatingError,\n ...props\n}: MyTimePickerProps<TFieldValues>) => {\n return name && control ? (\n <FormField<TFieldValues, FieldPath<TFieldValues>>\n control={control}\n name={name}\n rules={rules}\n render={({ field }) => (\n <FormItem>\n {label && (\n <FormLabel className={'block'}>\n {label} {required && <span className={'text-red-600'}>*</span>}\n </FormLabel>\n )}{' '}\n <div>\n <FormControl>\n <TimePicker {...field} {...props} />\n </FormControl>\n <FormMessage\n className={cn(floatingError && 'absolute -bottom-5')}\n />\n </div>\n </FormItem>\n )}\n />\n ) : (\n <TimePicker className={'mt-2'} {...props} />\n );\n};\n"],"names":["MyCheckbox","control","name","label","rules","props","id","useId","jsx","FormField","field","FormLabel","jsxs","FormItem","FormControl","Checkbox","MyDatePicker","required","format","DATE","floatingError","placeholder","disabled","register","className","showTime","inputProps","formState","Popover","PopoverTrigger","Input","get","dayjs","cn","Calendar1","FormMessage","PopoverContent","Calendar","TimePicker","time","hour","minute","MyDateRangePicker","DateRangePicker","MyHtmlEditor","HtmlEditor","MyMaskInput","MaskInput","value","MyRadio","RadioGroupItem","MyShadcnSelect","options","onChange","hasError","handleChange","val","Select","SelectTrigger","SelectValue","SelectContent","option","SelectItem","MySwitch","Switch","MyTextarea","Textarea","MyTimePicker"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-semibold:600;--radius-xs:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--primary:var(--color-neutral-950);--secondary:var(--color-neutral-alpha-13);--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-50);--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:#30303033;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius-xs:.125rem;--color-neutral-alpha-0:rgb(from var(--color-neutral-alpha-base)r g b/.01%);--color-neutral-alpha-1:rgb(from var(--color-neutral-alpha-base)r g b/3%);--color-neutral-alpha-2:rgb(from var(--color-neutral-alpha-base)r g b/5%);--color-neutral-alpha-3:rgb(from var(--color-neutral-alpha-base)r g b/7%);--color-neutral-alpha-4:rgb(from var(--color-neutral-alpha-base)r g b/10%);--color-neutral-alpha-5:rgb(from var(--color-neutral-alpha-base)r g b/16%);--color-neutral-alpha-6:rgb(from var(--color-neutral-alpha-base)r g b/20%);--color-neutral-alpha-7:rgb(from var(--color-neutral-alpha-base)r g b/24%);--color-neutral-alpha-8:rgb(from var(--color-neutral-alpha-base)r g b/28%);--color-neutral-alpha-9:rgb(from var(--color-neutral-alpha-base)r g b/32%);--color-neutral-alpha-10:rgb(from var(--color-neutral-alpha-base)r g b/40%);--color-neutral-alpha-11:rgb(from var(--color-neutral-alpha-base)r g b/48%);--color-neutral-alpha-12:rgb(from var(--color-neutral-alpha-base)r g b/56%);--color-neutral-alpha-13:rgb(from var(--color-neutral-alpha-base)r g b/64%);--color-neutral-alpha-14:rgb(from var(--color-neutral-alpha-base)r g b/72%);--color-neutral-alpha-15:rgb(from var(--color-neutral-alpha-base)r g b/80%);--color-neutral-alpha-16:rgb(from var(--color-neutral-alpha-base)r g b/88%);--color-neutral-inverted-0:rgb(from var(--color-neutral-base)r g b/.01%);--color-neutral-inverted-1:rgb(from var(--color-neutral-base)r g b/3%);--color-neutral-inverted-2:rgb(from var(--color-neutral-base)r g b/5%);--color-neutral-inverted-3:rgb(from var(--color-neutral-base)r g b/7%);--color-neutral-inverted-4:rgb(from var(--color-neutral-base)r g b/10%);--color-neutral-inverted-5:rgb(from var(--color-neutral-base)r g b/16%);--color-neutral-inverted-6:rgb(from var(--color-neutral-base)r g b/20%);--color-neutral-inverted-7:rgb(from var(--color-neutral-base)r g b/24%);--color-neutral-inverted-8:rgb(from var(--color-neutral-base)r g b/28%);--color-neutral-inverted-9:rgb(from var(--color-neutral-base)r g b/32%);--color-neutral-inverted-10:rgb(from var(--color-neutral-base)r g b/40%);--color-neutral-inverted-11:rgb(from var(--color-neutral-base)r g b/48%);--color-neutral-inverted-12:rgb(from var(--color-neutral-base)r g b/56%);--color-neutral-inverted-13:rgb(from var(--color-neutral-base)r g b/64%);--color-neutral-inverted-14:rgb(from var(--color-neutral-base)r g b/72%);--color-neutral-inverted-15:rgb(from var(--color-neutral-base)r g b/80%);--color-neutral-inverted-16:rgb(from var(--color-neutral-base)r g b/88%);--color-item-primary:var(--color-neutral-950);--color-item-secondary:var(--color-neutral-alpha-13);--color-item-tertiary:var(--color-neutral-alpha-10);--color-item-quaternary:var(--color-neutral-alpha-7);--color-item-primary-primary:var(--color-blue-600);--color-item-primary-primary-hover:var(--color-blue-700);--color-item-primary-primary-active:var(--color-blue-600);--color-item-primary-primary-focus:var(--color-blue-200);--color-item-primary-secondary:var(--color-neutral-0);--color-item-primary-secondary-hover:var(--color-neutral-50);--color-item-primary-secondary-active:var(--color-neutral-100);--color-item-primary-tertiary:var(--color-neutral-alpha-1);--color-item-primary-tertiary-hover:var(--color-neutral-alpha-2);--color-item-primary-tertiary-active:var(--color-neutral-alpha-3);--color-item-primary-ghost:var(--color-neutral-alpha-0);--color-item-primary-ghost-hover:var(--color-neutral-alpha-2);--color-item-primary-ghost-active:var(--color-neutral-alpha-3);--color-item-primary-destructive:var(--color-red-600);--color-item-primary-destructive-hover:var(--color-red-700);--color-item-primary-destructive-active:var(--color-red-600);--color-item-primary-destructive-focus:var(--color-red-200);--color-item-inverted:var(--color-neutral-0);--color-item-inverted-secondary:var(--color-neutral-inverted-13);--color-item-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-inverted-quaternary:var(--color-neutral-inverted-7);--color-item-fixed:#090a0c;--color-item-fixed-secondary:#16191da3;--color-item-fixed-tertiary:#16191d66;--color-item-fixed-quaternary:#16191d3d;--color-item-fixed-inverted:var(--color-neutral-0);--color-item-fixed-inverted-secondary:var(--color-neutral-inverted-13);--color-item-fixed-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-fixed-inverted-quaternary:var(--color-neutral-inverted-7);--color-surface-base-primary:var(--color-neutral-0);--color-surface-base-secondary:var(--color-neutral-50);--color-surface-base-tertiary:var(--color-neutral-100);--color-surface-component-primary:var(--color-neutral-0);--color-surface-component-secondary:var(--color-neutral-0);--color-surface-component-tertiary:var(--color-neutral-0);--color-surface-base-inverted:var(--color-neutral-950);--color-surface-overlay:#343434;--color-surface-muted:var(--color-neutral-0);--color-surface-muted-hover:var(--color-neutral-50);--color-surface-muted-pressed:var(--color-neutral-100);--color-shadows-inner-0:rgba(var(--color-neutral-base),0);--color-shadows-inner-1:#16191d;--color-shadows-inner-2:#16191d;--color-shadows-drop-1:#16191d;--color-shadows-drop-2:#16191d;--color-shadows-drop-3:#16191d;--color-shadows-drop-4:#16191d;--color-shadows-highlight-1:var(--color-blue-200);--color-shadows-highlight-2:var(--color-blue-500);--color-shadows-danger-1:var(--color-red-200);--color-shadows-danger-2:#ee3a3a;--color-shadows-card-border:#16191d;--color-shadows-card-border-2:#16191d;--color-border-base:var(--border);--color-border-alpha-strong:var(--color-neutral-alpha-6);--color-border-alpha-light:var(--color-neutral-alpha-3);--color-border-alpha-subtle:var(--color-neutral-alpha-4);--color-border-light:var(--color-neutral-200)}.dark{--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-alpha-base);--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:#fff3;--input:0 0% 14.9%;--ring:0 0% 83.1%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--sidebar:var(--background);--sidebar-foreground:#f4f4f5;--sidebar-primary:#1d4ed8;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#27272a;--sidebar-ring:#3b82f6;--color-item-secondary:var(--color-neutral-inverted-13);--color-item-primary-tertiary:var(--color-neutral-inverted-2);--color-item-primary-tertiary-hover:var(--color-neutral-inverted-3);--color-item-primary-tertiary-active:var(--color-neutral-inverted-4);--color-surface-base-secondary:var(--color-neutral-inverted-2);--color-surface-base-tertiary:var(--color-neutral-200);--color-surface-component-primary:var(--color-neutral-100);--color-surface-component-secondary:var(--color-neutral-200);--color-surface-component-tertiary:#383838;--color-surface-base-inverted:var(--color-neutral-base);--color-surface-overlay:var(--color-neutral-inverted-3);--color-surface-muted:var(--color-neutral-100);--color-surface-muted-hover:var(--color-neutral-200);--color-surface-muted-pressed:#383838;--color-border-strong:var(--color-neutral-inverted-6);--color-shadow-inner-0:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-inner-1:rgb(from var(--color-neutral-base)r g b/8%);--color-shadow-inner-2:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-drop-1:#0000001f;--color-shadow-drop-2:#0003;--color-shadow-drop-3:#00000047;--color-shadow-drop-4:#0000005c;--color-shadow-card-border:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-card-border-2:rgb(from var(--color-neutral-base)r g b/0%);--color-border-alpha-strong:var(--color-neutral-inverted-6);--color-border-alpha-light:var(--color-neutral-inverted-4);--color-border-alpha-subtle:var(--color-neutral-inverted-5)}:root{--sidebar:var(--background-secondary);--sidebar-foreground:var(--primary);--sidebar-primary:#18181b;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e5e7eb;--sidebar-ring:#3b82f6}*{border-color:var(--color-border-alpha-light)}body{background-color:var(--background);font-family:var(--font-family-base);color:var(--color-item-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing)*2.5)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-8{right:calc(var(--spacing)*8)}.-bottom-5{bottom:calc(var(--spacing)*-5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-auto{bottom:auto}.left-2{left:calc(var(--spacing)*2)}.z-1{z-index:1}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-0\!{margin:calc(var(--spacing)*0)!important}.mx-auto{margin-inline:auto}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-1{margin-right:calc(var(--spacing)*1)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-full{width:100%;height:100%}.h-8{height:calc(var(--spacing)*8)}.h-8\.5{height:calc(var(--spacing)*8.5)}.h-16{height:calc(var(--spacing)*16)}.h-\[1\.2rem\]{height:1.2rem}.h-full{height:100%}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.max-h-full{max-height:100%}.min-h-10{min-height:calc(var(--spacing)*10)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-17{width:calc(var(--spacing)*17)}.w-\[1\.2rem\]{width:1.2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[95\%\]{max-width:95%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-16{min-width:calc(var(--spacing)*16)}.min-w-20{min-width:calc(var(--spacing)*20)}.min-w-24{min-width:calc(var(--spacing)*24)}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-border-alpha-light{border-color:var(--color-border-alpha-light)}.border-gray-300{border-color:var(--color-gray-300)}.border-item-primary{border-color:var(--color-item-primary-primary)}.border-transparent{border-color:#0000}.bg-bg,.bg-bg\/70{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/70{background-color:color-mix(in oklab,var(--background)70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-transparent\!{background-color:#0000!important}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pl-63\.75{padding-left:calc(var(--spacing)*63.75)}.text-center{text-align:center}.text-start{text-align:start}.text-body-sm-medium{font-size:.875rem;line-height:var(--tw-leading,1.25rem);font-weight:var(--tw-font-weight,500)}.text-body-xs-medium{font-size:.75rem;line-height:var(--tw-leading,1.125rem);font-weight:var(--tw-font-weight,500)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-500{color:var(--color-blue-500)}.text-foreground{color:var(--foreground)}.text-item-primary{color:var(--color-item-primary-primary)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-secondary{color:var(--color-item-secondary)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.accent-foreground{accent-color:var(--foreground)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:border-item-primary:hover{border-color:var(--color-item-primary-primary)}.hover\:opacity-80:hover{opacity:.8}}@media(min-width:48rem){.md\:inline\!{display:inline!important}}@media(min-width:64rem){.lg\:max-w-80\!{max-width:calc(var(--spacing)*80)!important}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:96rem){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.\[\&_button\]\:-top-1 button{top:calc(var(--spacing)*-1)}.\[\&\>tr\:nth-child\(even\)\]\:bg-bg-secondary>tr:nth-child(2n){background-color:var(--background-secondary)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--color-neutral-base:#fff;--color-neutral-0:var(--color-neutral-base);--color-neutral-50:#f9f9f9;--color-neutral-100:#f6f6f6;--color-neutral-200:#efefef;--color-neutral-300:#d8d8d8;--color-neutral-400:#a5a5a5;--color-neutral-500:#757575;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#252525;--color-neutral-900:#202020;--color-neutral-950:#171717;--color-neutral-alpha-base:#303030;--color-blue-50:#f0f7ff;--color-blue-100:#e5f2ff;--color-blue-200:#cce5ff;--color-blue-300:#9cf;--color-blue-400:#66b2ff;--color-blue-500:#1487fa;--color-blue-600:#1380ed;--color-blue-700:#1a79d8;--color-blue-800:#1d67b0;--color-blue-900:#1f558a;--color-blue-950:#173654;--color-green-50:#e8fcef;--color-green-100:#dcfce7;--color-green-200:#bbf7d0;--color-green-300:#81eea8;--color-green-400:#41dd7a;--color-green-500:#22c55d;--color-green-600:#17a34a;--color-green-700:#1a8f44;--color-green-800:#176936;--color-green-900:#14532d;--color-green-950:#052e16;--color-lime-50:#f3fddd;--color-lime-100:#ecfbcb;--color-lime-200:#d6f995;--color-lime-300:#bff164;--color-lime-400:#a3e635;--color-lime-500:#84cc15;--color-lime-600:#6bad0d;--color-lime-700:#581;--color-lime-800:#426713;--color-lime-900:#365313;--color-lime-950:#1b2d06;--color-cyan-50:#ecfeff;--color-cyan-100:#cefafe;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#24d3ee;--color-cyan-500:#00c3e4;--color-cyan-600:#02abd3;--color-cyan-700:#0586a9;--color-cyan-800:#0d6783;--color-cyan-900:#164e63;--color-cyan-950:#093344;--color-orange-50:#fff7d6;--color-orange-100:#fef0b9;--color-orange-200:#fde277;--color-orange-300:#fbd44c;--color-orange-400:#fbbf24;--color-orange-500:#f59e0c;--color-orange-600:#d97708;--color-orange-700:#b4540a;--color-orange-800:#92400d;--color-orange-900:#78350f;--color-orange-950:#451b03;--color-red-50:#fef6f6;--color-red-100:#fee7e6;--color-red-200:#fed7d7;--color-red-300:#fdb9b9;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2625;--color-red-700:#c81e1d;--color-red-800:#a01c1c;--color-red-900:#7f1c1d;--color-red-950:#450a0a;--color-purple-50:#f5f3ff;--color-purple-100:#ede9fe;--color-purple-200:#ddd6fe;--color-purple-300:#c3b6fd;--color-purple-400:#a88bfa;--color-purple-500:#8b5cf6;--color-purple-600:#7c3aed;--color-purple-700:#6d28d9;--color-purple-800:#5b21b6;--color-purple-900:#4c1d95;--color-purple-950:#2e1065;--color-indigo-50:#eef2ff;--color-indigo-100:#ede9fe;--color-indigo-200:#ddd6fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-indigo-950:#1e1b4b}.dark{--color-neutral-0:#131313;--color-neutral-50:#161616;--color-neutral-100:#202020;--color-neutral-200:#252525;--color-neutral-300:#404040;--color-neutral-400:#525252;--color-neutral-500:#757575;--color-neutral-600:#a3a3a3;--color-neutral-700:#e5e5e5;--color-neutral-800:#f5f5f5;--color-neutral-900:#f8f8f8;--color-neutral-950:#fff;--color-neutral-alpha-base:#202020;--color-blue-50:#11273c;--color-blue-100:#1d4f81;--color-blue-200:#1b61a6;--color-blue-300:#1b76d0;--color-blue-400:#1282f3;--color-blue-500:#0078f0;--color-blue-600:#5cadff;--color-blue-700:#8fc7ff;--color-blue-800:#c2e0ff;--color-blue-900:#dbedff;--color-blue-950:#e5f2ff;--color-green-50:#042512;--color-green-100:#124a28;--color-green-200:#176936;--color-green-300:#1a8f44;--color-green-400:#17a34a;--color-green-500:#20bb58;--color-green-600:#41dd7a;--color-green-700:#78eda2;--color-green-800:#adf5c6;--color-green-900:#d5fbe2;--color-green-950:#e4fcec;--color-lime-50:#1e3107;--color-lime-100:#333;--color-lime-200:#436813;--color-lime-300:#558910;--color-lime-400:#66a60d;--color-lime-500:#81c714;--color-lime-600:#9ce425;--color-lime-700:#b9f057;--color-lime-800:#d4f890;--color-lime-900:#e7fabd;--color-lime-950:#f2fdd8;--color-cyan-50:#072936;--color-cyan-100:#134558;--color-cyan-200:#0c5b74;--color-cyan-300:#047e9f;--color-cyan-400:#02a4ca;--color-cyan-500:#00bbdb;--color-cyan-600:#1cd1ed;--color-cyan-700:#5de7f9;--color-cyan-800:#9cf2fc;--color-cyan-900:#c8f9fe;--color-cyan-950:#e5feff;--color-orange-50:#3b1703;--color-orange-100:#6d300e;--color-orange-200:#883c0c;--color-orange-300:#a94f09;--color-orange-400:#cf7108;--color-orange-500:#eb970a;--color-orange-600:#fbba14;--color-orange-700:#fbcf37;--color-orange-800:#fde37d;--color-orange-900:#fef0b9;--color-orange-950:#fff6d1;--color-red-50:#430909;--color-red-100:#751a1b;--color-red-200:#8f1919;--color-red-300:#bb1c1b;--color-red-400:#dc2423;--color-red-500:#ee3a3a;--color-red-600:#f75959;--color-red-700:#fc7373;--color-red-800:#fec8c8;--color-red-900:#fee2e1;--color-red-950:#fef1f1;--color-purple-50:#2a0f5c;--color-purple-100:#481b8d;--color-purple-200:#561fad;--color-purple-300:#6825d0;--color-purple-400:#7936ed;--color-purple-500:#8756f6;--color-purple-600:#a385fa;--color-purple-700:#beb0fd;--color-purple-800:#dad2fe;--color-purple-900:#e7e2fe;--color-purple-950:#f2f0ff;--color-indigo-50:#1e1b4b;--color-indigo-100:#312e81;--color-indigo-200:#3730a3;--color-indigo-300:#4338ca;--color-indigo-400:#4f46e5;--color-indigo-500:#6366f1;--color-indigo-600:#818cf8;--color-indigo-700:#a5b4fc;--color-indigo-800:#ddd6fe;--color-indigo-900:#ede9fe;--color-indigo-950:#eef2ff}.Toastify__toast-container.Toastify__toast-container--bottom-left{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
|
|
1
|
+
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-semibold:600;--radius-xs:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--primary:var(--color-neutral-950);--secondary:var(--color-neutral-alpha-13);--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-50);--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:#30303033;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius-xs:.125rem;--color-neutral-alpha-0:rgb(from var(--color-neutral-alpha-base)r g b/.01%);--color-neutral-alpha-1:rgb(from var(--color-neutral-alpha-base)r g b/3%);--color-neutral-alpha-2:rgb(from var(--color-neutral-alpha-base)r g b/5%);--color-neutral-alpha-3:rgb(from var(--color-neutral-alpha-base)r g b/7%);--color-neutral-alpha-4:rgb(from var(--color-neutral-alpha-base)r g b/10%);--color-neutral-alpha-5:rgb(from var(--color-neutral-alpha-base)r g b/16%);--color-neutral-alpha-6:rgb(from var(--color-neutral-alpha-base)r g b/20%);--color-neutral-alpha-7:rgb(from var(--color-neutral-alpha-base)r g b/24%);--color-neutral-alpha-8:rgb(from var(--color-neutral-alpha-base)r g b/28%);--color-neutral-alpha-9:rgb(from var(--color-neutral-alpha-base)r g b/32%);--color-neutral-alpha-10:rgb(from var(--color-neutral-alpha-base)r g b/40%);--color-neutral-alpha-11:rgb(from var(--color-neutral-alpha-base)r g b/48%);--color-neutral-alpha-12:rgb(from var(--color-neutral-alpha-base)r g b/56%);--color-neutral-alpha-13:rgb(from var(--color-neutral-alpha-base)r g b/64%);--color-neutral-alpha-14:rgb(from var(--color-neutral-alpha-base)r g b/72%);--color-neutral-alpha-15:rgb(from var(--color-neutral-alpha-base)r g b/80%);--color-neutral-alpha-16:rgb(from var(--color-neutral-alpha-base)r g b/88%);--color-neutral-inverted-0:rgb(from var(--color-neutral-base)r g b/.01%);--color-neutral-inverted-1:rgb(from var(--color-neutral-base)r g b/3%);--color-neutral-inverted-2:rgb(from var(--color-neutral-base)r g b/5%);--color-neutral-inverted-3:rgb(from var(--color-neutral-base)r g b/7%);--color-neutral-inverted-4:rgb(from var(--color-neutral-base)r g b/10%);--color-neutral-inverted-5:rgb(from var(--color-neutral-base)r g b/16%);--color-neutral-inverted-6:rgb(from var(--color-neutral-base)r g b/20%);--color-neutral-inverted-7:rgb(from var(--color-neutral-base)r g b/24%);--color-neutral-inverted-8:rgb(from var(--color-neutral-base)r g b/28%);--color-neutral-inverted-9:rgb(from var(--color-neutral-base)r g b/32%);--color-neutral-inverted-10:rgb(from var(--color-neutral-base)r g b/40%);--color-neutral-inverted-11:rgb(from var(--color-neutral-base)r g b/48%);--color-neutral-inverted-12:rgb(from var(--color-neutral-base)r g b/56%);--color-neutral-inverted-13:rgb(from var(--color-neutral-base)r g b/64%);--color-neutral-inverted-14:rgb(from var(--color-neutral-base)r g b/72%);--color-neutral-inverted-15:rgb(from var(--color-neutral-base)r g b/80%);--color-neutral-inverted-16:rgb(from var(--color-neutral-base)r g b/88%);--color-item-primary:var(--color-neutral-950);--color-item-secondary:var(--color-neutral-alpha-13);--color-item-tertiary:var(--color-neutral-alpha-10);--color-item-quaternary:var(--color-neutral-alpha-7);--color-item-primary-primary:var(--color-blue-600);--color-item-primary-primary-hover:var(--color-blue-700);--color-item-primary-primary-active:var(--color-blue-600);--color-item-primary-primary-focus:var(--color-blue-200);--color-item-primary-secondary:var(--color-neutral-0);--color-item-primary-secondary-hover:var(--color-neutral-50);--color-item-primary-secondary-active:var(--color-neutral-100);--color-item-primary-tertiary:var(--color-neutral-alpha-1);--color-item-primary-tertiary-hover:var(--color-neutral-alpha-2);--color-item-primary-tertiary-active:var(--color-neutral-alpha-3);--color-item-primary-ghost:var(--color-neutral-alpha-0);--color-item-primary-ghost-hover:var(--color-neutral-alpha-2);--color-item-primary-ghost-active:var(--color-neutral-alpha-3);--color-item-primary-destructive:var(--color-red-600);--color-item-primary-destructive-hover:var(--color-red-700);--color-item-primary-destructive-active:var(--color-red-600);--color-item-primary-destructive-focus:var(--color-red-200);--color-item-inverted:var(--color-neutral-0);--color-item-inverted-secondary:var(--color-neutral-inverted-13);--color-item-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-inverted-quaternary:var(--color-neutral-inverted-7);--color-item-fixed:#090a0c;--color-item-fixed-secondary:#16191da3;--color-item-fixed-tertiary:#16191d66;--color-item-fixed-quaternary:#16191d3d;--color-item-fixed-inverted:var(--color-neutral-0);--color-item-fixed-inverted-secondary:var(--color-neutral-inverted-13);--color-item-fixed-inverted-tertiary:var(--color-neutral-inverted-10);--color-item-fixed-inverted-quaternary:var(--color-neutral-inverted-7);--color-surface-base-primary:var(--color-neutral-0);--color-surface-base-secondary:var(--color-neutral-50);--color-surface-base-tertiary:var(--color-neutral-100);--color-surface-component-primary:var(--color-neutral-0);--color-surface-component-secondary:var(--color-neutral-0);--color-surface-component-tertiary:var(--color-neutral-0);--color-surface-base-inverted:var(--color-neutral-950);--color-surface-overlay:#343434;--color-surface-muted:var(--color-neutral-0);--color-surface-muted-hover:var(--color-neutral-50);--color-surface-muted-pressed:var(--color-neutral-100);--color-shadows-inner-0:rgba(var(--color-neutral-base),0);--color-shadows-inner-1:#16191d;--color-shadows-inner-2:#16191d;--color-shadows-drop-1:#16191d;--color-shadows-drop-2:#16191d;--color-shadows-drop-3:#16191d;--color-shadows-drop-4:#16191d;--color-shadows-highlight-1:var(--color-blue-200);--color-shadows-highlight-2:var(--color-blue-500);--color-shadows-danger-1:var(--color-red-200);--color-shadows-danger-2:#ee3a3a;--color-shadows-card-border:#16191d;--color-shadows-card-border-2:#16191d;--color-border-base:var(--border);--color-border-alpha-strong:var(--color-neutral-alpha-6);--color-border-alpha-light:var(--color-neutral-alpha-3);--color-border-alpha-subtle:var(--color-neutral-alpha-4);--color-border-light:var(--color-neutral-200)}.dark{--background:var(--color-neutral-0);--background-secondary:var(--color-neutral-alpha-base);--foreground:0 0% 98%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:#fff3;--input:0 0% 14.9%;--ring:0 0% 83.1%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--sidebar:var(--background);--sidebar-foreground:#f4f4f5;--sidebar-primary:#1d4ed8;--sidebar-primary-foreground:#fff;--sidebar-accent:#27272a;--sidebar-accent-foreground:#f4f4f5;--sidebar-border:#27272a;--sidebar-ring:#3b82f6;--color-item-secondary:var(--color-neutral-inverted-13);--color-item-primary-tertiary:var(--color-neutral-inverted-2);--color-item-primary-tertiary-hover:var(--color-neutral-inverted-3);--color-item-primary-tertiary-active:var(--color-neutral-inverted-4);--color-surface-base-secondary:var(--color-neutral-inverted-2);--color-surface-base-tertiary:var(--color-neutral-200);--color-surface-component-primary:var(--color-neutral-100);--color-surface-component-secondary:var(--color-neutral-200);--color-surface-component-tertiary:#383838;--color-surface-base-inverted:var(--color-neutral-base);--color-surface-overlay:var(--color-neutral-inverted-3);--color-surface-muted:var(--color-neutral-100);--color-surface-muted-hover:var(--color-neutral-200);--color-surface-muted-pressed:#383838;--color-border-strong:var(--color-neutral-inverted-6);--color-shadow-inner-0:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-inner-1:rgb(from var(--color-neutral-base)r g b/8%);--color-shadow-inner-2:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-drop-1:#0000001f;--color-shadow-drop-2:#0003;--color-shadow-drop-3:#00000047;--color-shadow-drop-4:#0000005c;--color-shadow-card-border:rgb(from var(--color-neutral-base)r g b/12%);--color-shadow-card-border-2:rgb(from var(--color-neutral-base)r g b/0%);--color-border-alpha-strong:var(--color-neutral-inverted-6);--color-border-alpha-light:var(--color-neutral-inverted-4);--color-border-alpha-subtle:var(--color-neutral-inverted-5)}:root{--sidebar:var(--background-secondary);--sidebar-foreground:var(--primary);--sidebar-primary:#18181b;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f4f4f5;--sidebar-accent-foreground:#18181b;--sidebar-border:#e5e7eb;--sidebar-ring:#3b82f6}*{border-color:var(--color-border-alpha-light)}body{background-color:var(--background);font-family:var(--font-family-base);color:var(--color-item-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing)*2.5)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-8{right:calc(var(--spacing)*8)}.-bottom-5{bottom:calc(var(--spacing)*-5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-auto{bottom:auto}.left-2{left:calc(var(--spacing)*2)}.z-1{z-index:1}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-0\!{margin:calc(var(--spacing)*0)!important}.mx-auto{margin-inline:auto}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-1{margin-right:calc(var(--spacing)*1)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-full{width:100%;height:100%}.h-8{height:calc(var(--spacing)*8)}.h-8\.5{height:calc(var(--spacing)*8.5)}.h-16{height:calc(var(--spacing)*16)}.h-\[1\.2rem\]{height:1.2rem}.h-full{height:100%}.max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.max-h-full{max-height:100%}.min-h-10{min-height:calc(var(--spacing)*10)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-17{width:calc(var(--spacing)*17)}.w-\[1\.2rem\]{width:1.2rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[95\%\]{max-width:95%}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-16{min-width:calc(var(--spacing)*16)}.min-w-20{min-width:calc(var(--spacing)*20)}.min-w-24{min-width:calc(var(--spacing)*24)}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-3{border-style:var(--tw-border-style);border-width:3px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-border-alpha-light{border-color:var(--color-border-alpha-light)}.border-gray-300{border-color:var(--color-gray-300)}.border-item-primary{border-color:var(--color-item-primary-primary)}.border-transparent{border-color:#0000}.bg-bg,.bg-bg\/70{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/70{background-color:color-mix(in oklab,var(--background)70%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-transparent\!{background-color:#0000!important}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pl-63\.75{padding-left:calc(var(--spacing)*63.75)}.text-center{text-align:center}.text-start{text-align:start}.text-body-sm-medium{font-size:.875rem;line-height:var(--tw-leading,1.25rem);font-weight:var(--tw-font-weight,500)}.text-body-xs-medium{font-size:.75rem;line-height:var(--tw-leading,1.125rem);font-weight:var(--tw-font-weight,500)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-500{color:var(--color-blue-500)}.text-foreground{color:var(--foreground)}.text-item-primary{color:var(--color-item-primary-primary)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-secondary{color:var(--color-item-secondary)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.accent-foreground{accent-color:var(--foreground)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:border-item-primary:hover{border-color:var(--color-item-primary-primary)}.hover\:opacity-80:hover{opacity:.8}}@media(min-width:48rem){.md\:inline\!{display:inline!important}}@media(min-width:64rem){.lg\:max-w-80\!{max-width:calc(var(--spacing)*80)!important}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}}@media(min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:96rem){.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.\[\&_button\]\:-top-1 button{top:calc(var(--spacing)*-1)}.\[\&\>tr\:nth-child\(even\)\]\:bg-bg-secondary>tr:nth-child(2n){background-color:var(--background-secondary)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--color-neutral-base:#fff;--color-neutral-0:var(--color-neutral-base);--color-neutral-50:#f9f9f9;--color-neutral-100:#f6f6f6;--color-neutral-200:#efefef;--color-neutral-300:#d8d8d8;--color-neutral-400:#a5a5a5;--color-neutral-500:#757575;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#252525;--color-neutral-900:#202020;--color-neutral-950:#171717;--color-neutral-alpha-base:#303030;--color-blue-50:#f0f7ff;--color-blue-100:#e5f2ff;--color-blue-200:#cce5ff;--color-blue-300:#9cf;--color-blue-400:#66b2ff;--color-blue-500:#1487fa;--color-blue-600:#1380ed;--color-blue-700:#1a79d8;--color-blue-800:#1d67b0;--color-blue-900:#1f558a;--color-blue-950:#173654;--color-green-50:#e8fcef;--color-green-100:#dcfce7;--color-green-200:#bbf7d0;--color-green-300:#81eea8;--color-green-400:#41dd7a;--color-green-500:#22c55d;--color-green-600:#17a34a;--color-green-700:#1a8f44;--color-green-800:#176936;--color-green-900:#14532d;--color-green-950:#052e16;--color-lime-50:#f3fddd;--color-lime-100:#ecfbcb;--color-lime-200:#d6f995;--color-lime-300:#bff164;--color-lime-400:#a3e635;--color-lime-500:#84cc15;--color-lime-600:#6bad0d;--color-lime-700:#581;--color-lime-800:#426713;--color-lime-900:#365313;--color-lime-950:#1b2d06;--color-cyan-50:#ecfeff;--color-cyan-100:#cefafe;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#24d3ee;--color-cyan-500:#00c3e4;--color-cyan-600:#02abd3;--color-cyan-700:#0586a9;--color-cyan-800:#0d6783;--color-cyan-900:#164e63;--color-cyan-950:#093344;--color-orange-50:#fff7d6;--color-orange-100:#fef0b9;--color-orange-200:#fde277;--color-orange-300:#fbd44c;--color-orange-400:#fbbf24;--color-orange-500:#f59e0c;--color-orange-600:#d97708;--color-orange-700:#b4540a;--color-orange-800:#92400d;--color-orange-900:#78350f;--color-orange-950:#451b03;--color-red-50:#fef6f6;--color-red-100:#fee7e6;--color-red-200:#fed7d7;--color-red-300:#fdb9b9;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2625;--color-red-700:#c81e1d;--color-red-800:#a01c1c;--color-red-900:#7f1c1d;--color-red-950:#450a0a;--color-purple-50:#f5f3ff;--color-purple-100:#ede9fe;--color-purple-200:#ddd6fe;--color-purple-300:#c3b6fd;--color-purple-400:#a88bfa;--color-purple-500:#8b5cf6;--color-purple-600:#7c3aed;--color-purple-700:#6d28d9;--color-purple-800:#5b21b6;--color-purple-900:#4c1d95;--color-purple-950:#2e1065;--color-indigo-50:#eef2ff;--color-indigo-100:#ede9fe;--color-indigo-200:#ddd6fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-indigo-950:#1e1b4b}.dark{--color-neutral-0:#131313;--color-neutral-50:#161616;--color-neutral-100:#202020;--color-neutral-200:#252525;--color-neutral-300:#404040;--color-neutral-400:#525252;--color-neutral-500:#757575;--color-neutral-600:#a3a3a3;--color-neutral-700:#e5e5e5;--color-neutral-800:#f5f5f5;--color-neutral-900:#f8f8f8;--color-neutral-950:#fff;--color-neutral-alpha-base:#202020;--color-blue-50:#11273c;--color-blue-100:#1d4f81;--color-blue-200:#1b61a6;--color-blue-300:#1b76d0;--color-blue-400:#1282f3;--color-blue-500:#0078f0;--color-blue-600:#5cadff;--color-blue-700:#8fc7ff;--color-blue-800:#c2e0ff;--color-blue-900:#dbedff;--color-blue-950:#e5f2ff;--color-green-50:#042512;--color-green-100:#124a28;--color-green-200:#176936;--color-green-300:#1a8f44;--color-green-400:#17a34a;--color-green-500:#20bb58;--color-green-600:#41dd7a;--color-green-700:#78eda2;--color-green-800:#adf5c6;--color-green-900:#d5fbe2;--color-green-950:#e4fcec;--color-lime-50:#1e3107;--color-lime-100:#333;--color-lime-200:#436813;--color-lime-300:#558910;--color-lime-400:#66a60d;--color-lime-500:#81c714;--color-lime-600:#9ce425;--color-lime-700:#b9f057;--color-lime-800:#d4f890;--color-lime-900:#e7fabd;--color-lime-950:#f2fdd8;--color-cyan-50:#072936;--color-cyan-100:#134558;--color-cyan-200:#0c5b74;--color-cyan-300:#047e9f;--color-cyan-400:#02a4ca;--color-cyan-500:#00bbdb;--color-cyan-600:#1cd1ed;--color-cyan-700:#5de7f9;--color-cyan-800:#9cf2fc;--color-cyan-900:#c8f9fe;--color-cyan-950:#e5feff;--color-orange-50:#3b1703;--color-orange-100:#6d300e;--color-orange-200:#883c0c;--color-orange-300:#a94f09;--color-orange-400:#cf7108;--color-orange-500:#eb970a;--color-orange-600:#fbba14;--color-orange-700:#fbcf37;--color-orange-800:#fde37d;--color-orange-900:#fef0b9;--color-orange-950:#fff6d1;--color-red-50:#430909;--color-red-100:#751a1b;--color-red-200:#8f1919;--color-red-300:#bb1c1b;--color-red-400:#dc2423;--color-red-500:#ee3a3a;--color-red-600:#f75959;--color-red-700:#fc7373;--color-red-800:#fec8c8;--color-red-900:#fee2e1;--color-red-950:#fef1f1;--color-purple-50:#2a0f5c;--color-purple-100:#481b8d;--color-purple-200:#561fad;--color-purple-300:#6825d0;--color-purple-400:#7936ed;--color-purple-500:#8756f6;--color-purple-600:#a385fa;--color-purple-700:#beb0fd;--color-purple-800:#dad2fe;--color-purple-900:#e7e2fe;--color-purple-950:#f2f0ff;--color-indigo-50:#1e1b4b;--color-indigo-100:#312e81;--color-indigo-200:#3730a3;--color-indigo-300:#4338ca;--color-indigo-400:#4f46e5;--color-indigo-500:#6366f1;--color-indigo-600:#818cf8;--color-indigo-700:#a5b4fc;--color-indigo-800:#ddd6fe;--color-indigo-900:#ede9fe;--color-indigo-950:#eef2ff}.Toastify__toast-container.Toastify__toast-container--bottom-left{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
|
package/dist/types/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/App.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/App.tsx"],"names":[],"mappings":"AAYA,iBAAS,GAAG,4CAyIX;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyCheckbox.d.ts","sourceRoot":"","sources":["../../../../src/components/form/MyCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAIlB,KAAK,aAAa,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,YAAY,SAAS,WAAW,IAC1D,aAAa,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,YAAY,SAAS,WAAW,EAAE,2CAM1D,eAAe,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"MyCheckbox.d.ts","sourceRoot":"","sources":["../../../../src/components/form/MyCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAIlB,KAAK,aAAa,EAEnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,YAAY,SAAS,WAAW,IAC1D,aAAa,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,YAAY,SAAS,WAAW,EAAE,2CAM1D,eAAe,CAAC,YAAY,CAAC,mDA2B/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MyRadio.d.ts","sourceRoot":"","sources":["../../../../src/components/form/MyRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAElB,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,KAAK,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,YAAY,SAAS,WAAW,IACvD,aAAa,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,OAAO,GAAI,YAAY,SAAS,WAAW,EAAE,kDAOhD,YAAY,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"MyRadio.d.ts","sourceRoot":"","sources":["../../../../src/components/form/MyRadio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAElB,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAgB,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,KAAK,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,YAAY,SAAS,WAAW,IACvD,aAAa,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,OAAO,GAAI,YAAY,SAAS,WAAW,EAAE,kDAOhD,YAAY,CAAC,YAAY,CAAC,mDAgC5B,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySwitch.d.ts","sourceRoot":"","sources":["../../../../src/components/form/MySwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAGlB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,YAAY,SAAS,WAAW,IACxD,aAAa,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GAAI,YAAY,SAAS,WAAW,EAAE,2CAMxD,aAAa,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"MySwitch.d.ts","sourceRoot":"","sources":["../../../../src/components/form/MySwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EAGlB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,YAAY,SAAS,WAAW,IACxD,aAAa,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GAAI,YAAY,SAAS,WAAW,EAAE,2CAMxD,aAAa,CAAC,YAAY,CAAC,mDA4B7B,CAAC"}
|