@parrot-co/parrot-ui 0.1.28 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/assertions.ts","../src/utils/dom.ts","../src/components/input-label/input-label.tsx","../src/components/input-error/input-error.tsx","../src/components/space/space.tsx","../src/components/theme/theme-provider.tsx","../src/components/form/field.tsx","../src/components/input/input.tsx","../src/components/loader/loader.tsx","../src/utils/object.ts","../src/components/button/button-group.tsx","../src/components/button/button.tsx","../src/components/button/icon-button.tsx","../src/components/button/toggle-button.tsx","../src/components/input/number-input.tsx","../src/icons/index.tsx","../src/utils/theme.ts","../src/utils/helpers.ts","../src/components/text/text.tsx","../src/components/textarea/textarea.tsx","../src/components/checkbox/checkbox-group.tsx","../src/components/checkbox/checkbox.tsx","../src/components/checkbox/checkbox-item.tsx","../src/components/menu/menu.tsx","../src/components/list-box/list-box.tsx","../src/components/combo-box/combo-box.tsx","../src/components/radio/radio.tsx","../src/components/radio/radio-card.tsx","../src/components/radio/radio-item.tsx","../src/components/tag/tag.tsx","../src/components/select/select.tsx","../src/components/date/calendar.tsx","../src/components/date/range-calendar.tsx","../src/components/date/date-segments.tsx","../src/components/date/date-field.tsx","../src/components/date/time-field.tsx","../src/components/date/date-picker.tsx","../src/components/date/date-range-picker.tsx","../src/components/avatar/avatar.tsx","../src/components/file-uploader/file-uploader.tsx","../src/components/separator/separator.tsx","../src/components/progress/progress.tsx","../src/components/switch/switch.tsx","../src/components/slider/slider.tsx","../src/components/sticker/sticker.tsx","../src/components/tabs/tabs.tsx","../src/components/table/table.tsx","../src/components/timeline/timeline.tsx","../src/components/modal/modal.tsx","../src/utils/regex.ts","../src/hooks/use-controlled-state.tsx","../src/components/tag-input/tag-input.tsx","../src/components/popover/popover.tsx","../src/components/tag-group/tag-group.tsx","../src/components/color/color-picker.tsx","../src/components/color/color-area.tsx","../src/components/color/color-field.tsx","../src/components/color/color-swatch.tsx","../src/components/color/color-slider.tsx","../src/components/color/color.utils.tsx","../src/components/toggle-group/toggle-group.tsx"],"names":["React","React2","React3","React4","useContextProps","React6","RACInput","id","React7","React8","React9","RACButton","React11","RACToggleButton","React12","React13","React15","React16","TextField","RACTextArea","React17","RACCheckboxGroup","React18","React19","CheckboxField","CheckboxButton","React20","RACMenuTrigger","RACPopover","RACMenu","RACMenuItem","RACMenuSection","React21","RACListBox","RACListBoxItem","RACListBoxSection","Header","React22","RACComboBox","React23","RACRadioGroup","React24","RadioField","RadioButton","React25","React27","RACSelect","React28","RACCalendar","React29","RACRangeCalendar","React30","RACDateInput","React31","RACDateField","Group","React32","RACTimeField","React33","RACDatePicker","parseDate","React34","RACDateRangePicker","React35","React37","React38","RACProgressBar","React39","React40","RACSlider","React42","RACTabs","RACTabList","RACTab","RACTabPanel","React43","RACTable","RACTableHeader","RACColumn","RACTableBody","RACRow","RACCell","React45","RACModal","RACDialog","React46","value","React47","RACTagGroup","RACTag","React48","useOverlayTriggerState","React49","TagList","React50","color","React51","RACColorArea","React52","RACColorField","React53","RACColorSwatchPicker","RACColorSwatchPickerItem","RACColorSwatch","React54","RACColorSlider","SliderTrack","ColorThumb","parseColor","AriaParseColor","React55"],"mappings":"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","file":"index.mjs","sourcesContent":["export function isNumber(value: unknown): boolean {\n return typeof value === \"number\";\n}\n\nexport function isArray(value: unknown): boolean {\n return value !== null && Array.isArray(value);\n}\n\nexport function isEmptyArray(value: Array<unknown>): boolean {\n return isArray(value) && value.length === 0;\n}\n\nexport function isObject(value: object): boolean {\n return (\n (typeof value === \"object\" || typeof value === \"function\") &&\n !Array.isArray(value) &&\n value !== null\n );\n}\n\nexport function isEmptyObject(value: object) {\n return isObject(value) && Object.keys(value).length === 0;\n}\n\nexport function objectHasEmptyValue(value: object) {\n return (\n Object.values(value).filter((value) => {\n return value === \"\" || value === undefined || value === null;\n }).length > 0\n );\n}\n\nexport function isUndefinedOrNull(value: unknown) {\n return value == null;\n}\n\nexport function isUndefined(value: unknown) {\n return value === undefined;\n}","import { twMerge } from \"tailwind-merge\";\nimport { isArray, isObject } from \"./assertions\";\n\nexport type ConditionalClassNameObject = Record<string, boolean>;\n// cns(\"p-button\", {space: true, firs-item:false}, className, [className], ()=>\"hello world\")\nfunction processClassValue(value: any): string | null {\n if (!value) {\n return null;\n }\n\n if (typeof value === \"function\") {\n return processClassValue(value?.());\n }\n\n if (isArray(value)) {\n let i = 0;\n let temp = \"\";\n while (i < value.length) {\n const result = processClassValue(value[i++]);\n if (result) {\n temp && (temp += \" \");\n temp += `${result}`;\n }\n }\n return temp;\n }\n\n if (isObject(value)) {\n let str = \"\";\n for (const key in value) {\n if (value[key]) {\n str && (str += \" \");\n str += `${key}`;\n }\n }\n return str;\n }\n\n return value;\n}\n\nexport function cx(...args: any[]): string {\n let i = 0;\n let classStr = \"\";\n\n while (i < args.length) {\n const result = processClassValue(args[i++]);\n if (result) {\n classStr && (classStr += \" \");\n classStr += result;\n }\n }\n\n return classStr;\n}\n\nexport function cn(...args: any[]): string {\n return twMerge(cx(...args));\n}\n\nexport type RefType<T> =\n | React.MutableRefObject<T>\n | ((node: T) => void)\n | null\n | undefined;\n\nexport function mergeRefs<T>(...refs: Array<RefType<T>>) {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref && typeof ref === \"object\") {\n ref.current = node;\n }\n }\n };\n}\n\nconst validDOMProperties: Set<string> = new Set([\n // Common HTML attributes\n \"accept\",\n \"acceptCharset\",\n \"accessKey\",\n \"action\",\n \"allowFullScreen\",\n \"allowTransparency\",\n \"alt\",\n \"async\",\n \"autoComplete\",\n \"autoFocus\",\n \"autoPlay\",\n \"capture\",\n \"cellPadding\",\n \"cellSpacing\",\n \"challenge\",\n \"charSet\",\n \"checked\",\n \"cite\",\n \"classID\",\n \"className\",\n \"colSpan\",\n \"cols\",\n \"content\",\n \"contentEditable\",\n \"contextMenu\",\n \"controls\",\n \"coords\",\n \"crossOrigin\",\n \"data\",\n \"dateTime\",\n \"default\",\n \"defer\",\n \"dir\",\n \"disabled\",\n \"download\",\n \"draggable\",\n \"encType\",\n \"form\",\n \"formAction\",\n \"formEncType\",\n \"formMethod\",\n \"formNoValidate\",\n \"formTarget\",\n \"frameBorder\",\n \"headers\",\n \"height\",\n \"hidden\",\n \"high\",\n \"href\",\n \"hrefLang\",\n \"htmlFor\",\n \"httpEquiv\",\n \"icon\",\n \"id\",\n \"inputMode\",\n \"integrity\",\n \"is\",\n \"keyParams\",\n \"keyType\",\n \"kind\",\n \"label\",\n \"lang\",\n \"list\",\n \"loop\",\n \"low\",\n \"manifest\",\n \"marginHeight\",\n \"marginWidth\",\n \"max\",\n \"maxLength\",\n \"media\",\n \"mediaGroup\",\n \"method\",\n \"min\",\n \"minLength\",\n \"multiple\",\n \"muted\",\n \"name\",\n \"noValidate\",\n \"nonce\",\n \"open\",\n \"optimum\",\n \"pattern\",\n \"placeholder\",\n \"poster\",\n \"preload\",\n \"profile\",\n \"radioGroup\",\n \"readOnly\",\n \"referrerPolicy\",\n \"rel\",\n \"required\",\n \"reversed\",\n \"role\",\n \"rowSpan\",\n \"rows\",\n \"sandbox\",\n \"scope\",\n \"scoped\",\n \"scrolling\",\n \"seamless\",\n \"selected\",\n \"shape\",\n \"size\",\n \"sizes\",\n \"span\",\n \"spellCheck\",\n \"src\",\n \"srcDoc\",\n \"srcLang\",\n \"srcSet\",\n \"start\",\n \"step\",\n \"style\",\n \"summary\",\n \"tabIndex\",\n \"target\",\n \"title\",\n \"type\",\n \"useMap\",\n \"value\",\n \"width\",\n \"wmode\",\n \"wrap\",\n // Event handlers\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionEnd\",\n \"onCompositionStart\",\n \"onCompositionUpdate\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"onFocus\",\n \"onBlur\",\n \"onChange\",\n \"onInput\",\n \"onInvalid\",\n \"onSubmit\",\n \"onClick\",\n \"onContextMenu\",\n \"onDoubleClick\",\n \"onDrag\",\n \"onDragEnd\",\n \"onDragEnter\",\n \"onDragExit\",\n \"onDragLeave\",\n \"onDragOver\",\n \"onDragStart\",\n \"onDrop\",\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onSelect\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onScroll\",\n \"onWheel\",\n \"onAbort\",\n \"onCanPlay\",\n \"onCanPlayThrough\",\n \"onDurationChange\",\n \"onEmptied\",\n \"onEncrypted\",\n \"onEnded\",\n \"onError\",\n \"onLoadedData\",\n \"onLoadedMetadata\",\n \"onLoadStart\",\n \"onPause\",\n \"onPlay\",\n \"onPlaying\",\n \"onProgress\",\n \"onRateChange\",\n \"onSeeked\",\n \"onSeeking\",\n \"onStalled\",\n \"onSuspend\",\n \"onTimeUpdate\",\n \"onVolumeChange\",\n \"onWaiting\",\n \"onLoad\",\n \"onAnimationStart\",\n \"onAnimationEnd\",\n \"onAnimationIteration\",\n \"onTransitionEnd\",\n \"onToggle\",\n]);\n\nexport function filterDOMProps(props: Record<string, any>) {\n const newProps = {} as Record<string, any>;\n for (const key in props) {\n if (!key.startsWith(\"data-\") && !validDOMProperties.has(key)) {\n continue;\n }\n newProps[key] = props[key];\n }\n return newProps;\n}\n","import * as React from \"react\";\nimport {\n LabelContext,\n useContextProps,\n type LabelProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\nexport interface InputLabelProps\n extends Omit<LabelProps, \"className\" | \"children\"> {\n color?: Color;\n className?: string;\n children?: React.ReactNode;\n ref?: React.Ref<HTMLLabelElement>;\n}\n\nexport function InputLabel({\n ref,\n color,\n className,\n children,\n ...props\n}: InputLabelProps) {\n // Auto-wire htmlFor/id when rendered inside a RAC field (which provides LabelContext).\n const [merged, mergedRef] = useContextProps(\n props as LabelProps,\n (ref ?? null) as React.ForwardedRef<HTMLLabelElement>,\n LabelContext\n );\n\n // RAC's LabelContext may carry an elementType (as RAC's own Label honors);\n // render it, defaulting to <label>. Our className/children win over any the\n // context provides, so we let them fall through the spread.\n const { elementType: ElementType = \"label\", ...labelProps } =\n merged as LabelProps & { elementType?: React.ElementType };\n\n return (\n <ElementType\n {...(labelProps as React.LabelHTMLAttributes<HTMLLabelElement>)}\n ref={mergedRef as React.Ref<HTMLLabelElement>}\n data-color={color}\n className={cn(\"prt-input-label\", className)}\n >\n {children}\n </ElementType>\n );\n}\n","import * as React from \"react\";\nimport { FieldError, type FieldErrorProps } from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\n\nexport interface InputErrorProps extends Omit<FieldErrorProps, \"className\"> {\n validationStatus?: \"error\" | \"success\" | \"warning\";\n className?: string;\n}\n\nexport function InputError({\n children,\n validationStatus = \"error\",\n className,\n ...props\n}: InputErrorProps) {\n return (\n <FieldError\n {...props}\n elementType=\"div\"\n className={cn(\"prt-input-error\", className)}\n data-validation-status={validationStatus}\n >\n {children}\n </FieldError>\n );\n}\n","import * as React from \"react\";\nimport { ConditionalClassNameObject, cn } from \"../../utils/dom\";\nimport { SizeOption } from \"../../utils/theme\";\nimport { StyleProps } from \"../../utils/types\";\n\nconst SpaceContext = React.createContext<{\n classNames: ConditionalClassNameObject;\n compactItemWrapperAdjust: string;\n}>({ classNames: {}, compactItemWrapperAdjust: \"\" });\n\nconst GAP_CLASS: Record<SizeOption, string> = {\n none: \"gap-0\",\n \"4xs\": \"gap-0.5\",\n \"3xs\": \"gap-1\",\n \"2xs\": \"gap-2\",\n xs: \"gap-2.5\",\n sm: \"gap-3\",\n md: \"gap-3.5\",\n lg: \"gap-4\",\n xl: \"gap-6\",\n \"2xl\": \"gap-8\",\n \"3xl\": \"gap-10\",\n \"4xl\": \"gap-12\",\n};\n\ninterface SpaceProps extends StyleProps<\"wrapper\"> {\n compact?: boolean;\n gap?: SizeOption;\n stack?: boolean;\n children?: React.ReactNode;\n}\n\nexport function Space({\n children,\n compact,\n gap = \"none\",\n stack,\n className,\n classNames,\n style,\n styles,\n}: SpaceProps) {\n const childrenCount = React.Children.count(children);\n\n const nodes = React.useMemo(() => {\n return React.Children.map(children, (child, index) => {\n const isFirstChild = index == 0;\n const isLastChild = index == childrenCount - 1;\n\n if (!React.isValidElement(child)) return null;\n\n return (\n <SpaceContext.Provider\n value={{\n classNames: {\n \"space-item-first\": isFirstChild,\n \"space-item-last\": isLastChild,\n \"space-item\": true,\n },\n compactItemWrapperAdjust: isLastChild\n ? \"\"\n : \"compact-item-wrapper-adjust\",\n }}\n >\n {child}\n </SpaceContext.Provider>\n );\n });\n }, [children]);\n\n return (\n <div\n data-compact={compact}\n style={{ ...style, ...styles?.wrapper }}\n className={cn(\n \"prt-space flex\",\n stack ? \"flex-col\" : \"flex-row\",\n GAP_CLASS[gap],\n className,\n classNames?.wrapper\n )}\n >\n {nodes}\n </div>\n );\n}\n\nexport function useSpace() {\n return React.useContext(SpaceContext);\n}\n","import * as React from \"react\";\nimport { cn } from \"../../utils/dom\";\nimport {\n Appearance,\n BorderRadius,\n ButtonAppearanceSchemaType,\n Color,\n InputAppearance,\n} from \"../../utils/theme\";\n\ninterface ThemeProviderValue {\n color?: Color;\n radius?: BorderRadius;\n appearance?: Appearance;\n buttonAppearance?: ButtonAppearanceSchemaType;\n avatarRadiusSize?: BorderRadius;\n inputAppearance?: InputAppearance;\n}\n\ninterface ThemeProviderProps extends ThemeProviderValue {\n children?: React.ReactNode;\n className?: string;\n}\n\nconst ThemeContext = React.createContext<ThemeProviderValue | null>(null);\n\nexport function ThemeProvider(props: ThemeProviderProps) {\n const { children, className, ...themeProps } = props;\n return (\n <ThemeContext.Provider value={themeProps}>\n <div\n data-theme={themeProps.appearance}\n data-radius={themeProps.radius}\n data-color={themeProps.color}\n className={cn(\"parrot-theme\", className)}\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme(options?: { requireThemeProvider: boolean }) {\n const theme = React.useContext(ThemeContext);\n if (!theme && options?.requireThemeProvider)\n throw new Error(\"No theme found\");\n return theme;\n}\n","import React from \"react\";\nimport {\n GroupContext,\n TextContext,\n useContextProps,\n type TextProps,\n} from \"react-aria-components\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { useSpace } from \"../space/space\";\nimport { cn, filterDOMProps } from \"../../utils/dom\";\nimport { Color, InputAppearance, Radius } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport type FieldProps<S extends string> = InputProps &\n StyleProps<S | \"wrapper\" | \"label\" | \"input\" | \"description\"> & {\n children?: React.ReactNode;\n replaceDefaultControlWrapper?: boolean;\n };\n\nexport type FieldComponentProps<S extends string> = FieldProps<S>;\n\nexport type InputProps = {\n description?: React.ReactNode;\n label?: React.ReactNode;\n error?: React.ReactNode;\n append?: React.ReactNode;\n prepend?: React.ReactNode;\n validationStatus?: \"error\" | \"success\" | \"warning\";\n shape?: \"rounded\" | \"sharp\";\n inputRef?: React.RefObject<HTMLInputElement>;\n wrapperRef?: React.RefObject<HTMLDivElement>;\n appearance?: InputAppearance;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n color?: Color;\n radius?: Radius;\n isDisabled?: boolean;\n};\n\nexport function Field<S extends string = any>({\n label,\n description,\n error,\n color = \"gray\",\n radius,\n size = \"md\",\n className,\n classNames,\n style,\n styles,\n prepend,\n append,\n appearance = \"outline\",\n validationStatus,\n children,\n replaceDefaultControlWrapper,\n isDisabled,\n wrapperRef,\n ...props\n}: FieldProps<S>) {\n const space = useSpace();\n const theme = useTheme();\n\n // Adopt the group ref published by RAC controls that anchor an overlay to\n // their input group (ComboBox, DatePicker). This makes the popover align to\n // the full bordered control (incl. prepend/append) instead of the raw input.\n // No-op for controls that don't provide GroupContext (plain inputs).\n const controlRef = React.useRef<HTMLDivElement>(null);\n const [, groupRef] = useContextProps({}, controlRef, GroupContext);\n\n return (\n <div\n ref={wrapperRef}\n {...filterDOMProps(props)}\n data-color={color}\n data-radius={radius ?? theme?.radius ?? \"lg\"}\n data-size={size}\n className={cn(\n \"prt-input-group flex flex-col gap-1\",\n space.compactItemWrapperAdjust,\n className,\n classNames?.wrapper,\n )}\n style={{ ...style, ...styles?.wrapper }}\n >\n {label && (\n <InputLabel\n style={styles?.label}\n className={classNames?.label}\n color={color}\n >\n {label}\n </InputLabel>\n )}\n\n {!replaceDefaultControlWrapper && (\n <div\n ref={groupRef as React.RefObject<HTMLDivElement>}\n className={cn(\n \"prt-input-control relative inline-flex w-full items-center\",\n space.classNames,\n )}\n data-has-error={!!error}\n data-appearance={appearance}\n data-disabled={isDisabled}\n >\n {prepend && (\n <div className=\"add-on add-on-left flex items-center\">\n {prepend}\n </div>\n )}\n {/**TODO: this is where actual input goes */}\n {children}\n {append && (\n <div className=\"add-on add-on-right flex items-center\">\n {append}\n </div>\n )}\n </div>\n )}\n\n {replaceDefaultControlWrapper && children}\n\n {error && (\n <InputError validationStatus={validationStatus}>{error}</InputError>\n )}\n\n {description && (\n <FieldDescription\n style={styles?.description}\n className={classNames?.description}\n >\n {description}\n </FieldDescription>\n )}\n </div>\n );\n}\n\nField.displayName = \"Field\";\n\ninterface FieldDescriptionProps {\n children: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\n// Consumes RAC's TextContext \"description\" slot so the id is registered in the\n// input's aria-describedby (the wiring the old descriptionProps spread provided).\nfunction FieldDescription({\n children,\n className,\n style,\n}: FieldDescriptionProps) {\n const [merged, ref] = useContextProps(\n { slot: \"description\" } as TextProps,\n null,\n TextContext,\n );\n\n // The \"description\" slot only contributes an id (for aria-describedby); our\n // className/children/style win as they come after the spread.\n return (\n <div\n {...(merged as React.HTMLAttributes<HTMLDivElement>)}\n ref={ref as React.Ref<HTMLDivElement>}\n className={cn(\"prt-input-description\", className)}\n style={style}\n >\n {children}\n </div>\n );\n}\n","import * as React from \"react\";\nimport {\n TextField,\n Input as RACInput,\n type TextFieldProps as RACTextFieldProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { Field, FieldComponentProps } from \"../form/field\";\n\nexport type TextInputProps = Omit<\n RACTextFieldProps,\n \"className\" | \"style\" | \"children\"\n> &\n FieldComponentProps<\"input\"> & {\n placeholder?: string;\n };\n\nexport function Input({\n className,\n classNames,\n style,\n styles,\n onChange,\n inputRef,\n wrapperRef,\n prepend,\n append,\n label,\n description,\n error,\n color,\n size,\n radius,\n appearance,\n validationStatus,\n shape,\n placeholder,\n ...textFieldProps\n}: TextInputProps) {\n return (\n <TextField {...textFieldProps} onChange={onChange} isInvalid={!!error}>\n <Field\n className={className}\n classNames={classNames}\n styles={styles}\n style={style}\n wrapperRef={wrapperRef}\n prepend={prepend}\n append={append}\n label={label}\n description={description}\n error={error}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n >\n <RACInput\n ref={inputRef}\n placeholder={placeholder}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n style={styles?.input}\n className={cn(\"prt-text-input-el\", classNames?.input)}\n />\n </Field>\n </TextField>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../utils/dom\";\nimport { useTheme } from \"../theme\";\nimport { Color } from \"../../utils/theme\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface LoaderProps\n extends\n Omit<React.ComponentPropsWithRef<\"div\">, \"color\">,\n StyleProps<\"wrapper\" | \"icon\"> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n color?: Color;\n label?: string;\n}\n\nexport function Loader({\n color,\n className,\n classNames,\n style,\n styles,\n size = \"sm\",\n label = \"Loading\",\n ref,\n ...props\n}: LoaderProps) {\n const theme = useTheme();\n const resolvedColor = color ?? theme?.color;\n const id = React.useId();\n\n return (\n <div\n data-color={resolvedColor}\n className={cn(\"prt-loader\", className, classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n role=\"status\"\n aria-label={label}\n ref={ref}\n {...props}\n >\n <svg\n className={cn(\"prt-loader-icon\", classNames?.icon)}\n style={styles?.icon}\n data-size={size}\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <defs>\n <linearGradient\n id={`${id}-a`}\n x1=\"50%\"\n x2=\"50%\"\n y1=\"5.271%\"\n y2=\"91.793%\"\n >\n <stop offset=\"0%\" stopColor=\"currentColor\" />\n <stop offset=\"100%\" stopColor=\"currentColor\" stopOpacity=\"0.55\" />\n </linearGradient>\n <linearGradient\n id={`${id}-b`}\n x1=\"50%\"\n x2=\"50%\"\n y1=\"15.24%\"\n y2=\"87.15%\"\n >\n <stop offset=\"0%\" stopColor=\"currentColor\" stopOpacity=\"0\" />\n <stop offset=\"100%\" stopColor=\"currentColor\" stopOpacity=\"0.55\" />\n </linearGradient>\n </defs>\n <g fill=\"none\">\n <path\n d=\"M8.749.021a1.5 1.5 0 0 1 .497 2.958A7.5 7.5 0 0 0 3 10.375a7.5 7.5 0 0 0 7.5 7.5v3c-5.799 0-10.5-4.7-10.5-10.5C0 5.23 3.726.865 8.749.021\"\n fill={`url(#${id}-a)`}\n transform=\"translate(1.5 1.625)\"\n />\n <path\n d=\"M15.392 2.673a1.5 1.5 0 0 1 2.119-.115A10.48 10.48 0 0 1 21 10.375c0 5.8-4.701 10.5-10.5 10.5v-3a7.5 7.5 0 0 0 5.007-13.084a1.5 1.5 0 0 1-.115-2.118\"\n fill={`url(#${id}-b)`}\n transform=\"translate(1.5 1.625)\"\n />\n </g>\n </svg>\n </div>\n );\n}\n","import { Dict } from \"./types\";\n\nexport function omit<T extends object, K extends keyof T>(\n object: T,\n keys: K[]\n): Omit<T, K> {\n const keySet = new Set(keys);\n return Object.keys(object).reduce((obj, key) => {\n if (!keySet.has(key as K)) {\n obj[key as K] = object[key as K];\n }\n return obj;\n }, {} as T);\n}\n\nexport function pick<T extends Dict, K extends keyof T>(\n object: T | undefined,\n keys: K[]\n) {\n // TODO handle invalid objects properly\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((obj, key) => {\n if (keys.includes(key as K))\n return {\n ...obj,\n [key]: object[key],\n };\n return { ...obj };\n }, {});\n}\nexport function split<T extends Dict, K extends keyof T>(object: T, keys: K[]) {\n const picked = pick(object, keys);\n const omitted = omit(object, keys);\n\n return [picked, omitted] as [{ [P in K]: T[P] }, Omit<T, K>];\n}\n\nexport function omitNullOrUndefined<T extends Dict>(object: T): Partial<T> {\n return Object.keys(object).reduce((obj, key) => {\n if (object[key] == null) {\n return { ...obj };\n }\n return {\n ...obj,\n [key]: object[key],\n };\n }, {});\n}\n","import * as React from \"react\";\nimport { Space } from \"../space\";\nimport { ButtonProps } from \"./button\";\nimport { omitNullOrUndefined } from \"../../utils/object\";\nimport { StyleProps } from \"../../utils/types\";\n\nconst ButtonGroupContext = React.createContext<ButtonGroupProps>({});\n\ntype ButtonGroupProps = Pick<\n ButtonProps,\n \"color\" | \"variant\" | \"size\" | \"radius\"\n> &\n StyleProps<\"wrapper\"> & {\n label?: string;\n };\n\nexport function ButtonGroup({\n color,\n variant,\n size,\n compact,\n radius,\n gap,\n children,\n className,\n classNames,\n style,\n styles,\n}: ButtonGroupProps & React.ComponentProps<typeof Space>) {\n const cleanProps = omitNullOrUndefined({\n color,\n variant,\n size,\n radius,\n });\n\n return (\n <ButtonGroupContext.Provider value={cleanProps}>\n <Space\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n gap={gap}\n compact={compact}\n >\n {children}\n </Space>\n </ButtonGroupContext.Provider>\n );\n}\n\nexport function useButtonGroup() {\n return React.useContext(ButtonGroupContext);\n}\n","import * as React from \"react\";\nimport {\n Button as RACButton,\n type ButtonProps as RACButtonProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { Loader } from \"../loader\";\nimport { useButtonGroup } from \"./button-group\";\nimport { useSpace } from \"../space/space\";\nimport { Color, Radius, Size, Variant } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface ButtonProps\n extends\n Omit<RACButtonProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\" | \"loader\"> {\n append?: React.ReactNode;\n color?: Color;\n isIconButton?: boolean;\n isLoading?: boolean;\n prepend?: React.ReactNode;\n radius?: Radius;\n size?: Size;\n variant?: Variant;\n children?: React.ReactNode;\n ref?: React.Ref<HTMLButtonElement>;\n}\n\nexport function Button(props: ButtonProps) {\n const space = useSpace();\n const buttonGroupProps = useButtonGroup();\n const theme = useTheme();\n\n const {\n color = theme?.color ?? \"primary\",\n variant = \"solid\",\n append,\n prepend,\n size = \"md\",\n children,\n className,\n isLoading,\n radius = \"full\",\n isIconButton,\n style,\n classNames,\n styles,\n ...otherProps\n } = { ...buttonGroupProps, ...props } as ButtonProps;\n\n return (\n <RACButton\n style={{ ...style, ...styles?.wrapper }}\n data-size={size}\n data-radius={radius}\n data-icon-button={isIconButton}\n data-loading={isLoading}\n aria-busy={isLoading}\n data-color={color}\n data-variant={variant}\n className={cn(\n \"prt-button prt-size\",\n space.classNames,\n className,\n classNames?.wrapper,\n )}\n {...otherProps}\n >\n {prepend}\n {isIconButton && isLoading ? null : children}\n {isLoading ? (\n <Loader\n color={color}\n className={cn(\"prt-button-loader\", classNames?.loader)}\n style={styles?.loader}\n size=\"xs\"\n />\n ) : (\n append\n )}\n </RACButton>\n );\n}\n","import React from \"react\";\nimport { Button, ButtonProps } from \"./button\";\n\nexport function IconButton({ children, ...props }: ButtonProps) {\n return (\n <Button isIconButton {...props}>\n {children}\n </Button>\n );\n}\n","import * as React from \"react\";\nimport {\n ToggleButton as RACToggleButton,\n type ToggleButtonProps as RACToggleButtonProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { useSpace } from \"../space/space\";\nimport { Color, Radius, Size, Variant } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface ButtonToggleProps {\n idleColor?: Color;\n idleVariant?: Variant;\n activeColor?: Color;\n activeVariant?: Variant;\n}\n\nexport interface ToggleButtonGroupDefaults extends ButtonToggleProps {\n size?: Size;\n radius?: Radius;\n isIconButton?: boolean;\n}\n\n/** Visual defaults broadcast by ToggleGroup to its ToggleButtons. */\nexport const ToggleButtonGroupContext =\n React.createContext<ToggleButtonGroupDefaults>({});\n\nexport interface ToggleButtonProps\n extends Omit<RACToggleButtonProps, \"className\" | \"style\" | \"children\">,\n ButtonToggleProps,\n StyleProps<\"wrapper\"> {\n append?: React.ReactNode;\n prepend?: React.ReactNode;\n radius?: Radius;\n size?: Size;\n isIconButton?: boolean;\n children?: React.ReactNode;\n ref?: React.Ref<HTMLButtonElement>;\n}\n\nexport function ToggleButton({\n idleColor,\n idleVariant,\n activeColor,\n activeVariant,\n append,\n prepend,\n size,\n radius,\n isIconButton,\n className,\n classNames,\n style,\n styles,\n children,\n ...props\n}: ToggleButtonProps) {\n const space = useSpace();\n const theme = useTheme();\n const group = React.useContext(ToggleButtonGroupContext);\n\n const _idleColor = idleColor ?? group.idleColor ?? \"gray\";\n const _idleVariant = idleVariant ?? group.idleVariant ?? \"outline\";\n const _activeColor =\n activeColor ?? group.activeColor ?? theme?.color ?? \"primary\";\n const _activeVariant = activeVariant ?? group.activeVariant ?? \"solid\";\n const _size = size ?? group.size ?? \"md\";\n const _radius = radius ?? group.radius ?? \"full\";\n const _isIconButton = isIconButton ?? group.isIconButton;\n\n return (\n <RACToggleButton\n {...props}\n className={cn(\n \"prt-button prt-size\",\n space.classNames,\n className,\n classNames?.wrapper\n )}\n style={{ ...style, ...styles?.wrapper }}\n render={(domProps, { isSelected }) => (\n <button\n {...domProps}\n data-is-toggle=\"true\"\n data-size={_size}\n data-radius={_radius}\n data-icon-button={_isIconButton}\n data-color={isSelected ? _activeColor : _idleColor}\n data-variant={isSelected ? _activeVariant : _idleVariant}\n >\n {prepend}\n {children}\n {append}\n </button>\n )}\n />\n );\n}\n","import * as React from \"react\";\nimport {\n NumberField,\n Group,\n Input as RACInput,\n type NumberFieldProps as RACNumberFieldProps,\n} from \"react-aria-components\";\nimport { IconButton } from \"../button\";\nimport { cn } from \"../../utils/dom\";\nimport { useSpace } from \"../space/space\";\nimport { Field, FieldComponentProps } from \"../form/field\";\n\ntype NumberInputProps = Omit<\n RACNumberFieldProps,\n \"className\" | \"style\" | \"children\"\n> &\n FieldComponentProps<\"input\" | \"decrement\" | \"increment\"> & {\n showSteppers?: boolean;\n decrementIcon?: React.ReactNode;\n incrementIcon?: React.ReactNode;\n placeholder?: string;\n };\n\nexport function NumberInput({\n appearance = \"outline\",\n size = \"md\",\n color = \"gray\",\n classNames,\n styles,\n append,\n prepend,\n placeholder,\n showSteppers = false,\n error,\n label,\n description,\n incrementIcon,\n decrementIcon,\n inputRef,\n wrapperRef,\n validationStatus,\n shape,\n radius,\n ...props\n}: NumberInputProps) {\n const space = useSpace();\n\n return (\n <NumberField\n {...props}\n isInvalid={!!error}\n aria-label={\n (props as { \"aria-label\"?: string })[\"aria-label\"] ?? \"number input\"\n }\n >\n <Field\n classNames={classNames}\n color={color}\n size={size}\n radius={radius}\n error={error}\n label={label}\n description={description}\n validationStatus={validationStatus}\n replaceDefaultControlWrapper\n >\n <Group className=\"prt-input-container\" style={{ display: \"flex\", gap: 4 }}>\n {showSteppers && (\n <IconButton\n slot=\"decrement\"\n radius=\"md\"\n color={color}\n variant=\"outline\"\n size={size}\n className={classNames?.decrement}\n style={styles?.decrement}\n >\n {decrementIcon}\n </IconButton>\n )}\n <RACInput\n style={styles?.input}\n ref={inputRef}\n placeholder={placeholder}\n className={cn(\n classNames?.input,\n \"prt-input-control\",\n \"space-item\",\n space.classNames\n )}\n data-appearance={appearance}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n />\n {showSteppers && (\n <IconButton\n slot=\"increment\"\n radius=\"md\"\n color={color}\n variant=\"outline\"\n size={size}\n className={classNames?.increment}\n style={styles?.increment}\n >\n {incrementIcon}\n </IconButton>\n )}\n </Group>\n </Field>\n </NumberField>\n );\n}\n","import * as React from \"react\";\n\nexport interface IconProps extends React.SVGProps<SVGSVGElement> {\n size?: number | string;\n}\n\nexport function HiArchive({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M4 3a2 2 0 100 4h12a2 2 0 100-4H4z\" />\n <path fillRule=\"evenodd\" d=\"M3 8h14v7a2 2 0 01-2 2H5a2 2 0 01-2-2V8zm5 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiArrowSmRight({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M10.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L12.586 11H5a1 1 0 110-2h7.586l-2.293-2.293a1 1 0 010-1.414z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiCheck({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiChevronDown({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiChevronLeft({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiChevronRight({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiChevronUp({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiClipboardCopy({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M8 2a1 1 0 000 2h2a1 1 0 100-2H8z\" />\n <path d=\"M3 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v6h-4.586l1.293-1.293a1 1 0 00-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L10.414 13H15v3a2 2 0 01-2 2H5a2 2 0 01-2-2V5zM15 11h2a1 1 0 110 2h-2v-2z\" />\n </svg>\n );\n}\n\nexport function HiDocument({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiDocumentDownload({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm5 6a1 1 0 10-2 0v3.586l-1.293-1.293a1 1 0 10-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 11.586V8z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiDotsHorizontal({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M6 10a2 2 0 11-4 0 2 2 0 014 0zM12 10a2 2 0 11-4 0 2 2 0 014 0zM16 12a2 2 0 100-4 2 2 0 000 4z\" />\n </svg>\n );\n}\n\nexport function HiDuplicate({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M7 9a2 2 0 012-2h6a2 2 0 012 2v6a2 2 0 01-2 2H9a2 2 0 01-2-2V9z\" />\n <path d=\"M5 3a2 2 0 00-2 2v6a2 2 0 002 2V5h8a2 2 0 00-2-2H5z\" />\n </svg>\n );\n}\n\nexport function HiExternalLink({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M11 3a1 1 0 100 2h2.586l-6.293 6.293a1 1 0 101.414 1.414L15 6.414V9a1 1 0 102 0V4a1 1 0 00-1-1h-5z\" />\n <path d=\"M5 5a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2v-3a1 1 0 10-2 0v3H5V7h3a1 1 0 000-2H5z\" />\n </svg>\n );\n}\n\nexport function HiEye({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M10 12a2 2 0 100-4 2 2 0 000 4z\" />\n <path fillRule=\"evenodd\" d=\"M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiFingerPrint({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M6.625 2.655A9 9 0 0119 11a1 1 0 11-2 0 7 7 0 00-9.625-6.492 1 1 0 11-.75-1.853zM4.662 4.959A1 1 0 014.75 6.37 6.97 6.97 0 003 11a1 1 0 11-2 0 8.97 8.97 0 012.25-5.953 1 1 0 011.412-.088z\" clipRule=\"evenodd\" />\n <path fillRule=\"evenodd\" d=\"M5 11a5 5 0 1110 0 1 1 0 11-2 0 3 3 0 10-6 0c0 1.677-.345 3.276-.968 4.729a1 1 0 11-1.838-.789A9.964 9.964 0 005 11zm8.921 2.012a1 1 0 01.831 1.145 19.86 19.86 0 01-.545 2.436 1 1 0 11-1.92-.558c.207-.713.371-1.445.49-2.192a1 1 0 011.144-.83z\" clipRule=\"evenodd\" />\n <path fillRule=\"evenodd\" d=\"M10 10a1 1 0 011 1c0 2.236-.46 4.368-1.29 6.304a1 1 0 01-1.838-.789A13.952 13.952 0 009 11a1 1 0 011-1z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiFlag({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M3 6a3 3 0 013-3h10a1 1 0 01.8 1.6L14.25 8l2.55 3.4A1 1 0 0116 13H6a1 1 0 00-1 1v3a1 1 0 11-2 0V6z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiMenu({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiOutlineBookmark({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\" />\n </svg>\n );\n}\n\nexport function HiOutlineCalendar({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n );\n}\n\nexport function HiOutlineCheckCircle({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n}\n\nexport function HiOutlineClipboardCopy({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3\" />\n </svg>\n );\n}\n\nexport function HiOutlineCog({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\" />\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\" />\n </svg>\n );\n}\n\nexport function HiOutlineCursorClick({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122\" />\n </svg>\n );\n}\n\nexport function HiOutlineDocumentAdd({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\" />\n </svg>\n );\n}\n\nexport function HiOutlineExclamationCircle({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n}\n\nexport function HiOutlineInformationCircle({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n}\n\nexport function HiOutlineLogout({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1\" />\n </svg>\n );\n}\n\nexport function HiOutlinePaperClip({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13\" />\n </svg>\n );\n}\n\nexport function HiOutlinePencil({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z\" />\n </svg>\n );\n}\n\nexport function HiOutlinePlusCircle({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n}\n\nexport function HiOutlineQrcode({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z\" />\n </svg>\n );\n}\n\nexport function HiOutlineRefresh({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\n </svg>\n );\n}\n\nexport function HiOutlineSave({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4\" />\n </svg>\n );\n}\n\nexport function HiOutlineShieldExclamation({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20.618 5.984A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016zM12 9v2m0 4h.01\" />\n </svg>\n );\n}\n\nexport function HiOutlineSparkles({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z\" />\n </svg>\n );\n}\n\nexport function HiOutlineSpeakerphone({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M11 5.882V19.24a1.76 1.76 0 01-3.417.592l-2.147-6.15M18 13a3 3 0 100-6M5.436 13.683A4.001 4.001 0 017 6h1.832c4.1 0 7.625-1.234 9.168-3v14c-1.543-1.766-5.067-3-9.168-3H7a3.988 3.988 0 01-1.564-.317z\" />\n </svg>\n );\n}\n\nexport function HiOutlineTrash({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\" />\n </svg>\n );\n}\n\nexport function HiOutlineUser({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\" />\n </svg>\n );\n}\n\nexport function HiOutlineUserCircle({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n );\n}\n\nexport function HiPaperClip({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M8 4a3 3 0 00-3 3v4a5 5 0 0010 0V7a1 1 0 112 0v4a7 7 0 11-14 0V7a5 5 0 0110 0v4a3 3 0 11-6 0V7a1 1 0 012 0v4a1 1 0 102 0V7a3 3 0 00-3-3z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiPencil({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path d=\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z\" />\n </svg>\n );\n}\n\nexport function HiPlus({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiReply({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M7.707 3.293a1 1 0 010 1.414L5.414 7H11a7 7 0 017 7v2a1 1 0 11-2 0v-2a5 5 0 00-5-5H5.414l2.293 2.293a1 1 0 11-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiSearch({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiSelector({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiTrash({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiUserCircle({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-6-3a2 2 0 11-4 0 2 2 0 014 0zm-2 4a5 5 0 00-4.546 2.916A5.986 5.986 0 0010 16a5.986 5.986 0 004.546-2.084A5 5 0 0010 11z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function HiX({ size = \"1em\", ...props }: IconProps) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" width={size} height={size} {...props}>\n <path fillRule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clipRule=\"evenodd\" />\n </svg>\n );\n}\n","/**\n * The pickable hue palette (Tailwind v4). Used for hash-based color defaults\n * (Avatar initials, Tag). Consumers add colors via the registry below + a\n * `[data-color=\"x\"]` role block — see docs/design-tokens.md.\n */\nexport const supportedColors = [\n \"red\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n \"pink\",\n \"rose\",\n \"slate\",\n \"gray\",\n \"zinc\",\n \"neutral\",\n \"stone\",\n] as const;\n\n/**\n * Open registry of valid `color` values. Consumers extend it via module\n * augmentation to get intellisense for custom colors:\n * declare module \"@parrot-co/parrot-ui\" { interface ParrotColorRegistry { fire: true } }\n */\nexport interface ParrotColorRegistry {\n red: true;\n orange: true;\n amber: true;\n yellow: true;\n lime: true;\n green: true;\n emerald: true;\n teal: true;\n cyan: true;\n sky: true;\n blue: true;\n indigo: true;\n violet: true;\n purple: true;\n fuchsia: true;\n pink: true;\n rose: true;\n slate: true;\n gray: true;\n zinc: true;\n neutral: true;\n stone: true;\n primary: true;\n accent: true;\n success: true;\n warning: true;\n critical: true;\n info: true;\n /** @deprecated Radix-era names — migrate to the Tailwind equivalents. */\n tomato: true;\n crimson: true;\n plum: true;\n grass: true;\n brown: true;\n mint: true;\n gold: true;\n bronze: true;\n mauve: true;\n sage: true;\n olive: true;\n sand: true;\n}\n\nexport type Color = keyof ParrotColorRegistry;\n\n/**\n * Open registry of valid `variant` values. Extend via module augmentation.\n */\nexport interface ParrotVariantRegistry {\n solid: true;\n light: true;\n outline: true;\n lightOutline: true;\n ghost: true;\n pastel: true;\n solidMono: true;\n}\n\nexport type Variant = keyof ParrotVariantRegistry;\n\nexport type ColorVariant = Variant;\n\nexport type InputAppearance = \"outline\" | \"filled\" | \"filled-outline\";\n\n/** The shared control-size scale (`.prt-size` recipe). */\nexport type Size = \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/** The radius scale (`data-radius` recipe). */\nexport type Radius = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\n/** @deprecated use `Radius` */\nexport type BorderRadius = \"none\" | \"sm\" | \"md\" | \"lg\" | \"full\";\nexport type Appearance = \"light\" | \"dark\";\n\n/** @deprecated use `Size` */\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type ButtonAppearance = \"primary\" | \"secondary\" | \"minimal\";\n\nexport type ButtonAppearanceSchemaType = Partial<\n Record<ButtonAppearance, { variant: Variant; color: Color }>\n>;\nexport type DisplayType =\n | \"block\"\n | \"inline\"\n | \"inline-block\"\n | \"flex\"\n | \"none\"\n | \"grid\"\n | \"inline-flex\";\n\nexport type PositionType = \"absolute\" | \"relative\" | \"fixed\" | \"sticky\";\n\nexport type JustifyContentType =\n | \"start\"\n | \"center\"\n | \"end\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n\nexport type AlignItemsType =\n | \"start\"\n | \"center\"\n | \"end\"\n | \"stretch\"\n | \"baseline\";\n\nexport type FlexDirectionType =\n | \"row\"\n | \"column\"\n | \"row-reverse\"\n | \"column-reverse\";\n\nexport type SizeOption =\n | \"none\"\n | \"4xs\"\n | \"3xs\"\n | \"2xs\"\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"2xl\"\n | \"3xl\"\n | \"4xl\";\n\nexport const borderRadiusShapeMap = {\n sharp: \"none\",\n pill: \"full\",\n rounded: undefined,\n};\n","import { isUndefinedOrNull } from \"./assertions\";\nimport { supportedColors } from \"./theme\";\nimport { ResponsiveProp, Breakpoints } from \"./types\";\n\nexport function getInitials(name: string, length = 1) {\n if (!name || length < 1) return \"\";\n if (length == 1) return name.charAt(0);\n return name\n .trim()\n .split(/\\s+/)\n .slice(0, length)\n .map((c) => c.charAt(0))\n .join(\"\");\n}\n\nexport function warnDeprecation(\n deprecatedProp: any,\n newProp: any,\n value?: string\n) {\n if (!isUndefinedOrNull(value)) {\n console.warn(\n `${deprecatedProp} is deprecated and will be removed in a future release. ${newProp ? `Please use ${newProp} instead.` : \"\"}`\n );\n }\n}\n\nexport function hashCode(text: string) {\n const str = String(text);\n let hash = 0;\n let char;\n if (str.trim().length === 0) return hash;\n for (let i = 0; i < str.length; i++) {\n char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n // Convert to 32bit integer\n hash &= hash;\n }\n\n return Math.abs(hash);\n}\n\nexport function id() {\n return Math.random().toString(36);\n}\n\nexport function getRandomColor(string: string) {\n const hash = hashCode(string);\n return supportedColors[hash % supportedColors.length];\n}\n\nexport function breakpointClassNames<T>(\n prefix: string,\n value: ResponsiveProp<T>\n): string {\n if (!value) return \"\";\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n return `${prefix}-${value}`;\n }\n\n let classNames = \"\";\n\n for (const key of Object.keys(value as Record<Breakpoints, T>)) {\n const breakpoint = key as Breakpoints;\n const breakpointValue = (value as Record<Breakpoints, T>)[breakpoint];\n\n if (breakpointValue) {\n classNames && (classNames += \" \");\n classNames +=\n breakpoint === \"base\"\n ? `${prefix}-${breakpointValue}`\n : `${breakpoint}:${prefix}-${breakpointValue}`;\n }\n }\n\n return classNames;\n}\n","import * as React from \"react\";\nimport { Color, SizeOption } from \"../../utils/theme\";\n\nimport { cn } from \"../../utils/dom\";\nimport { ResponsiveProp } from \"../../utils/types\";\nimport { breakpointClassNames } from \"../../utils/helpers\";\n\ntype TextWeight =\n | \"light\"\n | \"regular\"\n | \"medium\"\n | \"semi-bold\"\n | \"bold\"\n | \"heavy\"\n | \"inherit\";\ntype TextColorVariant = \"light\" | \"lighter\" | \"dark\" | \"default\";\n\nexport interface TextProps\n extends Omit<React.ComponentPropsWithRef<\"span\">, \"color\"> {\n size?: ResponsiveProp<SizeOption>;\n weight?: TextWeight;\n highlight?: boolean;\n color?: Color | \"inherit\" | \"white\" | \"black\";\n variant?: TextColorVariant;\n align?: \"left\" | \"center\" | \"right\";\n numeric?: boolean;\n underline?: boolean;\n italic?: boolean;\n lineHeight?: \"normal\" | \"shorter\" | \"short\" | \"base\" | \"tall\";\n textCase?: \"uppercase\" | \"lowercase\" | \"capitalize\";\n as?: React.ElementType;\n}\n\n/**\n * @deprecated Use plain HTML elements (`<span>`, `<p>`, `<div>`) with Tailwind\n * text utilities (`text-sm`, `font-medium`, `text-gray-500`, …) instead.\n */\nexport function Text({\n textCase,\n size = \"sm\",\n weight,\n color = \"gray\",\n variant = \"default\",\n highlight,\n align,\n lineHeight,\n underline,\n italic,\n as: Comp = \"span\",\n className,\n ...rest\n}: TextProps) {\n return (\n <Comp\n className={cn(\n \"prt-text\",\n className,\n {\n [`text-highlight`]: !!highlight,\n [`text-weight-${weight}`]: !!weight,\n [`text-align-${align}`]: !!align,\n [`text-line-height-${lineHeight}`]: !!lineHeight,\n [`text-transform-${textCase}`]: !!textCase,\n },\n breakpointClassNames(\"text-size\", size)\n )}\n data-underline={underline}\n data-italic={italic}\n data-color={color}\n data-color-variant={variant}\n {...rest}\n />\n );\n}\n","import * as React from \"react\";\nimport {\n TextField,\n TextArea as RACTextArea,\n type TextFieldProps as RACTextFieldProps,\n} from \"react-aria-components\";\nimport { Field, FieldComponentProps } from \"../form/field\";\nimport { useTheme } from \"../theme\";\nimport { cn } from \"../../utils/dom\";\n\ninterface TextareaProps\n extends Omit<RACTextFieldProps, \"className\" | \"style\" | \"children\">,\n FieldComponentProps<\"input\"> {\n resize?: \"none\" | \"both\" | \"horizontal\" | \"vertical\";\n placeholder?: string;\n rows?: number;\n}\n\nexport function Textarea({\n appearance = \"outline\",\n resize,\n label,\n description,\n error,\n color = \"gray\",\n radius,\n size,\n className,\n classNames,\n styles,\n style,\n prepend,\n append,\n validationStatus,\n shape,\n inputRef,\n wrapperRef,\n placeholder,\n rows,\n isDisabled,\n ...textFieldProps\n}: TextareaProps) {\n const theme = useTheme();\n\n return (\n <TextField {...textFieldProps} isDisabled={isDisabled} isInvalid={!!error}>\n <Field\n label={label}\n description={description}\n error={error}\n color={color}\n size={size}\n radius={radius ?? theme?.radius ?? \"lg\"}\n validationStatus={validationStatus}\n style={style}\n styles={styles}\n classNames={classNames}\n replaceDefaultControlWrapper\n >\n <RACTextArea\n placeholder={placeholder}\n rows={rows}\n disabled={isDisabled}\n className={cn(\"prt-input-control\", \"prt-text-area\", className)}\n data-has-error={!!error}\n data-resize={resize}\n data-appearance={appearance}\n style={styles?.input}\n />\n </Field>\n </TextField>\n );\n}\n","import * as React from \"react\";\nimport {\n CheckboxGroup as RACCheckboxGroup,\n type CheckboxGroupProps as RACCheckboxGroupProps,\n} from \"react-aria-components\";\nimport { InputError } from \"../input-error\";\nimport { CheckboxVariantProps } from \"./checkbox\";\n\nexport interface CheckboxGroupVariantValue {\n size?: CheckboxVariantProps[\"size\"];\n appearance?: CheckboxVariantProps[\"appearance\"];\n color?: CheckboxVariantProps[\"color\"];\n radius?: CheckboxVariantProps[\"radius\"];\n shape?: CheckboxVariantProps[\"shape\"];\n}\n\n/** Visual defaults broadcast from CheckboxGroup to its Checkboxes. */\nexport const CheckboxGroupVariantContext =\n React.createContext<CheckboxGroupVariantValue | null>(null);\n\ninterface CheckboxGroupProps\n extends Omit<RACCheckboxGroupProps, \"className\" | \"style\" | \"children\">,\n CheckboxVariantProps {\n children?: React.ReactNode;\n label?: React.ReactNode;\n description?: React.ReactNode;\n errorMessage?: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function CheckboxGroup({\n children,\n label,\n description,\n errorMessage,\n size,\n appearance,\n color,\n radius,\n shape,\n ...props\n}: CheckboxGroupProps) {\n const variants = React.useMemo(\n () => ({ size, appearance, color, radius, shape }),\n [size, appearance, color, radius, shape]\n );\n\n return (\n <RACCheckboxGroup\n {...props}\n aria-label={typeof label === \"string\" ? label : undefined}\n >\n <div className=\"flex flex-col gap-2\">\n {label && (\n <span className=\"text-sm font-medium text-gray-700\">{label}</span>\n )}\n <CheckboxGroupVariantContext.Provider value={variants}>\n {children}\n </CheckboxGroupVariantContext.Provider>\n {description && (\n <span className=\"text-xs leading-normal text-gray-400\">\n {description}\n </span>\n )}\n {errorMessage && <InputError>{errorMessage}</InputError>}\n </div>\n </RACCheckboxGroup>\n );\n}\n","import * as React from \"react\";\nimport {\n CheckboxField,\n CheckboxButton,\n type CheckboxFieldProps,\n} from \"react-aria-components\";\nimport { CheckboxGroupVariantContext } from \"./checkbox-group\";\nimport { Color, Radius } from \"../../utils/theme\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface CheckboxVariantProps extends StyleProps<\n \"wrapper\" | \"icon\" | \"checkbox\"\n> {\n appearance?: \"outline\" | \"filled\";\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n radius?: Radius;\n /** @deprecated use `radius` instead */\n shape?: \"sharp\" | \"round\";\n color?: Color;\n}\n\nexport interface CheckboxProps\n extends\n Omit<CheckboxFieldProps, \"className\" | \"children\" | \"style\">,\n CheckboxVariantProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nfunction getRadius(shape?: \"sharp\" | \"round\") {\n if (shape === \"sharp\") return \"none\";\n if (shape === \"round\") return \"md\";\n return undefined;\n}\n\nexport function Checkbox({\n appearance,\n size,\n shape,\n radius,\n color,\n className,\n classNames,\n styles,\n style,\n children,\n ...props\n}: CheckboxProps) {\n const group = React.useContext(CheckboxGroupVariantContext);\n const resolvedColor = color ?? group?.color ?? \"primary\";\n const resolvedAppearance = appearance ?? group?.appearance ?? \"outline\";\n const resolvedSize = size ?? group?.size ?? \"md\";\n const resolvedRadius =\n radius ?? group?.radius ?? getRadius(shape ?? group?.shape) ?? \"md\";\n\n return (\n <CheckboxField {...props}>\n <CheckboxButton\n style={{ ...style, ...styles?.wrapper }}\n className={cn(className, \"prt-checkbox\", classNames?.wrapper)}\n >\n {({ isSelected, isIndeterminate, isFocusVisible }) => (\n <>\n <div\n style={styles?.checkbox}\n data-color={resolvedColor}\n data-variant={isSelected || isIndeterminate ? \"solid\" : undefined}\n data-radius={resolvedRadius}\n className={cn([\"prt-fake-checkbox\", classNames?.checkbox])}\n data-focused={isFocusVisible}\n data-checked={isSelected && !isIndeterminate}\n data-indeterminate={isIndeterminate}\n data-size={resolvedSize}\n data-appearance={\n isSelected || isIndeterminate ? undefined : resolvedAppearance\n }\n aria-hidden=\"true\"\n >\n {isSelected && !isIndeterminate && (\n <svg\n className={cn(\"prt-checkbox-icon\", classNames?.icon)}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"6 7 12 10\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 12l2 2l4 -4\" />\n </svg>\n )}\n\n {isIndeterminate && (\n <div\n className={cn([\"prt-checkbox-icon\", classNames?.icon])}\n style={{\n background: \"currentColor\",\n width: \"70%\",\n height: 2,\n borderRadius: 4,\n }}\n />\n )}\n </div>\n {children}\n </>\n )}\n </CheckboxButton>\n </CheckboxField>\n );\n}\n","import * as React from \"react\";\nimport {\n CheckboxField,\n CheckboxButton,\n type CheckboxFieldProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface CheckBoxItemProps\n extends Omit<CheckboxFieldProps, \"className\" | \"children\" | \"style\">,\n StyleProps<\"wrapper\"> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function CheckboxItem({\n className,\n classNames,\n styles,\n style,\n children,\n ...props\n}: CheckBoxItemProps) {\n return (\n <CheckboxField {...props}>\n <CheckboxButton\n style={{ ...style, ...styles?.wrapper }}\n className={cn(className, \"prt-checkbox-item\", classNames?.wrapper)}\n >\n {children}\n </CheckboxButton>\n </CheckboxField>\n );\n}\n","import * as React from \"react\";\nimport {\n MenuTrigger as RACMenuTrigger,\n Menu as RACMenu,\n MenuItem as RACMenuItem,\n MenuSection as RACMenuSection,\n Header,\n Popover as RACPopover,\n Pressable,\n type MenuTriggerProps as RACMenuTriggerProps,\n type MenuProps as RACMenuProps,\n type MenuItemProps as RACMenuItemProps,\n type MenuSectionProps as RACMenuSectionProps,\n type Placement,\n} from \"react-aria-components\";\nimport { Button } from \"../button\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\nimport { Color } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { HiCheck } from \"../../icons\";\n\n/* ---------------------------- Menu (root) ---------------------------- */\n\nexport type MenuProps = RACMenuTriggerProps;\n\nexport function Menu({ children, ...props }: MenuProps) {\n return <RACMenuTrigger {...props}>{children}</RACMenuTrigger>;\n}\n\n/* ---------------------------- MenuTrigger ---------------------------- */\n\nexport interface MenuTriggerProps {\n children?: React.ReactNode;\n asChild?: boolean;\n}\n\nexport function MenuTrigger({ asChild, children }: MenuTriggerProps) {\n if (asChild) {\n return (\n <Pressable>{children as React.ReactElement<any, string>}</Pressable>\n );\n }\n return <Button>{children}</Button>;\n}\n\n/* ---------------------------- MenuContent ---------------------------- */\n\nexport interface MenuContentProps<T extends object = object>\n extends Omit<RACMenuProps<T>, \"className\" | \"style\">,\n StyleProps<\"popover\" | \"wrapper\" | \"list\"> {\n menuHeader?: React.ReactNode | (() => React.ReactNode);\n menuFooter?: React.ReactNode | (() => React.ReactNode);\n minWidth?: number | string;\n maxHeight?: number | string;\n maxWidth?: number | string;\n placement?: Placement;\n offset?: number;\n color?: Color;\n}\n\nfunction px(value?: number | string) {\n if (value == null) return undefined;\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport function MenuContent<T extends object>({\n children,\n menuHeader,\n menuFooter,\n minWidth = 200,\n maxHeight = 300,\n maxWidth,\n placement = \"bottom start\",\n offset = 8,\n color,\n classNames,\n styles,\n className,\n style,\n ...props\n}: MenuContentProps<T>) {\n const theme = useTheme();\n const dataColor = color ?? theme?.color ?? \"violet\";\n const dataRadius = theme?.radius ?? \"lg\";\n\n const header = typeof menuHeader === \"function\" ? menuHeader() : menuHeader;\n const footer = typeof menuFooter === \"function\" ? menuFooter() : menuFooter;\n\n return (\n <RACPopover\n placement={placement}\n offset={offset}\n data-color={dataColor}\n data-radius={dataRadius}\n className={cn(\"prt-popover\", classNames?.popover)}\n style={{ ...styles?.popover }}\n >\n <div\n data-color={dataColor}\n data-radius={dataRadius}\n className={cn(\"prt-list-box-wrapper\", classNames?.wrapper, className)}\n style={{\n minWidth:\n typeof minWidth === \"number\"\n ? `max(200px, ${minWidth}px)`\n : minWidth,\n maxWidth: px(maxWidth),\n maxHeight: px(maxHeight),\n ...styles?.wrapper,\n ...style,\n }}\n >\n {header}\n <RACMenu\n {...props}\n className={cn(\"prt-menu-list\", classNames?.list)}\n style={{ ...styles?.list }}\n >\n {children}\n </RACMenu>\n {footer}\n </div>\n </RACPopover>\n );\n}\n\n/* ---------------------------- MenuItem ---------------------------- */\n\nexport interface MenuItemProps\n extends Omit<RACMenuItemProps, \"className\" | \"style\" | \"children\"> {\n children?: React.ReactNode;\n icon?: React.ReactNode;\n label?: React.ReactNode;\n description?: React.ReactNode;\n color?: Color;\n isReadOnly?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function MenuItem({\n children,\n icon,\n label,\n description,\n color,\n isReadOnly,\n className,\n style,\n textValue,\n ...props\n}: MenuItemProps) {\n const resolvedTextValue =\n textValue ??\n (typeof label === \"string\" ? label : undefined) ??\n (typeof children === \"string\" ? children : undefined);\n\n return (\n <RACMenuItem\n {...props}\n textValue={resolvedTextValue}\n data-color={color}\n data-readonly={isReadOnly || undefined}\n style={style}\n className={cn(className, \"prt-list-option prt-menu-item\")}\n >\n {({ isSelected }) => (\n <>\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div className=\"flex gap-3 prt-list-option-icon-wrapper\">\n {React.isValidElement(icon) &&\n React.cloneElement(icon as React.ReactElement<any>, {\n className: \"prt-list-option-icon\",\n size: 18,\n ...(icon as React.ReactElement<any>).props,\n })}\n </div>\n )}\n\n <div className=\"flex flex-col gap-1\">\n <div slot=\"label\" className=\"text-sm text-black\">\n {label ?? children}\n </div>\n {description && (\n <div\n slot=\"description\"\n className=\"text-sm leading-normal text-gray-500\"\n >\n {description}\n </div>\n )}\n </div>\n </div>\n {isSelected && <HiCheck className=\"selected-marker\" />}\n </>\n )}\n </RACMenuItem>\n );\n}\n\n/* ---------------------------- MenuSection ---------------------------- */\n\nexport interface MenuSectionProps<T extends object = object>\n extends Omit<RACMenuSectionProps<T>, \"className\" | \"children\"> {\n title?: React.ReactNode;\n children?: React.ReactNode;\n className?: string;\n}\n\nexport function MenuSection<T extends object>({\n title,\n children,\n className,\n ...props\n}: MenuSectionProps<T>) {\n return (\n <RACMenuSection {...props} className={cn(className, \"prt-list-section\")}>\n {title && <Header className=\"prt-list-section-header\">{title}</Header>}\n {children}\n </RACMenuSection>\n );\n}\n","import * as React from \"react\";\nimport {\n ListBox as RACListBox,\n ListBoxItem as RACListBoxItem,\n ListBoxSection as RACListBoxSection,\n Collection,\n Header,\n composeRenderProps,\n type ListBoxProps as RACListBoxProps,\n type ListBoxItemProps as RACListBoxItemProps,\n type ListBoxSectionProps as RACListBoxSectionProps,\n} from \"react-aria-components\";\nimport { HiCheck } from \"../../icons\";\nimport { cn } from \"../../utils/dom\";\nimport { Color, ColorVariant } from \"../../utils/theme\";\nimport { StyleProps } from \"../../utils/types\";\nimport { useTheme } from \"../theme\";\n\ninterface ListBoxConfig {\n showSelectionIndicator: boolean;\n renderSelectionIndicator?: (item: unknown) => React.ReactNode;\n}\n\nconst ListBoxConfigContext = React.createContext<ListBoxConfig>({\n showSelectionIndicator: true,\n});\n\nexport interface ListBoxRenderProps<T> {\n labelKey?: string;\n valueKey?: string;\n sectionKey?: string;\n color?: Color;\n width?: number | string;\n showSectionSeparator?: boolean;\n showSelectionIndicator?: boolean;\n renderOption?: (item: T) => React.ReactNode;\n renderSelectionIndicator?: (item: T) => React.ReactNode;\n renderSectionLabel?: (item: T) => React.ReactNode;\n renderEmpty?: () => React.ReactNode;\n}\n\nexport interface ListBoxProps<T extends object>\n extends Omit<\n RACListBoxProps<T>,\n \"className\" | \"style\" | \"children\" | \"items\"\n >,\n ListBoxRenderProps<T>,\n StyleProps<\"wrapper\" | \"label\" | \"section\" | \"option\"> {\n items?: Iterable<T>;\n children?: React.ReactNode | ((item: T) => React.ReactElement);\n listBoxRef?: React.Ref<HTMLDivElement>;\n}\n\nexport function ListBox<T extends object>({\n items,\n children,\n labelKey = \"label\",\n valueKey = \"id\",\n sectionKey,\n color = \"gray\",\n width,\n showSectionSeparator = true,\n showSelectionIndicator = true,\n renderOption,\n renderSelectionIndicator,\n renderSectionLabel,\n renderEmpty,\n className,\n classNames,\n style,\n styles,\n listBoxRef,\n ...props\n}: ListBoxProps<T>) {\n const theme = useTheme();\n\n const config = React.useMemo<ListBoxConfig>(\n () => ({\n showSelectionIndicator,\n renderSelectionIndicator: renderSelectionIndicator as ListBoxConfig[\"renderSelectionIndicator\"],\n }),\n [showSelectionIndicator, renderSelectionIndicator]\n );\n\n function renderItem(item: T) {\n const record = item as Record<string, unknown>;\n const id = record[valueKey] as string | number;\n const label = record[labelKey] as React.ReactNode;\n\n if (sectionKey && record[sectionKey]) {\n return (\n <ListBoxSection\n id={id}\n title={renderSectionLabel?.(item) ?? label}\n >\n <Collection items={record[sectionKey] as Iterable<T>}>\n {(child: T) => {\n const childRecord = child as Record<string, unknown>;\n return (\n <ListBoxItem\n id={childRecord[valueKey] as string | number}\n textValue={childRecord[labelKey] as string}\n >\n {renderOption?.(child) ??\n (childRecord[labelKey] as React.ReactNode)}\n </ListBoxItem>\n );\n }}\n </Collection>\n </ListBoxSection>\n );\n }\n\n return (\n <ListBoxItem id={id} textValue={label as string}>\n {renderOption?.(item) ?? label}\n </ListBoxItem>\n );\n }\n\n const listBoxChildren = children ?? renderItem;\n\n return (\n <ListBoxConfigContext.Provider value={config}>\n <RACListBox\n {...props}\n ref={listBoxRef}\n items={items}\n className={cn(\"prt-list-box-wrapper\", classNames?.wrapper, className)}\n data-radius={theme?.radius ?? \"lg\"}\n data-color={color}\n data-section-separator={showSectionSeparator}\n style={{ width, ...style, ...styles?.wrapper }}\n renderEmptyState={() => (\n <div\n className=\"flex items-center justify-center gap-3\"\n style={{ height: 50 }}\n >\n {renderEmpty?.() ?? (\n <span className=\"text-sm text-gray-400\">No options</span>\n )}\n </div>\n )}\n >\n {listBoxChildren as React.ReactNode}\n </RACListBox>\n </ListBoxConfigContext.Provider>\n );\n}\n\nexport interface ListBoxItemProps\n extends Omit<RACListBoxItemProps, \"className\"> {\n color?: Color;\n variant?: ColorVariant;\n className?: string;\n showSelectionIndicator?: boolean;\n}\n\nexport function ListBoxItem({\n color,\n variant,\n className,\n showSelectionIndicator,\n children,\n textValue,\n ...props\n}: ListBoxItemProps) {\n const config = React.useContext(ListBoxConfigContext);\n const showIndicator = showSelectionIndicator ?? config.showSelectionIndicator;\n\n const resolvedTextValue =\n textValue ?? (typeof children === \"string\" ? children : undefined);\n\n return (\n <RACListBoxItem\n {...props}\n textValue={resolvedTextValue}\n className={cn(\"prt-list-option\", className)}\n data-color={color}\n data-variant={variant}\n >\n {composeRenderProps(\n children as React.ReactNode,\n (rendered, renderProps) => (\n <>\n {rendered}\n {renderProps.isSelected && showIndicator && (\n <span className=\"selection-indicator\">\n {config.renderSelectionIndicator?.(\n (props as { value?: unknown }).value ?? props\n ) ?? <HiCheck size={16} />}\n </span>\n )}\n </>\n )\n )}\n </RACListBoxItem>\n );\n}\n\nexport interface ListBoxSectionProps<T extends object>\n extends Omit<RACListBoxSectionProps<T>, \"className\"> {\n title?: React.ReactNode;\n className?: string;\n}\n\nexport function ListBoxSection<T extends object>({\n title,\n className,\n children,\n ...props\n}: ListBoxSectionProps<T>) {\n return (\n <RACListBoxSection {...props} className={cn(\"prt-list-section\", className)}>\n {title && <Header className=\"prt-list-section-header\">{title}</Header>}\n {children as React.ReactNode}\n </RACListBoxSection>\n );\n}\n","import * as React from \"react\";\nimport {\n ComboBox as RACComboBox,\n Input as RACInput,\n Popover as RACPopover,\n useAsyncList,\n useFilter,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { Field } from \"../form/field\";\nimport { IconButton } from \"../button\";\nimport { ListBox, ListBoxProps } from \"../list-box/list-box\";\nimport { Loader } from \"../loader\";\nimport { Color, InputAppearance, Radius, Size } from \"../../utils/theme\";\nimport { ID, StyleProps } from \"../../utils/types\";\nimport { HiSelector } from \"../../icons\";\n\nexport interface ComboBoxProps<T extends object>\n extends\n Pick<\n ListBoxProps<T>,\n | \"labelKey\"\n | \"valueKey\"\n | \"sectionKey\"\n | \"renderOption\"\n | \"renderSectionLabel\"\n | \"disabledKeys\"\n | \"children\"\n >,\n StyleProps<\"wrapper\" | \"input\" | \"button\" | \"popover\"> {\n label?: React.ReactNode;\n description?: React.ReactNode;\n error?: React.ReactNode;\n placeholder?: string;\n prepend?: React.ReactNode;\n append?: React.ReactNode;\n selectorIcon?: React.ReactNode;\n selectorSize?: Size;\n isLoading?: boolean;\n loadingIndicator?: React.ReactNode;\n loadData?: (filter?: string, signal?: AbortSignal) => Promise<T[]>;\n items?: Iterable<T>;\n defaultItems?: Iterable<T>;\n inputValue?: string;\n defaultInputValue?: string;\n onInputChange?: (value: string) => void;\n selectedKey?: ID | null;\n defaultSelectedKey?: ID | null;\n onSelectionChange?: (key: ID | null) => void;\n allowsCustomValue?: boolean;\n menuTrigger?: \"focus\" | \"input\" | \"manual\";\n isDisabled?: boolean;\n isRequired?: boolean;\n color?: Color;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n appearance?: InputAppearance;\n radius?: Radius;\n}\n\nexport function ComboBox<T extends object>({\n description,\n error,\n label,\n selectorIcon = <HiSelector size={18} />,\n selectorSize = \"sm\",\n style,\n styles,\n className,\n classNames,\n isLoading,\n loadData,\n loadingIndicator = <Loader size=\"xs\" />,\n items,\n defaultItems,\n inputValue,\n onInputChange,\n placeholder,\n prepend,\n append,\n color,\n size,\n radius,\n appearance,\n labelKey,\n valueKey,\n sectionKey,\n renderOption,\n renderSectionLabel,\n children,\n ...props\n}: ComboBoxProps<T>) {\n const list = useAsyncList<T>({\n async load({ filterText, signal }) {\n if (loadData) {\n return { items: await loadData(filterText, signal) };\n }\n return { items: [] };\n },\n });\n\n const { contains } = useFilter({ sensitivity: \"base\" });\n const usingAsync = !!loadData;\n\n const comboItems = usingAsync ? (list.items as Iterable<T>) : items;\n const comboInputValue = usingAsync ? list.filterText : inputValue;\n const loading = usingAsync ? list.isLoading : isLoading;\n\n function handleInputChange(value: string) {\n if (usingAsync) list.setFilterText(value);\n onInputChange?.(value);\n }\n\n const comboBoxProps = {\n ...props,\n items: comboItems,\n defaultItems,\n inputValue: comboInputValue,\n onInputChange: handleInputChange,\n isInvalid: !!error,\n defaultFilter: contains,\n } as unknown as React.ComponentProps<typeof RACComboBox>;\n\n return (\n <RACComboBox\n {...comboBoxProps}\n className={cn(\"prt-combo-box\", className, classNames?.wrapper)}\n >\n <Field\n styles={styles}\n classNames={classNames}\n style={style}\n label={label}\n description={description}\n error={error}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n prepend={prepend}\n append={append}\n >\n <RACInput\n placeholder={placeholder}\n style={styles?.input}\n className={cn(\n \"prt-text-input-el\",\n \"prt-combo-box-input\",\n classNames?.input,\n )}\n />\n <IconButton\n className={cn(\"prt-combo-box-button\", classNames?.button)}\n style={styles?.button}\n variant=\"ghost\"\n color=\"gray\"\n size={selectorSize}\n >\n {loading ? loadingIndicator : selectorIcon}\n </IconButton>\n </Field>\n\n <RACPopover\n offset={6}\n className={cn(\n \"prt-popover\",\n \"prt-combo-box-popover\",\n classNames?.popover,\n )}\n style={styles?.popover}\n >\n <ListBox\n items={comboItems}\n labelKey={labelKey}\n valueKey={valueKey}\n sectionKey={sectionKey}\n renderOption={renderOption}\n renderSectionLabel={renderSectionLabel}\n width=\"var(--trigger-width)\"\n >\n {children}\n </ListBox>\n </RACPopover>\n </RACComboBox>\n );\n}\n","import * as React from \"react\";\nimport {\n RadioGroup as RACRadioGroup,\n RadioField,\n RadioButton,\n type RadioFieldProps,\n type RadioGroupProps as RACRadioGroupProps,\n} from \"react-aria-components\";\nimport { InputError } from \"../input-error\";\nimport { InputLabel } from \"../input-label\";\nimport { cn } from \"../../utils/dom\";\nimport { Color, InputAppearance } from \"../../utils/theme\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface RadioProps\n extends Omit<RadioFieldProps, \"className\" | \"style\" | \"children\"> {\n className?: string;\n style?: React.CSSProperties;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n appearance?: InputAppearance;\n color?: Color;\n children?: React.ReactNode;\n}\n\nexport function Radio({\n size = \"sm\",\n className,\n style,\n appearance,\n color,\n children,\n ...props\n}: RadioProps) {\n return (\n <RadioField {...props}>\n <RadioButton style={style} className={cn(\"prt-radio\", className)}>\n {({ isSelected }) => (\n <>\n <div\n data-color={color}\n className=\"prt-fake-radio\"\n data-appearance={appearance}\n data-checked={isSelected}\n data-size={size}\n />\n {children}\n </>\n )}\n </RadioButton>\n </RadioField>\n );\n}\n\ninterface RadioGroupProps\n extends Omit<RACRadioGroupProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\"> {\n children?: React.ReactNode;\n label?: React.ReactNode;\n description?: React.ReactNode;\n errorMessage?: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function RadioGroup({\n className,\n classNames,\n style,\n styles,\n label,\n description,\n errorMessage,\n children,\n ...props\n}: RadioGroupProps) {\n const isHorizontal = props.orientation === \"horizontal\";\n return (\n <RACRadioGroup\n {...props}\n aria-label={typeof label === \"string\" ? label : undefined}\n >\n <div\n style={{ ...style, ...styles?.wrapper }}\n className={cn(\n \"prt-radio-group flex flex-col gap-2\",\n className,\n classNames?.wrapper\n )}\n >\n {label && <InputLabel>{label}</InputLabel>}\n {description && (\n <span className=\"text-sm text-gray-600\">{description}</span>\n )}\n <div className={cn(\"flex gap-2\", isHorizontal ? \"flex-row\" : \"flex-col\")}>\n {children}\n </div>\n {errorMessage && <InputError>{errorMessage}</InputError>}\n </div>\n </RACRadioGroup>\n );\n}\n","import * as React from \"react\";\nimport {\n RadioField,\n RadioButton,\n type RadioFieldProps,\n} from \"react-aria-components\";\nimport { Color, InputAppearance } from \"../../utils/theme\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\nexport interface RadioCardProps\n extends Omit<RadioFieldProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\" | \"content\" | \"title\" | \"description\"> {\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n showIndicator?: boolean;\n appearance?: InputAppearance;\n color?: Color;\n}\n\nexport function RadioCard({\n title,\n description,\n children,\n appearance,\n showIndicator = true,\n color,\n className,\n style,\n classNames,\n styles,\n ...props\n}: RadioCardProps) {\n return (\n <RadioField {...props}>\n <RadioButton\n data-radius=\"lg\"\n className={cn(className, \"prt-radio-card\", classNames?.wrapper)}\n data-color={color}\n data-appearance={appearance}\n style={{ ...style, ...styles?.wrapper }}\n >\n {({ isSelected }) => (\n <>\n {showIndicator && (\n <div\n className=\"prt-radio-card-indicator prt-fake-radio\"\n data-size=\"sm\"\n data-checked={isSelected}\n />\n )}\n <div\n className={cn(\n \"flex w-full flex-col gap-2.5 prt-radio-card-content\",\n classNames?.content\n )}\n style={{ ...styles?.content }}\n >\n {(title || description) && (\n <div className=\"flex flex-col gap-0.5\">\n {title && (\n <div\n className={cn(\"text-sm\", classNames?.title)}\n style={{ ...styles?.title }}\n >\n {title}\n </div>\n )}\n {description && (\n <div\n className={cn(\n \"text-xs leading-relaxed text-gray-400\",\n classNames?.description\n )}\n style={{ ...styles?.description }}\n >\n {description}\n </div>\n )}\n </div>\n )}\n {children}\n </div>\n </>\n )}\n </RadioButton>\n </RadioField>\n );\n}\n","import * as React from \"react\";\nimport {\n RadioField,\n RadioButton,\n type RadioFieldProps,\n} from \"react-aria-components\";\nimport { StyleProps } from \"../../utils/types\";\nimport { cn } from \"../../utils/dom\";\n\ninterface RadioItemProps\n extends Omit<RadioFieldProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\"> {\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function RadioItem({\n className,\n style,\n classNames,\n styles,\n children,\n ...props\n}: RadioItemProps) {\n return (\n <RadioField {...props}>\n <RadioButton\n style={{ ...style, ...styles?.wrapper }}\n className={cn(className, classNames?.wrapper, \"prt-radio-item\")}\n >\n {children}\n </RadioButton>\n </RadioField>\n );\n}\n","import React from \"react\";\nimport { getRandomColor, warnDeprecation } from \"../../utils/helpers\";\nimport { BorderRadius, Color, ColorVariant } from \"../../utils/theme\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\ntype TagProps = Omit<React.ComponentPropsWithRef<\"span\">, \"className\" | \"style\"> &\n StyleProps<\"wrapper\"> & {\n prepend?: React.ReactNode;\n append?: React.ReactNode;\n hashValue?: string;\n color?: Color;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n /**@deprecated use radius instead */\n shape?: \"pill\" | \"rounded\" | \"sharp\";\n radius?: BorderRadius;\n variant?: ColorVariant;\n };\n\nexport function Tag({\n prepend,\n append,\n children,\n hashValue,\n color,\n size = \"sm\",\n shape,\n variant = \"light\",\n className,\n style,\n classNames,\n styles,\n radius = \"full\",\n ref,\n ...props\n}: TagProps) {\n warnDeprecation(\"shape\", \"radius\", shape);\n\n const randomColor = React.useMemo(() => {\n if (hashValue) {\n return getRandomColor(hashValue);\n }\n\n return \"gray\";\n }, [hashValue]);\n\n return (\n <span\n className={cn(className, \"prt-tag\", classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n data-radius={radius}\n data-size={size}\n data-color={color ?? randomColor}\n data-variant={variant}\n ref={ref}\n {...props}\n >\n {prepend}\n {children}\n {append}\n </span>\n );\n}\n","import * as React from \"react\";\nimport {\n Select as RACSelect,\n SelectValue,\n Popover as RACPopover,\n Button as RACButton,\n} from \"react-aria-components\";\nimport { HiSelector } from \"../../icons\";\nimport { cn } from \"../../utils/dom\";\nimport { Tag } from \"../tag\";\nimport { Field } from \"../form/field\";\nimport { ListBox, ListBoxProps } from \"../list-box/list-box\";\nimport { useTheme } from \"../theme/theme-provider\";\nimport { BorderRadius, Color, InputAppearance } from \"../../utils/theme\";\nimport { ID, StyleProps } from \"../../utils/types\";\n\ntype SingleOrMultipleValue = ID | Array<ID>;\ntype SelectionMode = \"single\" | \"multiple\";\n\ninterface MockNativeOnChangeEvent {\n target: {\n value: SingleOrMultipleValue;\n name?: string;\n };\n}\n\nexport interface SelectProps<T extends object>\n extends Pick<\n ListBoxProps<T>,\n | \"items\"\n | \"labelKey\"\n | \"valueKey\"\n | \"sectionKey\"\n | \"renderOption\"\n | \"renderSectionLabel\"\n | \"disabledKeys\"\n | \"children\"\n >,\n StyleProps<\n \"wrapper\" | \"trigger\" | \"value\" | \"placeholder\" | \"label\" | \"popover\"\n > {\n label?: React.ReactNode;\n description?: React.ReactNode;\n error?: React.ReactNode;\n placeholder?: string;\n selectionMode?: SelectionMode;\n value?: SingleOrMultipleValue;\n defaultValue?: SingleOrMultipleValue;\n name?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n color?: Color;\n listBoxColor?: Color;\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n radius?: BorderRadius;\n appearance?: InputAppearance;\n showSectionSeparator?: boolean;\n showSelectionIndicator?: boolean;\n renderValue?: (value: T) => React.ReactNode;\n onChange?: (event: MockNativeOnChangeEvent) => void;\n onSelectionChange?: (keys: Array<ID>) => void;\n}\n\nexport function Select<T extends object>({\n label,\n description,\n error,\n placeholder,\n selectionMode = \"single\",\n appearance = \"outline\",\n renderValue,\n color = \"gray\",\n size = \"sm\",\n radius,\n listBoxColor,\n name,\n value,\n defaultValue,\n isDisabled,\n isRequired,\n disabledKeys,\n onChange,\n onSelectionChange,\n showSectionSeparator = true,\n showSelectionIndicator = true,\n items,\n children,\n labelKey = \"label\",\n valueKey = \"id\",\n sectionKey,\n renderOption,\n renderSectionLabel,\n className,\n classNames,\n style,\n styles,\n}: SelectProps<T>) {\n const theme = useTheme();\n const isMultiple = selectionMode === \"multiple\";\n color = color ?? theme?.color;\n\n function handleChange(v: ID | ID[] | null) {\n onChange?.({ target: { value: v as SingleOrMultipleValue, name } });\n onSelectionChange?.(v == null ? [] : Array.isArray(v) ? v : [v]);\n }\n\n function labelOf(item: T | null): React.ReactNode {\n if (item == null) return null;\n return (item as Record<string, unknown>)[labelKey] as React.ReactNode;\n }\n\n const racSelectProps = {\n selectionMode,\n isDisabled,\n isRequired,\n placeholder,\n disabledKeys,\n value,\n defaultValue,\n isInvalid: !!error,\n onChange: handleChange,\n } as unknown as React.ComponentProps<typeof RACSelect>;\n\n return (\n <RACSelect\n {...racSelectProps}\n aria-label={label == null ? placeholder ?? \"Select\" : undefined}\n className={cn(\"prt-select\", className, classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n >\n <Field\n replaceDefaultControlWrapper\n label={label}\n error={error}\n description={description}\n color={color}\n size={size}\n radius={radius}\n classNames={classNames}\n styles={styles}\n >\n <RACButton\n data-selection-mode={selectionMode}\n data-appearance={appearance}\n style={styles?.trigger}\n className={cn(\"prt-input-control\", \"prt-select-trigger\", classNames?.trigger)}\n >\n <SelectValue<T> className={cn(\"single-value\", classNames?.value)}>\n {({ isPlaceholder, selectedItems, selectedText }) => {\n if (isPlaceholder) {\n return (\n <span\n style={styles?.placeholder}\n className={cn(\"text-gray-400\", classNames?.placeholder)}\n >\n {placeholder}\n </span>\n );\n }\n\n if (isMultiple) {\n return (\n <div className=\"flex flex-wrap gap-1\">\n {selectedItems.map((item, index) =>\n item == null\n ? null\n : (renderValue?.(item) ?? (\n <Tag\n size=\"md\"\n variant=\"pastel\"\n color={color}\n key={index}\n >\n {labelOf(item)}\n </Tag>\n ))\n )}\n </div>\n );\n }\n\n const selectedItem = selectedItems[0] ?? null;\n return (\n <div\n className={cn(\"single-value\", classNames?.value)}\n style={styles?.value}\n >\n {(selectedItem && renderValue?.(selectedItem)) ??\n labelOf(selectedItem) ??\n selectedText}\n </div>\n );\n }}\n </SelectValue>\n <HiSelector className=\"selector\" size={18} />\n </RACButton>\n </Field>\n\n <RACPopover\n offset={4}\n className={cn(\"prt-popover\", \"prt-select-popover\", classNames?.popover)}\n style={styles?.popover}\n >\n <ListBox\n items={items}\n labelKey={labelKey}\n valueKey={valueKey}\n sectionKey={sectionKey}\n renderOption={renderOption}\n renderSectionLabel={renderSectionLabel}\n showSectionSeparator={showSectionSeparator}\n showSelectionIndicator={showSelectionIndicator}\n color={listBoxColor ?? \"gray\"}\n width=\"var(--trigger-width)\"\n >\n {children}\n </ListBox>\n </RACPopover>\n </RACSelect>\n );\n}\n","import * as React from \"react\";\nimport {\n Calendar as RACCalendar,\n CalendarGrid,\n CalendarGridHeader,\n CalendarGridBody,\n CalendarHeaderCell,\n CalendarCell,\n CalendarMonthPicker,\n CalendarYearPicker,\n Heading,\n type CalendarProps as RACCalendarProps,\n type DateValue,\n} from \"react-aria-components\";\nimport { IconButton } from \"../button\";\nimport { Select } from \"../select\";\nimport { HiChevronLeft, HiChevronRight } from \"../../icons\";\nimport { Color, Radius } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\n\nexport interface CalendarBodyProps {\n numberOfMonths?: number;\n showMonthAndYearPickers?: boolean;\n}\n\n// Header (prev/next + heading or month/year pickers) plus the month grids.\n// Shared by both Calendar and RangeCalendar — RAC's grid/cell/heading/picker\n// pieces read from whichever calendar context wraps them.\nexport function CalendarBody({\n numberOfMonths = 1,\n showMonthAndYearPickers = false,\n}: CalendarBodyProps) {\n return (\n <>\n <header className=\"prt-calendar-header\">\n <IconButton\n slot=\"previous\"\n variant=\"outline\"\n radius=\"full\"\n size=\"sm\"\n color=\"gray\"\n >\n <HiChevronLeft size={20} />\n </IconButton>\n\n {showMonthAndYearPickers ? (\n <div className=\"flex items-center gap-2 prt-calendar-selects\">\n <CalendarMonthPicker>\n {({ \"aria-label\": ariaLabel, value, onChange, items }) => (\n <Select\n aria-label={ariaLabel}\n size=\"sm\"\n appearance=\"filled\"\n valueKey=\"id\"\n labelKey=\"formatted\"\n value={value as string | number}\n onChange={(e) => onChange(e.target.value as number)}\n items={items}\n />\n )}\n </CalendarMonthPicker>\n <CalendarYearPicker>\n {({ \"aria-label\": ariaLabel, value, onChange, items }) => (\n <Select\n aria-label={ariaLabel}\n size=\"sm\"\n appearance=\"filled\"\n valueKey=\"id\"\n labelKey=\"formatted\"\n value={value as string | number}\n onChange={(e) => onChange(e.target.value as number)}\n items={items}\n />\n )}\n </CalendarYearPicker>\n </div>\n ) : (\n <Heading className=\"prt-calendar-heading\" />\n )}\n\n <IconButton\n slot=\"next\"\n variant=\"outline\"\n radius=\"full\"\n size=\"sm\"\n color=\"gray\"\n >\n <HiChevronRight size={20} />\n </IconButton>\n </header>\n\n <div className=\"prt-calendar-months\">\n {Array.from({ length: numberOfMonths }, (_, i) => (\n <CalendarGrid\n key={i}\n offset={{ months: i }}\n className=\"prt-calendar-grid\"\n >\n <CalendarGridHeader>\n {(day) => (\n <CalendarHeaderCell className=\"prt-date-weekday\">\n {day}\n </CalendarHeaderCell>\n )}\n </CalendarGridHeader>\n <CalendarGridBody>\n {(date) => <CalendarCell date={date} className=\"prt-date-cell\" />}\n </CalendarGridBody>\n </CalendarGrid>\n ))}\n </div>\n </>\n );\n}\n\nexport interface CalendarProps\n extends Omit<\n RACCalendarProps<DateValue>,\n \"className\" | \"style\" | \"children\" | \"visibleDuration\"\n > {\n numberOfMonths?: number;\n showMonthAndYearPickers?: boolean;\n color?: Color;\n radius?: Radius;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function Calendar({\n numberOfMonths = 1,\n showMonthAndYearPickers,\n color,\n radius,\n ref,\n ...props\n}: CalendarProps) {\n const theme = useTheme();\n return (\n <RACCalendar\n {...props}\n ref={ref}\n visibleDuration={{ months: numberOfMonths }}\n data-color={color ?? theme?.color ?? \"primary\"}\n data-radius={radius ?? theme?.radius ?? \"lg\"}\n className=\"prt-calendar-wrapper\"\n >\n <CalendarBody\n numberOfMonths={numberOfMonths}\n showMonthAndYearPickers={showMonthAndYearPickers}\n />\n </RACCalendar>\n );\n}\n","import * as React from \"react\";\nimport {\n RangeCalendar as RACRangeCalendar,\n type RangeCalendarProps as RACRangeCalendarProps,\n type DateValue,\n} from \"react-aria-components\";\nimport { CalendarBody } from \"./calendar\";\nimport { Color, Radius } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\n\nexport interface RangeCalendarProps\n extends Omit<\n RACRangeCalendarProps<DateValue>,\n \"className\" | \"style\" | \"children\" | \"visibleDuration\"\n > {\n numberOfMonths?: number;\n showMonthAndYearPickers?: boolean;\n color?: Color;\n radius?: Radius;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function RangeCalendar({\n numberOfMonths = 1,\n showMonthAndYearPickers,\n color,\n radius,\n ref,\n ...props\n}: RangeCalendarProps) {\n const theme = useTheme();\n return (\n <RACRangeCalendar\n {...props}\n ref={ref}\n visibleDuration={{ months: numberOfMonths }}\n data-color={color ?? theme?.color ?? \"primary\"}\n data-radius={radius ?? theme?.radius ?? \"lg\"}\n data-range=\"true\"\n className=\"prt-calendar-wrapper\"\n >\n <CalendarBody\n numberOfMonths={numberOfMonths}\n showMonthAndYearPickers={showMonthAndYearPickers}\n />\n </RACRangeCalendar>\n );\n}\n","import * as React from \"react\";\nimport { DateInput as RACDateInput, DateSegment } from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\n\ninterface DateSegmentsProps {\n slot?: string;\n className?: string;\n}\n\n// Shared segment renderer used by DateField, TimeField, DatePicker, and\n// DateRangePicker. RAC's DateInput/DateSegment own segment behaviour; we only\n// attach our classes.\nexport function DateSegments({ slot, className }: DateSegmentsProps) {\n return (\n <RACDateInput slot={slot} className={cn(\"prt-date-field\", className)}>\n {(segment) => (\n <DateSegment segment={segment} className=\"prt-date-input-segment\" />\n )}\n </RACDateInput>\n );\n}\n","import * as React from \"react\";\nimport {\n DateField as RACDateField,\n Group,\n type DateFieldProps as RACDateFieldProps,\n type DateValue,\n} from \"react-aria-components\";\nimport { parseDate } from \"@internationalized/date\";\nimport { Field, FieldComponentProps } from \"../form/field\";\nimport { DateSegments } from \"./date-segments\";\nimport { cn } from \"../../utils/dom\";\n\nexport interface DateFieldProps\n extends Omit<\n RACDateFieldProps<DateValue>,\n \"value\" | \"onChange\" | \"defaultValue\" | \"className\" | \"style\" | \"children\"\n >,\n FieldComponentProps<\"input\"> {\n value?: string;\n defaultValue?: string;\n onChange?(value: string | null, dateObject?: DateValue | null): void;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function DateField({\n appearance = \"outline\",\n size = \"md\",\n color,\n radius,\n value,\n defaultValue,\n onChange,\n label,\n description,\n error,\n validationStatus,\n prepend,\n append,\n className,\n classNames,\n style,\n styles,\n ref,\n ...props\n}: DateFieldProps) {\n function handleChange(date: DateValue | null) {\n onChange?.(date?.toString() ?? null, date);\n }\n\n return (\n <RACDateField\n {...props}\n value={value != null ? parseDate(value) : undefined}\n defaultValue={defaultValue != null ? parseDate(defaultValue) : undefined}\n onChange={handleChange}\n isInvalid={!!error}\n >\n <Field\n replaceDefaultControlWrapper\n label={label}\n error={error}\n description={description}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n >\n <Group\n ref={ref}\n data-appearance={appearance}\n data-color={color}\n className={cn(\"prt-input-control\", \"date-field-control\")}\n >\n {prepend && (\n <div className=\"add-on add-on-left flex items-center\">{prepend}</div>\n )}\n <DateSegments />\n {append && (\n <div className=\"add-on add-on-right flex items-center\">{append}</div>\n )}\n </Group>\n </Field>\n </RACDateField>\n );\n}\n","import * as React from \"react\";\nimport {\n TimeField as RACTimeField,\n Group,\n type TimeFieldProps as RACTimeFieldProps,\n type TimeValue,\n} from \"react-aria-components\";\nimport { parseTime } from \"@internationalized/date\";\nimport { Field, FieldComponentProps } from \"../form/field\";\nimport { DateSegments } from \"./date-segments\";\nimport { cn } from \"../../utils/dom\";\n\nexport interface TimeFieldProps\n extends Omit<\n RACTimeFieldProps<TimeValue>,\n \"value\" | \"onChange\" | \"defaultValue\" | \"className\" | \"style\" | \"children\"\n >,\n FieldComponentProps<\"input\"> {\n value?: string;\n defaultValue?: string;\n onChange?(value: string | null, timeObject?: TimeValue | null): void;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function TimeField({\n appearance = \"outline\",\n size = \"md\",\n color,\n radius,\n value,\n defaultValue,\n onChange,\n label,\n description,\n error,\n validationStatus,\n prepend,\n append,\n className,\n classNames,\n style,\n styles,\n ref,\n ...props\n}: TimeFieldProps) {\n function handleChange(time: TimeValue | null) {\n onChange?.(time?.toString() ?? null, time);\n }\n\n return (\n <RACTimeField\n {...props}\n value={value != null ? parseTime(value) : undefined}\n defaultValue={defaultValue != null ? parseTime(defaultValue) : undefined}\n onChange={handleChange}\n isInvalid={!!error}\n >\n <Field\n replaceDefaultControlWrapper\n label={label}\n error={error}\n description={description}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n >\n <Group\n ref={ref}\n data-appearance={appearance}\n data-color={color}\n className={cn(\"prt-input-control\", \"date-field-control\")}\n >\n {prepend && (\n <div className=\"add-on add-on-left flex items-center\">{prepend}</div>\n )}\n <DateSegments />\n {append && (\n <div className=\"add-on add-on-right flex items-center\">{append}</div>\n )}\n </Group>\n </Field>\n </RACTimeField>\n );\n}\n","import * as React from \"react\";\nimport {\n DatePicker as RACDatePicker,\n Group,\n Popover as RACPopover,\n type DatePickerProps as RACDatePickerProps,\n type DateValue,\n} from \"react-aria-components\";\nimport { parseDate } from \"@internationalized/date\";\nimport { HiOutlineCalendar } from \"../../icons\";\nimport { Calendar } from \"./calendar\";\nimport { DateSegments } from \"./date-segments\";\nimport { IconButton } from \"../button\";\nimport { Field, FieldComponentProps } from \"../form/field\";\nimport { cn } from \"../../utils/dom\";\n\nexport interface DatePickerProps\n extends\n Omit<\n RACDatePickerProps<DateValue>,\n \"value\" | \"onChange\" | \"defaultValue\" | \"className\" | \"style\" | \"children\"\n >,\n FieldComponentProps<\"input\"> {\n numberOfMonths?: number;\n showMonthAndYearPickers?: boolean;\n value?: string;\n defaultValue?: string;\n onChange?(value: string | null, dateObject?: DateValue | null): void;\n selectorIcon?: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function DatePicker({\n appearance = \"outline\",\n size = \"md\",\n color,\n numberOfMonths,\n showMonthAndYearPickers,\n radius,\n selectorIcon = <HiOutlineCalendar size={16} />,\n value,\n defaultValue,\n onChange,\n label,\n description,\n error,\n validationStatus,\n className,\n classNames,\n style,\n styles,\n ref,\n ...props\n}: DatePickerProps) {\n function handleChange(date: DateValue | null) {\n onChange?.(date?.toString() ?? null, date);\n }\n\n return (\n <RACDatePicker\n {...props}\n value={value != null ? parseDate(value) : undefined}\n defaultValue={defaultValue != null ? parseDate(defaultValue) : undefined}\n onChange={handleChange}\n isInvalid={!!error}\n >\n <Field\n replaceDefaultControlWrapper\n label={label}\n error={error}\n description={description}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n >\n <Group\n ref={ref}\n data-appearance={appearance}\n data-color={color}\n className={cn(\"prt-input-control\", \"prt-date-picker-trigger\")}\n >\n <DateSegments />\n <IconButton size=\"sm\" variant=\"light\" color={color}>\n {selectorIcon}\n </IconButton>\n </Group>\n </Field>\n\n <RACPopover\n offset={8}\n placement=\"bottom start\"\n className={cn(\"prt-popover\", \"prt-date-popover\")}\n >\n <Calendar\n color={color}\n radius={radius}\n numberOfMonths={numberOfMonths}\n showMonthAndYearPickers={showMonthAndYearPickers}\n />\n </RACPopover>\n </RACDatePicker>\n );\n}\n","import * as React from \"react\";\nimport {\n DateRangePicker as RACDateRangePicker,\n Group,\n Popover as RACPopover,\n type DateRangePickerProps as RACDateRangePickerProps,\n type DateValue,\n} from \"react-aria-components\";\nimport { parseDate } from \"@internationalized/date\";\nimport { HiOutlineCalendar } from \"../../icons\";\nimport { RangeCalendar } from \"./range-calendar\";\nimport { DateSegments } from \"./date-segments\";\nimport { IconButton } from \"../button\";\nimport { Field, FieldComponentProps } from \"../form/field\";\nimport { cn } from \"../../utils/dom\";\n\ninterface DateRangeStrings {\n start: string;\n end: string;\n}\n\ninterface DateRangeValue {\n start: DateValue;\n end: DateValue;\n}\n\nexport interface DateRangePickerProps\n extends\n Omit<\n RACDateRangePickerProps<DateValue>,\n \"value\" | \"onChange\" | \"defaultValue\" | \"className\" | \"style\" | \"children\"\n >,\n FieldComponentProps<\"input\"> {\n numberOfMonths?: number;\n showMonthAndYearPickers?: boolean;\n value?: DateRangeStrings;\n defaultValue?: DateRangeStrings;\n onChange?(\n value: DateRangeStrings | null,\n range?: DateRangeValue | null,\n ): void;\n dropdownIcon?: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nfunction toRange(value?: DateRangeStrings) {\n return value != null\n ? { start: parseDate(value.start), end: parseDate(value.end) }\n : undefined;\n}\n\nexport function DateRangePicker({\n appearance = \"outline\",\n size = \"md\",\n color,\n numberOfMonths = 2,\n showMonthAndYearPickers,\n radius,\n dropdownIcon = <HiOutlineCalendar size={16} />,\n value,\n defaultValue,\n onChange,\n label,\n description,\n error,\n validationStatus,\n className,\n classNames,\n style,\n styles,\n ref,\n ...props\n}: DateRangePickerProps) {\n function handleChange(range: DateRangeValue | null) {\n onChange?.(\n range\n ? { start: range.start.toString(), end: range.end.toString() }\n : null,\n range,\n );\n }\n\n return (\n <RACDateRangePicker\n {...props}\n value={toRange(value)}\n defaultValue={toRange(defaultValue)}\n onChange={handleChange}\n isInvalid={!!error}\n >\n <Field\n replaceDefaultControlWrapper\n label={label}\n error={error}\n description={description}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n >\n <Group\n ref={ref}\n data-appearance={appearance}\n data-color={color}\n className={cn(\"prt-input-control\", \"prt-date-picker-trigger\")}\n >\n <div className=\"prt-date-range-fields\">\n <DateSegments slot=\"start\" />\n <span aria-hidden=\"true\" className=\"prt-date-range-sep\">\n –\n </span>\n <DateSegments slot=\"end\" />\n </div>\n <IconButton size=\"sm\" variant=\"light\" color={color}>\n {dropdownIcon}\n </IconButton>\n </Group>\n </Field>\n\n <RACPopover\n offset={8}\n placement=\"bottom start\"\n className={cn(\"prt-popover\", \"prt-date-popover\")}\n >\n <RangeCalendar\n color={color}\n radius={radius}\n numberOfMonths={numberOfMonths}\n showMonthAndYearPickers={showMonthAndYearPickers}\n />\n </RACPopover>\n </RACDateRangePicker>\n );\n}\n","import * as React from \"react\";\nimport { hashCode } from \"../../utils/helpers\";\nimport { cn } from \"../../utils/dom\";\nimport { Color, Radius, Size, Variant, supportedColors } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { StyleProps } from \"../../utils/types\";\n\ntype AvatarSize = Size | \"2xl\" | \"3xl\";\n\ninterface AvatarGroupContextValue {\n size?: AvatarSize;\n color?: Color;\n variant?: Variant;\n}\n\nconst AvatarGroupContext =\n React.createContext<AvatarGroupContextValue | null>(null);\n\nfunction defaultGetInitials(name: string): string {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return \"\";\n if (parts.length === 1) return parts[0].slice(0, 2);\n return parts[0][0] + parts[parts.length - 1][0];\n}\n\nexport interface AvatarProps\n extends React.ComponentPropsWithRef<\"div\">,\n StyleProps<\"base\" | \"fallback\" | \"img\"> {\n src?: string;\n alt?: string;\n name?: string;\n fallback?: React.ReactNode;\n radius?: Radius;\n color?: Color;\n variant?: Variant;\n size?: AvatarSize;\n getInitials?: (name: string) => string;\n}\n\nexport function Avatar({\n src,\n alt,\n name,\n color,\n variant,\n fallback,\n children,\n size,\n className,\n radius,\n classNames,\n styles,\n style,\n getInitials = defaultGetInitials,\n ref,\n ...props\n}: AvatarProps) {\n const [erroredSrc, setErroredSrc] = React.useState<string>();\n const theme = useTheme();\n const group = React.useContext(AvatarGroupContext);\n\n const defaultColor = React.useMemo(() => {\n return supportedColors[hashCode(name || \"\") % supportedColors.length];\n }, [name]);\n\n const resolvedSize = size ?? group?.size ?? \"md\";\n const resolvedVariant = variant ?? group?.variant ?? \"light\";\n const resolvedColor = color ?? group?.color ?? defaultColor;\n\n function renderContent() {\n if (src && erroredSrc !== src) {\n return (\n <img\n className={cn(\"prt-avatar-img\", classNames?.img)}\n style={styles?.img}\n onError={() => setErroredSrc(src)}\n src={src}\n alt={alt ?? name}\n />\n );\n }\n if (children) return children;\n if (name) {\n return (\n <span\n className={cn(\"prt-avatar-fallback\", classNames?.fallback)}\n style={styles?.fallback}\n >\n {getInitials(name)}\n </span>\n );\n }\n return fallback ?? null;\n }\n\n return (\n <div\n style={{ ...style, ...styles?.base }}\n className={cn(\"prt-avatar prt-size\", className, classNames?.base)}\n data-radius={radius ?? theme?.avatarRadiusSize ?? \"full\"}\n data-color={resolvedColor}\n data-variant={resolvedVariant}\n data-interactive={false}\n data-size={resolvedSize}\n role=\"img\"\n aria-label={alt ?? name}\n ref={ref}\n {...props}\n >\n {renderContent()}\n </div>\n );\n}\n\nexport interface AvatarGroupProps\n extends StyleProps<\"wrapper\" | \"overflow\"> {\n max?: number;\n size?: AvatarSize;\n color?: Color;\n variant?: Variant;\n children?: React.ReactNode;\n}\n\nexport function AvatarGroup({\n max,\n size,\n color,\n variant,\n children,\n className,\n style,\n classNames,\n styles,\n}: AvatarGroupProps) {\n const value = React.useMemo(\n () => ({ size, color, variant }),\n [size, color, variant]\n );\n\n const items = React.Children.toArray(children);\n const visible = max != null ? items.slice(0, max) : items;\n const overflow = max != null ? Math.max(0, items.length - max) : 0;\n\n return (\n <AvatarGroupContext.Provider value={value}>\n <div\n className={cn(\"prt-avatar-group\", className, classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n >\n {visible}\n {overflow > 0 && (\n <div\n className={cn(\"prt-avatar prt-size\", classNames?.overflow)}\n style={styles?.overflow}\n data-size={size ?? \"md\"}\n data-color={color ?? \"gray\"}\n data-variant={variant ?? \"light\"}\n data-radius=\"full\"\n data-interactive={false}\n >\n +{overflow}\n </div>\n )}\n </div>\n </AvatarGroupContext.Provider>\n );\n}\n","import * as React from \"react\";\nimport {\n DropZone,\n FileTrigger,\n Button as RACButton,\n type FileDropItem,\n} from \"react-aria-components\";\nimport { ActionStatus, StyleProps } from \"../../utils/types\";\nimport { cn } from \"../../utils/dom\";\nimport {\n HiOutlineCheckCircle,\n HiOutlineDocumentAdd,\n HiOutlineExclamationCircle,\n HiOutlinePaperClip,\n HiOutlineRefresh,\n HiOutlineTrash,\n} from \"../../icons\";\nimport { Loader } from \"../loader\";\nimport { IconButton } from \"../button\";\nimport { InputError } from \"../input-error\";\nimport { InputLabel } from \"../input-label\";\nimport { isEmptyArray } from \"../../utils/assertions\";\nimport { id } from \"../../utils/helpers\";\nimport { Color } from \"../../utils/theme\";\n\nexport type Upload = {\n name: string;\n url: string;\n id: string;\n file?: File;\n status?: ActionStatus;\n progress?: number;\n};\n\ninterface FileUploaderProps\n extends StyleProps<\"wrapper\" | \"dropzone\" | \"list\"> {\n onFileUpload?: (files: Array<Upload>) => void;\n onRemoveFile?: () => void;\n onStatusChange?: (status: ActionStatus) => void;\n error?: React.ReactNode;\n label?: React.ReactNode;\n allowMultiple?: boolean;\n uploads?: Array<Upload>;\n hideFileList?: boolean;\n color?: Color;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nfunction convertFileToUpload(file: File): Upload {\n return {\n name: file.name,\n id: id(),\n url: URL.createObjectURL(file),\n status: \"success\",\n file,\n };\n}\n\nexport function FileUploader({\n onFileUpload,\n onRemoveFile,\n error,\n label,\n allowMultiple,\n uploads: controlledUploads,\n hideFileList,\n color = \"gray\",\n ref,\n classNames,\n styles,\n className,\n style,\n}: FileUploaderProps) {\n const [_uploads, setUploads] = React.useState<Array<Upload>>([]);\n const uploads = controlledUploads ?? _uploads;\n\n function onUpload(next: Array<Upload>) {\n if (isEmptyArray(next)) return;\n setUploads(next);\n onFileUpload?.(next);\n }\n\n function handleSelect(files: FileList | null) {\n if (!files?.length) return;\n onUpload(Array.from(files).map(convertFileToUpload));\n }\n\n function handleRemoveFile() {\n setUploads([]);\n onRemoveFile?.();\n }\n\n function handleRetry() {\n console.log(\"retry\");\n }\n\n const isIdle =\n allowMultiple ||\n (!allowMultiple && uploads[0]?.status === \"idle\") ||\n !uploads.length;\n const isUploading = !allowMultiple && uploads[0]?.status === \"loading\";\n const isUploaded = !allowMultiple && uploads[0]?.status === \"success\";\n const isFailed = !allowMultiple && uploads[0]?.status === \"error\";\n\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col gap-2.5\", classNames?.wrapper, className)}\n style={{ ...styles?.wrapper, ...style }}\n >\n {label && <InputLabel>{label}</InputLabel>}\n\n <DropZone\n aria-label={typeof label === \"string\" ? label : \"File upload\"}\n onDrop={async (e) => {\n const fileItems = e.items.filter(\n (item) => item.kind === \"file\"\n ) as Array<FileDropItem>;\n const files = await Promise.all(\n fileItems.map((item) => item.getFile())\n );\n onUpload(files.map(convertFileToUpload));\n }}\n data-radius=\"lg\"\n data-color={color}\n className={cn(\"prt-file-uploader\", classNames?.dropzone)}\n style={{ ...styles?.dropzone }}\n data-state={\n allowMultiple || !uploads.length ? \"idle\" : uploads[0]?.status\n }\n >\n {isIdle && (\n <FileTrigger allowsMultiple={allowMultiple} onSelect={handleSelect}>\n <RACButton className=\"prt-file-uploader-trigger\">\n <div className=\"flex items-center gap-2.5\">\n <HiOutlineDocumentAdd className=\"state-icon\" size={20} />\n <span className=\"text-sm text-inherit\">\n Click or drag files here to upload\n </span>\n </div>\n </RACButton>\n </FileTrigger>\n )}\n\n {isUploading && (\n <div className=\"flex items-center gap-2.5\">\n <Loader size=\"xs\" />\n <span className=\"text-sm text-inherit\">\n Name_of_file.ext / Uploading...\n </span>\n </div>\n )}\n\n {isUploaded && (\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"flex items-center gap-2.5\">\n <HiOutlineCheckCircle size={16} />\n <span className=\"text-sm text-green-600\">\n File successfully uploaded\n </span>\n </div>\n\n <IconButton\n onPress={handleRemoveFile}\n variant={\"outline\"}\n color=\"green\"\n size=\"xs\"\n >\n <HiOutlineTrash size={16} />\n </IconButton>\n </div>\n )}\n\n {isFailed && (\n <div className=\"flex w-full justify-between\">\n <div className=\"flex items-center gap-2.5\">\n <HiOutlineExclamationCircle className=\"state-icon\" />\n <span className=\"text-sm text-red-600\">\n Failed to upload file\n </span>\n </div>\n\n <IconButton\n onPress={handleRetry}\n variant={\"outline\"}\n color={\"tomato\"}\n size={\"xs\"}\n >\n <HiOutlineRefresh size={16} />\n </IconButton>\n </div>\n )}\n </DropZone>\n\n {uploads.length > 1 && !hideFileList && (\n <div\n style={{ marginTop: 10, ...styles?.list }}\n className={cn(\"flex flex-col gap-3 upload-list\", classNames?.list)}\n >\n {uploads.map((upload) => (\n <div className=\"flex items-center gap-2.5\" key={upload.id}>\n {upload.status === \"loading\" && <Loader></Loader>}\n {upload.status === \"success\" && <HiOutlinePaperClip />}\n <span className=\"text-sm text-gray-700\">{upload.name}</span>\n </div>\n ))}\n </div>\n )}\n\n {error && <InputError>{error}</InputError>}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\n\ninterface SeparatorProps extends React.ComponentPropsWithRef<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\";\n color?: Color;\n opacity?: \"faint\" | \"medium\" | \"strong\";\n}\n\nexport function Separator({\n orientation,\n className,\n color,\n opacity,\n ref,\n ...props\n}: SeparatorProps) {\n return (\n <div\n data-opacity={opacity}\n data-color={color}\n data-orientation={orientation}\n className={cn([\"prt-separator\", className])}\n ref={ref}\n {...props}\n ></div>\n );\n}\n","import * as React from \"react\";\nimport {\n ProgressBar as RACProgressBar,\n type ProgressBarProps as RACProgressBarProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { Color } from \"../../utils/theme\";\nimport { StyleProps } from \"../../utils/types\";\n\ninterface ProgressProps\n extends Omit<RACProgressBarProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\" | \"track\" | \"bar\" | \"label\"> {\n height?: number;\n color?: Color;\n label?: React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nexport function Progress({\n height = 2,\n className,\n style,\n classNames,\n styles,\n color = \"gray\",\n label,\n ref,\n ...props\n}: ProgressProps) {\n return (\n <RACProgressBar\n {...props}\n {...(typeof label === \"string\" ? { \"aria-label\": label } : {})}\n data-color={color}\n className={cn(\"progress-bar\", className, classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n >\n {({ percentage }) => (\n <>\n {label && (\n <span\n className={cn(\"text-sm text-gray-700\", classNames?.label)}\n style={{ ...styles?.label }}\n >\n {label}\n </span>\n )}\n <div\n className={cn(\"progress-wrapper\", classNames?.track)}\n style={{\n height,\n background: \"var(--color-gray-200)\",\n position: \"relative\",\n borderRadius: 60,\n overflow: \"hidden\",\n ...styles?.track,\n }}\n ref={ref}\n >\n <div\n className={cn(\"progress absolute\", classNames?.bar)}\n style={{\n left: 0,\n top: 0,\n height: \"100%\",\n width: `${percentage ?? 0}%`,\n background: \"var(--c-solid)\",\n transition: \"all 0.3s ease\",\n ...styles?.bar,\n }}\n />\n </div>\n </>\n )}\n </RACProgressBar>\n );\n}\n","import * as React from \"react\";\nimport {\n SwitchField,\n SwitchButton,\n type SwitchFieldProps,\n} from \"react-aria-components\";\nimport { Color } from \"../../utils/theme\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\ninterface SwitchProps\n extends Omit<SwitchFieldProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\" | \"thumb\"> {\n color?: Color;\n size?: \"sm\" | \"md\" | \"lg\";\n children?: React.ReactNode;\n}\n\nexport function Switch({\n color = \"violet\",\n size = \"sm\",\n children,\n className,\n style,\n classNames,\n styles,\n ...props\n}: SwitchProps) {\n return (\n <SwitchField {...props}>\n <SwitchButton\n className={cn(className, \"prt-switch-group\", classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n >\n <span data-color={color} data-size={size} className=\"prt-switch track\">\n <span\n className={cn(\"prt-switch-thumb\", classNames?.thumb)}\n style={{ ...styles?.thumb }}\n />\n </span>\n {children}\n </SwitchButton>\n </SwitchField>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\nimport {\n Slider as RACSlider,\n SliderTrack,\n SliderThumb,\n type SliderProps as RACSliderProps,\n} from \"react-aria-components\";\nimport { InputLabel } from \"../input-label\";\nimport { Color, SizeOption } from \"../../utils/theme\";\n\ntype SliderProps = {\n name?: string;\n size?: SizeOption;\n color?: Color;\n label?: React.ReactNode;\n} & StyleProps<\n \"wrapper\" | \"track\" | \"fill\" | \"thumb\" | \"innerThumb\" | \"label\"\n> &\n Omit<RACSliderProps, \"className\" | \"style\" | \"children\">;\n\nexport function Slider({\n className,\n classNames,\n style,\n styles,\n name,\n size = \"sm\",\n color,\n label,\n orientation = \"horizontal\",\n ...props\n}: SliderProps) {\n return (\n <RACSlider\n {...props}\n orientation={orientation}\n aria-label={\n typeof label === \"string\"\n ? label\n : ((props as { \"aria-label\"?: string })[\"aria-label\"] ?? \"slider\")\n }\n data-color={color}\n data-size={size}\n style={{ ...style, ...styles?.wrapper }}\n className={cn(\"prt-slider\", orientation, className, classNames?.wrapper)}\n >\n {label && (\n <InputLabel style={styles?.label} className={classNames?.label}>\n {label}\n </InputLabel>\n )}\n <SliderTrack\n className={cn(\"prt-slider-track\", classNames?.track)}\n style={styles?.track}\n >\n {({ state }) => (\n <>\n <div\n style={{\n ...styles?.fill,\n width: `${state.getThumbPercent(0) * 100}%`,\n }}\n className={cn(\"prt-slider-track-fill\", classNames?.fill)}\n ></div>\n <SliderThumb\n index={0}\n name={name}\n className={cn(\"prt-slider-thumb\", classNames?.thumb)}\n style={styles?.thumb}\n >\n <div\n style={styles?.innerThumb}\n className={cn(\"prt-slider-thumb-inner\", classNames?.innerThumb)}\n ></div>\n </SliderThumb>\n </>\n )}\n </SliderTrack>\n </RACSlider>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../utils/dom\";\nimport { Color, Radius, Variant } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\n\ninterface StickerProps extends React.ComponentPropsWithRef<\"div\"> {\n padded?: boolean;\n color?: Color;\n variant?: Variant;\n radius?: Radius;\n}\n\nexport function Sticker({\n variant = \"outline\",\n color = \"violet\",\n padded = true,\n radius,\n children,\n ref,\n className,\n style,\n ...props\n}: StickerProps) {\n const theme = useTheme();\n\n return (\n <div\n ref={ref}\n data-radius={radius ?? theme?.radius ?? \"lg\"}\n data-variant={variant}\n data-color={color}\n style={style}\n className={cn(\"inline-flex items-center gap-3\", padded && \"p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n","import * as React from \"react\";\nimport {\n Tabs as RACTabs,\n TabList as RACTabList,\n Tab as RACTab,\n TabPanel as RACTabPanel,\n type TabsProps as RACTabsProps,\n type Key,\n} from \"react-aria-components\";\nimport { useTheme } from \"../theme\";\nimport { StyleProps } from \"../../utils/types\";\nimport { cn } from \"../../utils/dom\";\n\nexport interface TabsProps\n extends Omit<RACTabsProps, \"className\" | \"style\" | \"children\">,\n StyleProps<\"wrapper\" | \"list\" | \"tab\" | \"indicator\" | \"panel\"> {\n children?: React.ReactNode;\n}\n\nexport interface TabProps {\n id?: Key;\n title: React.ReactNode;\n children?: React.ReactNode;\n isDisabled?: boolean;\n}\n\n// Marker component — Tabs reads its props/key; it renders nothing on its own.\nexport function Tab(_props: TabProps) {\n return null;\n}\n\nexport function Tabs({\n className,\n style,\n classNames,\n styles,\n children,\n onSelectionChange,\n ...props\n}: TabsProps) {\n const theme = useTheme();\n const tabListRef = React.useRef<HTMLDivElement>(null);\n const [indicator, setIndicator] = React.useState({ width: 0, left: 0 });\n\n const tabs: Array<{\n id: Key;\n title: React.ReactNode;\n children: React.ReactNode;\n isDisabled?: boolean;\n }> = [];\n React.Children.forEach(children, (child, index) => {\n if (React.isValidElement<TabProps>(child)) {\n tabs.push({\n id: child.props.id ?? child.key ?? index,\n title: child.props.title,\n children: child.props.children,\n isDisabled: child.props.isDisabled,\n });\n }\n });\n\n const [activeKey, setActiveKey] = React.useState<Key | undefined>(\n props.selectedKey ?? props.defaultSelectedKey ?? tabs[0]?.id\n );\n\n React.useEffect(() => {\n if (props.selectedKey != null) setActiveKey(props.selectedKey);\n }, [props.selectedKey]);\n\n React.useEffect(() => {\n const list = tabListRef.current;\n const selected = list?.querySelector(\n \".prt-tab[data-selected]\"\n ) as HTMLElement | null;\n if (list && selected) {\n const lb = list.getBoundingClientRect();\n const sb = selected.getBoundingClientRect();\n setIndicator({ width: sb.width, left: sb.left - lb.left });\n }\n }, [activeKey, tabs.length]);\n\n return (\n <RACTabs\n {...props}\n onSelectionChange={(key) => {\n setActiveKey(key);\n onSelectionChange?.(key);\n }}\n data-color={theme?.color ?? \"violet\"}\n className={cn(\"prt-tabs\", className, classNames?.wrapper)}\n style={{ position: \"relative\", ...style, ...styles?.wrapper }}\n >\n <div style={{ position: \"relative\" }}>\n <RACTabList\n ref={tabListRef}\n className={cn(\"prt-tab-list\", classNames?.list)}\n style={{ ...styles?.list }}\n items={tabs}\n >\n {(tab) => (\n <RACTab\n id={tab.id}\n className={cn(\"prt-tab\", classNames?.tab)}\n style={{ ...styles?.tab }}\n isDisabled={tab.isDisabled}\n >\n {tab.title}\n </RACTab>\n )}\n </RACTabList>\n <div\n className={cn(\"indicator\", classNames?.indicator)}\n style={{\n position: \"absolute\",\n left: indicator.left,\n bottom: 0,\n background: \"var(--color-10)\",\n height: 2,\n marginBottom: -1,\n width: indicator.width,\n transition: \"all 0.2s ease\",\n ...styles?.indicator,\n }}\n />\n </div>\n {tabs.map((tab) => (\n <RACTabPanel\n key={String(tab.id)}\n id={tab.id}\n className={cn(classNames?.panel)}\n style={{ ...styles?.panel }}\n >\n {tab.children}\n </RACTabPanel>\n ))}\n </RACTabs>\n );\n}\n","import * as React from \"react\";\nimport {\n Table as RACTable,\n TableHeader as RACTableHeader,\n TableBody as RACTableBody,\n Column as RACColumn,\n Row as RACRow,\n Cell as RACCell,\n type SortDescriptor,\n type Selection,\n} from \"react-aria-components\";\nimport { HiChevronDown, HiChevronUp } from \"../../icons\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\nimport { Radius } from \"../../utils/theme\";\nimport { TableColumn } from \"./table.types\";\n\nexport interface TableProps<T extends object>\n extends StyleProps<\"wrapper\" | \"header\" | \"column\" | \"row\" | \"cell\"> {\n columns: Array<TableColumn<T>>;\n data: Array<T>;\n radius?: Radius;\n getRowId?: (item: T) => string | number;\n selectionMode?: \"none\" | \"single\" | \"multiple\";\n selectedKeys?: Selection;\n onSelectionChange?: (keys: Selection) => void;\n sortDescriptor?: SortDescriptor;\n onSortChange?: (descriptor: SortDescriptor) => void;\n renderEmptyState?: () => React.ReactNode;\n \"aria-label\"?: string;\n}\n\nfunction defaultRowId<T extends object>(item: T): string | number {\n const record = item as Record<string, unknown>;\n return (record.id ?? record.key) as string | number;\n}\n\nexport function Table<T extends object>({\n columns,\n data,\n getRowId = defaultRowId,\n selectionMode = \"none\",\n selectedKeys,\n onSelectionChange,\n sortDescriptor,\n onSortChange,\n renderEmptyState,\n radius,\n className,\n classNames,\n style,\n styles,\n ...props\n}: TableProps<T>) {\n const racColumns = React.useMemo(\n () => columns.map((column) => ({ ...column, id: column.key })),\n [columns]\n );\n const firstColumnKey = columns[0]?.key;\n\n // Uncontrolled sorting: sort the data by the active column when the consumer\n // doesn't drive sortDescriptor itself.\n const [internalSort, setInternalSort] = React.useState<SortDescriptor>();\n const activeSort = onSortChange ? sortDescriptor : internalSort;\n\n const rows = React.useMemo(() => {\n if (onSortChange || !activeSort) return data;\n const column = columns.find((c) => c.key === activeSort.column);\n if (!column) return data;\n return [...data].sort((a, b) => {\n const av = a[column.dataIndex];\n const bv = b[column.dataIndex];\n const cmp = av < bv ? -1 : av > bv ? 1 : 0;\n return activeSort.direction === \"descending\" ? -cmp : cmp;\n });\n }, [data, columns, activeSort, onSortChange]);\n\n return (\n <RACTable\n {...props}\n selectionMode={selectionMode}\n selectedKeys={selectedKeys}\n onSelectionChange={onSelectionChange}\n sortDescriptor={activeSort}\n onSortChange={onSortChange ?? setInternalSort}\n data-radius={radius}\n className={cn(\"prt-table\", className, classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n >\n <RACTableHeader\n columns={racColumns}\n className={cn(\"prt-table-header\", classNames?.header)}\n >\n {(column) => (\n <RACColumn\n isRowHeader={column.key === firstColumnKey}\n allowsSorting={column.allowSorting}\n className={cn(\"prt-table-column\", classNames?.column)}\n style={styles?.column}\n >\n {({ allowsSorting, sortDirection }) => (\n <div className=\"prt-table-column-header\">\n <span>{column.title}</span>\n {allowsSorting && sortDirection && (\n <span aria-hidden=\"true\" className=\"prt-table-sort-indicator\">\n {sortDirection === \"ascending\" ? (\n <HiChevronUp size={14} />\n ) : (\n <HiChevronDown size={14} />\n )}\n </span>\n )}\n </div>\n )}\n </RACColumn>\n )}\n </RACTableHeader>\n\n <RACTableBody\n items={rows}\n dependencies={[columns]}\n renderEmptyState={\n renderEmptyState ? () => <>{renderEmptyState()}</> : undefined\n }\n >\n {(item) => (\n <RACRow\n id={getRowId(item)}\n columns={racColumns}\n className={cn(\"prt-table-row\", classNames?.row)}\n style={styles?.row}\n >\n {(column) => (\n <RACCell\n className={cn(\"prt-table-cell\", classNames?.cell)}\n style={styles?.cell}\n >\n {column.render\n ? column.render(item[column.dataIndex], item)\n : (item[column.dataIndex] as React.ReactNode)}\n </RACCell>\n )}\n </RACRow>\n )}\n </RACTableBody>\n </RACTable>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\n// https://dribbble.com/shots/20456228-Audit-trail\n// https://dribbble.com/shots/18901487-Attio-Record-Activity-Feed\n// https://dribbble.com/shots/20146723-Sales-Status-Ditto-CRM\n\nexport interface TimelineProps<T>\n extends StyleProps<\"wrapper\" | \"item\" | \"content\"> {\n items: Array<T>;\n render?(item: T): React.ReactNode;\n labelKey?: keyof T;\n getIndicator?(item: T): React.ReactNode;\n hideLastItemTail?: boolean;\n}\n\nexport function Timeline<T>({\n items,\n render,\n labelKey,\n getIndicator,\n hideLastItemTail = true,\n classNames,\n styles,\n className,\n style,\n}: TimelineProps<T>) {\n return (\n <div\n className={cn(classNames?.wrapper, className)}\n style={{ ...styles?.wrapper, ...style }}\n >\n {items.map((item, index) => {\n const indicator = getIndicator?.(item) ?? (\n <div className=\"prt-timeline-indicator\" data-variant={\"outline\"} />\n );\n\n const content =\n render?.(item) ?? (item[labelKey as keyof T] as React.ReactNode);\n\n const isLast = index === items.length - 1;\n\n return (\n <div\n className={cn(\"flex gap-3 prt-timeline-item\", classNames?.item)}\n style={{ ...styles?.item }}\n key={index}\n >\n <div className=\"flex flex-col items-center gap-3\">\n <div className=\"flex gap-3 prt-timeline-indicator-container\">\n {indicator}\n </div>\n\n {isLast && hideLastItemTail ? null : (\n <div className=\"prt-timeline-item-tail\" />\n )}\n </div>\n\n <div\n className={cn(\n \"flex w-full gap-3 prt-timeline-item-content\",\n classNames?.content\n )}\n style={{ ...styles?.content }}\n >\n {content}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport {\n ModalOverlay,\n Modal as RACModal,\n Dialog as RACDialog,\n type ModalOverlayProps,\n} from \"react-aria-components\";\nimport {\n OverlayTriggerProps,\n useOverlayTriggerState,\n} from \"react-stately\";\nimport { Button, IconButton } from \"../button\";\nimport { HiX } from \"../../icons\";\nimport { StyleProps } from \"../../utils/types\";\nimport { Radius } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { cn } from \"../../utils/dom\";\n\nexport interface ModalProps\n extends Omit<ModalOverlayProps, \"children\" | \"className\" | \"style\">,\n StyleProps<\n | \"wrapper\"\n | \"underlay\"\n | \"content\"\n | \"header\"\n | \"body\"\n | \"footer\"\n | \"title\"\n > {\n hideTitle?: boolean;\n children?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n onConfirm?(): void;\n onCancel?(): void;\n confirmLabel?: string;\n cancelLabel?: string;\n confirmButtonProps?: React.ComponentProps<typeof Button>;\n cancelButtonProps?: React.ComponentProps<typeof Button>;\n width?: number | string;\n variant?: \"modal\" | \"drawer\";\n radius?: Radius;\n showCloseButton?: boolean;\n onClose?(): void;\n}\n\nexport function Modal({\n variant = \"modal\",\n radius,\n isDismissable = true,\n width = 400,\n title,\n description,\n onConfirm,\n onCancel,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n confirmButtonProps,\n cancelButtonProps,\n showCloseButton = true,\n hideTitle,\n onClose,\n children,\n className,\n style,\n classNames,\n styles,\n ...props\n}: ModalProps) {\n const theme = useTheme();\n return (\n <ModalOverlay\n {...props}\n isDismissable={isDismissable}\n style={styles?.underlay}\n className={cn(\"prt-modal-underlay\", classNames?.underlay)}\n >\n <RACModal\n data-variant={variant}\n style={styles?.wrapper}\n className={cn(\"prt-modal-container\", classNames?.wrapper)}\n >\n <RACDialog\n aria-label={typeof title === \"string\" ? title : undefined}\n data-radius={radius ?? theme?.radius ?? \"md\"}\n className={cn(\"prt-modal-content\", className, classNames?.content)}\n style={{ width, ...style, ...styles?.content }}\n >\n {({ close }) => (\n <>\n {!hideTitle && (\n <header\n style={styles?.header}\n className={cn(\n \"prt-modal-head flex items-center justify-between gap-8\",\n classNames?.header\n )}\n >\n <div className=\"flex flex-col gap-1\">\n {title && (\n <div\n style={styles?.title}\n className={cn(\n \"prt-modal-title font-medium text-base text-black\",\n classNames?.title\n )}\n >\n {title}\n </div>\n )}\n {description && (\n <div className=\"text-xs leading-normal text-gray-500\">\n {description}\n </div>\n )}\n </div>\n\n {showCloseButton && (\n <IconButton\n variant=\"ghost\"\n color=\"gray\"\n size=\"sm\"\n onPress={() => {\n onClose?.();\n close();\n }}\n >\n <HiX size={18} />\n </IconButton>\n )}\n </header>\n )}\n <div\n className={cn(\n \"prt-modal-body flex flex-col gap-3\",\n classNames?.body\n )}\n style={styles?.body}\n >\n {children}\n </div>\n\n {(onConfirm || onCancel) && (\n <footer\n style={styles?.footer}\n className={cn(\n \"prt-modal-footer flex w-full justify-end gap-2.5\",\n classNames?.footer\n )}\n >\n {onCancel && (\n <Button\n onPress={() => {\n onCancel();\n close();\n }}\n variant={\"outline\"}\n color={\"gray\"}\n {...cancelButtonProps}\n >\n {cancelLabel}\n </Button>\n )}\n {onConfirm && (\n <Button onPress={onConfirm} {...confirmButtonProps}>\n {confirmLabel}\n </Button>\n )}\n </footer>\n )}\n </>\n )}\n </RACDialog>\n </RACModal>\n </ModalOverlay>\n );\n}\n\nexport function useModal(props: OverlayTriggerProps = {}) {\n return useOverlayTriggerState(props);\n}\n","export const EMAIL_REGEX =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n","import * as React from \"react\";\nimport { isUndefinedOrNull } from \"../utils/assertions\";\n\nexport function useControlledState<T>(\n value?: T,\n defaultValue?: T,\n onChange?: (value: T) => void\n) {\n const [state, setState] = React.useState(value || defaultValue);\n const isControlled = !isUndefinedOrNull(value);\n\n const controlledValue = isControlled ? value : state;\n\n const setValue = React.useCallback(\n (value: T) => {\n if (!isControlled) {\n setState(value);\n }\n\n if (!Object.is(controlledValue, value)) {\n onChange?.(value);\n }\n },\n [isControlled, controlledValue]\n );\n\n return [controlledValue, setValue] as [T, (value: T) => void];\n}\n","import * as React from \"react\";\nimport {\n TextField,\n Input as RACInput,\n TagGroup as RACTagGroup,\n TagList,\n Tag as RACTag,\n Button as RACButton,\n} from \"react-aria-components\";\nimport { HiX } from \"../../icons\";\nimport { Tag } from \"../tag/tag\";\nimport { EMAIL_REGEX } from \"../../utils/regex\";\nimport { useControlledState } from \"../../hooks/use-controlled-state\";\nimport { Field, FieldComponentProps } from \"../form/field\";\nimport { cn } from \"../../utils/dom\";\n\nexport type TagFormat = \"text\" | \"email\" | \"url\" | \"number\";\n\nfunction isValidUrl(value: string): boolean {\n const candidate = /^https?:\\/\\//.test(value) ? value : `https://${value}`;\n try {\n // eslint-disable-next-line no-new\n new URL(candidate);\n return /\\./.test(value);\n } catch {\n return false;\n }\n}\n\nconst FORMAT_VALIDATORS: Record<TagFormat, (value: string) => boolean> = {\n text: (value) => value.trim().length > 0,\n email: (value) => EMAIL_REGEX.test(value),\n url: isValidUrl,\n number: (value) => value.trim() !== \"\" && !Number.isNaN(Number(value)),\n};\n\nconst SHAPE_RADIUS = {\n pill: \"full\",\n rounded: \"md\",\n sharp: \"none\",\n} as const;\n\ninterface TagInputProps extends FieldComponentProps<\"input\"> {\n tags?: Array<string>;\n defaultTags?: Array<string>;\n placeholder?: string;\n /** Built-in validation preset for committed values. Defaults to \"text\". */\n format?: TagFormat;\n /** Custom validator; overrides `format` when provided. */\n validate?: (value: string) => boolean;\n /** Characters that commit the current input into a tag. Defaults to [\",\"]. */\n delimiters?: Array<string>;\n isRequired?: boolean;\n onInputValueChange?(value: string): void;\n onChange?(tags: Array<string>): void;\n tagVariant?: React.ComponentProps<typeof Tag>[\"variant\"];\n tagColor?: React.ComponentProps<typeof Tag>[\"color\"];\n tagShape?: React.ComponentProps<typeof Tag>[\"shape\"];\n tagSize?: React.ComponentProps<typeof Tag>[\"size\"];\n renderTag?(value: string, onRemove: (value: string) => void): React.ReactNode;\n ref?: React.Ref<HTMLDivElement>;\n}\n\nfunction dedupe(values: Array<string> | undefined) {\n if (!values) return undefined;\n return Array.from(new Set(values));\n}\n\nfunction escapeRegExp(value: string) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function TagInput({\n appearance = \"outline\",\n size = \"md\",\n label,\n error,\n description,\n placeholder,\n tags,\n defaultTags,\n format = \"text\",\n validate,\n delimiters = [\",\"],\n isRequired,\n tagColor = \"gray\",\n tagVariant = \"light\",\n tagShape = \"rounded\",\n tagSize = \"md\",\n color = \"gray\",\n radius,\n validationStatus,\n className,\n classNames,\n style,\n styles,\n onChange,\n onInputValueChange,\n renderTag,\n ref,\n}: TagInputProps) {\n const [inputValue, setInputValue] = React.useState(\"\");\n const [values, setValues] = useControlledState<Array<string>>(\n dedupe(tags),\n dedupe(defaultTags) ?? [],\n onChange\n );\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const isValid = validate ?? FORMAT_VALIDATORS[format];\n const splitPattern = React.useMemo(\n () => new RegExp(`[${delimiters.map(escapeRegExp).join(\"\")}\\\\n]`),\n [delimiters]\n );\n\n function commit(raw: string) {\n const candidates = raw\n .split(splitPattern)\n .map((v) => v.trim())\n .filter(Boolean)\n .filter(isValid);\n\n if (!candidates.length) return;\n\n setValues(Array.from(new Set([...values, ...candidates])));\n setInputValue(\"\");\n }\n\n function removeValue(value: string) {\n setValues(values.filter((v) => v !== value));\n }\n\n function handleInputChange(value: string) {\n if (delimiters.some((d) => value.includes(d))) {\n const parts = value.split(splitPattern);\n const trailing = parts.pop() ?? \"\";\n commit(parts.join(\",\"));\n setInputValue(trailing);\n onInputValueChange?.(trailing);\n return;\n }\n setInputValue(value);\n onInputValueChange?.(value);\n }\n\n function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commit(inputValue);\n return;\n }\n if (e.key === \"Backspace\" && !inputValue && values.length) {\n removeValue(values[values.length - 1]);\n }\n }\n\n function captureFocus() {\n inputRef.current?.focus();\n }\n\n const groupLabel = typeof label === \"string\" ? label : \"tags\";\n\n return (\n <TextField\n value={inputValue}\n onChange={handleInputChange}\n isRequired={isRequired}\n isInvalid={!!error}\n >\n <Field\n replaceDefaultControlWrapper\n label={label}\n error={error}\n description={description}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n >\n <div\n ref={ref}\n className={cn(\"prt-input-control\", \"prt-tag-field\")}\n data-appearance={appearance}\n onClick={captureFocus}\n >\n <RACTagGroup\n aria-label={groupLabel}\n className=\"prt-tag-field-group\"\n onRemove={(keys) =>\n setValues(values.filter((v) => !keys.has(v)))\n }\n >\n <TagList className=\"prt-tag-field-list\">\n {values.map((value) => (\n <RACTag\n key={value}\n id={value}\n textValue={value}\n className=\"prt-tag-field-tag\"\n >\n {renderTag ? (\n renderTag(value, removeValue)\n ) : (\n <Tag\n variant={tagVariant}\n color={tagColor}\n radius={tagShape ? SHAPE_RADIUS[tagShape] : \"full\"}\n size={tagSize}\n append={\n <RACButton\n slot=\"remove\"\n className=\"prt-tag-field-remove\"\n aria-label={`Remove ${value}`}\n >\n <HiX size={14} />\n </RACButton>\n }\n >\n {value}\n </Tag>\n )}\n </RACTag>\n ))}\n </TagList>\n </RACTagGroup>\n\n <RACInput\n ref={inputRef}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n className=\"prt-tag-field-input\"\n />\n </div>\n </Field>\n </TextField>\n );\n}\n","import * as React from \"react\";\nimport {\n Popover as RACPopover,\n type PopoverProps as RACPopoverProps,\n} from \"react-aria-components\";\nimport {\n OverlayTriggerProps,\n OverlayTriggerState,\n useOverlayTriggerState,\n} from \"react-stately\";\nimport { StyleProps } from \"../../utils/types\";\nimport { cn } from \"../../utils/dom\";\nimport { useTheme } from \"../theme\";\n\ninterface PopoverContextValue {\n triggerRef: React.RefObject<HTMLElement | null>;\n state: OverlayTriggerState;\n}\n\nconst PopoverContext = React.createContext<PopoverContextValue | null>(null);\n\nfunction usePopoverContext(component: string) {\n const ctx = React.useContext(PopoverContext);\n if (!ctx) {\n throw new Error(`${component} must be used within a Popover`);\n }\n return ctx;\n}\n\ninterface PopoverProps extends OverlayTriggerProps {\n children?: React.ReactNode;\n}\n\nexport function Popover({ children, ...props }: PopoverProps) {\n const triggerRef = React.useRef<HTMLElement>(null);\n const state = useOverlayTriggerState(props);\n\n return (\n <PopoverContext.Provider value={{ triggerRef, state }}>\n {children}\n </PopoverContext.Provider>\n );\n}\n\ninterface PopoverTriggerProps {\n children: React.ReactElement;\n}\n\nexport function PopoverTrigger({ children }: PopoverTriggerProps) {\n const ctx = usePopoverContext(\"PopoverTrigger\");\n return React.cloneElement(children, {\n ref: ctx.triggerRef,\n onPress: () => ctx.state.toggle(),\n } as Partial<unknown>);\n}\n\ninterface PopoverContentProps\n extends StyleProps<\"popover\" | \"content\">,\n Omit<\n RACPopoverProps,\n | \"triggerRef\"\n | \"children\"\n | \"className\"\n | \"style\"\n | \"isOpen\"\n | \"defaultOpen\"\n | \"onOpenChange\"\n > {\n children?: React.ReactNode;\n width?: number;\n}\n\nexport function PopoverContent({\n children,\n offset = 12,\n placement,\n style,\n className,\n classNames,\n styles,\n width,\n ...props\n}: PopoverContentProps) {\n const ctx = usePopoverContext(\"PopoverContent\");\n const theme = useTheme();\n\n return (\n <RACPopover\n {...props}\n triggerRef={ctx.triggerRef}\n isOpen={ctx.state.isOpen}\n onOpenChange={ctx.state.setOpen}\n offset={offset}\n placement={placement}\n data-color={theme?.color}\n data-radius={theme?.radius}\n className={cn(\"prt-popover\", classNames?.popover)}\n style={{ ...(width != null ? { width } : null), ...styles?.popover }}\n >\n <div\n data-radius=\"md\"\n className={cn(\"prt-popover-content\", className, classNames?.content)}\n style={{ ...style, ...styles?.content }}\n >\n {children}\n </div>\n </RACPopover>\n );\n}\n","import * as React from \"react\";\nimport {\n TagGroup as RACTagGroup,\n TagList,\n Tag as RACTag,\n type TagGroupProps as RACTagGroupProps,\n type TagListProps,\n type TagProps as RACTagProps,\n} from \"react-aria-components\";\nimport { InputLabel } from \"../input-label\";\nimport { InputError } from \"../input-error\";\nimport { Color, Variant } from \"../../utils/theme\";\nimport { useTheme } from \"../theme\";\nimport { getRandomColor } from \"../../utils/helpers\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\ninterface TagVariantProps {\n activeColor?: Color;\n activeVariant?: Variant;\n idleColor?: Color;\n idleVariant?: Variant;\n autoColor?: boolean;\n}\n\nconst TagGroupVariantContext = React.createContext<TagVariantProps>({});\n\ninterface TagGroupProps<T extends object>\n extends Omit<RACTagGroupProps, \"className\" | \"style\" | \"children\">,\n Pick<TagListProps<T>, \"items\" | \"children\" | \"renderEmptyState\">,\n TagVariantProps,\n StyleProps<\"wrapper\" | \"list\"> {\n label?: React.ReactNode;\n description?: React.ReactNode;\n errorMessage?: React.ReactNode;\n}\n\nexport function TagGroup<T extends object>({\n label,\n description,\n errorMessage,\n items,\n children,\n renderEmptyState,\n activeColor,\n activeVariant,\n idleColor,\n idleVariant,\n autoColor,\n classNames,\n styles,\n className,\n style,\n ...props\n}: TagGroupProps<T>) {\n const variants = React.useMemo(\n () => ({ activeColor, activeVariant, idleColor, idleVariant, autoColor }),\n [activeColor, activeVariant, idleColor, idleVariant, autoColor]\n );\n\n return (\n <RACTagGroup\n {...props}\n aria-label={typeof label === \"string\" ? label : undefined}\n >\n <div\n className={cn(\"flex flex-col gap-3 tag-group\", classNames?.wrapper, className)}\n style={{ ...styles?.wrapper, ...style }}\n >\n {label && <InputLabel>{label}</InputLabel>}\n <TagGroupVariantContext.Provider value={variants}>\n <TagList\n items={items}\n renderEmptyState={renderEmptyState}\n className={cn(\"prt-tag-list\", classNames?.list)}\n style={{ display: \"flex\", flexWrap: \"wrap\", gap: 6, ...styles?.list }}\n >\n {children}\n </TagList>\n </TagGroupVariantContext.Provider>\n {errorMessage && <InputError>{errorMessage}</InputError>}\n {description && (\n <div className=\"text-sm text-gray-700\">{description}</div>\n )}\n </div>\n </RACTagGroup>\n );\n}\n\nexport interface TagGroupItemProps\n extends Omit<RACTagProps, \"className\" | \"children\" | \"render\"> {\n children?: React.ReactNode;\n}\n\nexport function TagGroupItem({\n children,\n textValue,\n ...props\n}: TagGroupItemProps) {\n const theme = useTheme();\n const {\n activeColor,\n activeVariant = \"solid\",\n idleColor = \"gray\",\n idleVariant = \"outline\",\n autoColor,\n } = React.useContext(TagGroupVariantContext);\n const resolvedActive = activeColor ?? theme?.color ?? \"gray\";\n const tv = textValue ?? (typeof children === \"string\" ? children : undefined);\n\n return (\n <RACTag\n {...props}\n textValue={tv}\n render={(domProps, { isSelected }) => {\n const color = autoColor\n ? getRandomColor(String(tv ?? \"\"))\n : isSelected\n ? resolvedActive\n : idleColor;\n const variant = isSelected ? activeVariant : idleVariant;\n return (\n <div\n {...domProps}\n data-is-toggle=\"true\"\n data-radius=\"full\"\n data-size=\"sm\"\n data-color={color}\n data-variant={variant}\n className=\"prt-button prt-size\"\n >\n {children}\n </div>\n );\n }}\n />\n );\n}\n","import { ColorField, ColorArea, ColorSlider, ColorSwatchPicker } from \"./index\";\nimport * as React from \"react\";\nimport { Color, parseColor } from \"react-aria-components\";\nimport { NumberInput } from \"../input\";\nimport { Space } from \"../space\";\nimport { Select } from \"../select\";\nimport { Separator } from \"../separator\";\nimport { useControlledState } from \"../../hooks/use-controlled-state\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\n\ntype ColorPickerProps = StyleProps<\n \"wrapper\" | \"area\" | \"swatch\" | \"hue\" | \"alpha\"\n> & {\n onChange?: (color: Color) => void;\n color?: Color;\n};\n\nexport function ColorPicker({\n onChange,\n color: colorProp,\n styles,\n classNames,\n className,\n style,\n}: ColorPickerProps) {\n const [colorSpace, setColorSpace] = React.useState(\"hex\");\n\n const [color, setColor] = useControlledState(\n colorProp,\n parseColor(\"#BB66CC\").toFormat(\"hsla\"),\n onChange\n );\n\n function handleChange(color: Color) {\n setColor(color);\n onChange?.(color);\n }\n\n function setAlpha(alpha: number) {\n if (isNaN(alpha)) {\n return;\n }\n\n const newColor = color.withChannelValue(\"alpha\", alpha);\n setColor(newColor);\n }\n\n const [h, s, l] = color.getColorChannels();\n const rgbaColor = color.toFormat(\"rgba\");\n const [r, g, b] = rgbaColor.getColorChannels();\n return (\n <div\n className={cn(\"flex flex-col gap-3\", className, classNames?.wrapper)}\n style={{ width: 240, ...style, ...styles?.wrapper }}\n >\n <ColorArea\n onChange={handleChange}\n onChangeEnd={handleChange}\n xChannel={s}\n yChannel={l}\n value={color ?? parseColor(\"hsl(219, 79%, 66%)\")}\n style={{ width: \"100%\", height: 140 }}\n />\n <div className=\"flex flex-col gap-3\" style={{ padding: 8 }}>\n <div className=\"flex flex-col gap-2\">\n <ColorSlider\n value={color}\n onChange={handleChange}\n onChangeEnd={handleChange}\n channel={h}\n />\n <ColorSlider\n value={color}\n onChange={handleChange}\n onChangeEnd={handleChange}\n channel={\"alpha\"}\n />\n </div>\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex gap-1\" style={{ width: \"100%\" }}>\n {colorSpace === \"hex\" && (\n <Space style={{ gap: 3 }} compact>\n <ColorField\n value={color}\n onChange={(c) => c && handleChange(c)}\n size=\"sm\"\n style={{ width: \"60%\" }}\n appearance=\"filled\"\n placeholder=\"Add a color\"\n ></ColorField>\n <NumberInput\n onChange={(n) => setAlpha(n)}\n maxValue={1}\n formatOptions={{\n style: \"percent\",\n maximumFractionDigits: 0,\n }}\n size=\"sm\"\n value={color.getChannelValue(\"alpha\")}\n style={{ width: \"40%\" }}\n appearance=\"filled\"\n ></NumberInput>\n </Space>\n )}\n\n {[\"rgb\", \"hsl\"].includes(colorSpace) && (\n <Space style={{ gap: 3 }} compact>\n <NumberInput\n value={\n colorSpace === \"rgb\"\n ? rgbaColor.getChannelValue(r)\n : color.getChannelValue(h)\n }\n appearance=\"filled\"\n size=\"sm\"\n ></NumberInput>\n <NumberInput\n value={\n colorSpace === \"rgb\"\n ? rgbaColor.getChannelValue(g)\n : color.getChannelValue(s)\n }\n appearance=\"filled\"\n size=\"sm\"\n ></NumberInput>\n <NumberInput\n value={\n colorSpace === \"rgb\"\n ? rgbaColor.getChannelValue(b)\n : color.getChannelValue(l)\n }\n appearance=\"filled\"\n size=\"sm\"\n ></NumberInput>\n <NumberInput\n formatOptions={{\n style: \"percent\",\n maximumFractionDigits: 0,\n }}\n value={\n colorSpace === \"rgb\"\n ? rgbaColor.getChannelValue(\"alpha\")\n : color.getChannelValue(\"alpha\")\n }\n appearance=\"filled\"\n size=\"sm\"\n ></NumberInput>\n </Space>\n )}\n\n <Select\n style={{ width: \"60%\" }}\n valueKey=\"id\"\n onChange={(v) =>\n setColorSpace((v.target.value as string) ?? colorSpace)\n }\n showSelectionIndicator={false}\n value={colorSpace}\n size=\"sm\"\n appearance=\"filled\"\n items={[\"hex\", \"rgb\", \"hsl\"].map((o) => ({\n label: o.toUpperCase(),\n id: o,\n }))}\n ></Select>\n </div>\n\n <Separator color=\"gray\" />\n\n <div className=\"flex gap-3\">\n <ColorSwatchPicker\n styles={{\n wrapper: { gap: 6 },\n swatch: {\n borderRadius: 5,\n },\n }}\n onChange={handleChange}\n colors={[\n \"#000000\",\n \"#333333\",\n \"#555555\",\n \"#777777\",\n \"#999999\",\n \"#bbbbbb\",\n \"#dddddd\",\n \"#ffffff\",\n \"#4455BB\",\n \"#1199EE\",\n \"#55CCFF\",\n \"#22CCDD\",\n \"#22AA99\",\n \"#66BB66\",\n \"#99CC66\",\n \"#CCDD33\",\n \"#7755CC\",\n \"#BB66CC\",\n \"#FF88AA\",\n \"#EE4444\",\n \"#FF7744\",\n \"#FFAA22\",\n \"#FFCC66\",\n \"#FFEE66\",\n ].map((color) => ({\n label: color,\n color: parseColor(color).toString(\"hsl\"),\n key: color,\n }))}\n />\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport {\n ColorArea as RACColorArea,\n ColorThumb,\n type ColorAreaProps as RACColorAreaProps,\n} from \"react-aria-components\";\nimport { BorderRadius, SizeOption } from \"../../utils/theme\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\nimport { useTheme } from \"../theme\";\n\ntype ColorAreaProps = Omit<RACColorAreaProps, \"className\" | \"style\"> &\n StyleProps<\"wrapper\" | \"thumb\"> & {\n size?: SizeOption;\n radius?: BorderRadius;\n };\n\nexport function ColorArea({\n className,\n classNames,\n style,\n styles,\n radius,\n ...props\n}: ColorAreaProps) {\n const theme = useTheme();\n\n return (\n <RACColorArea\n {...props}\n className={cn(\"prt-color-area\", className, classNames?.wrapper)}\n data-radius={radius ?? theme?.radius ?? \"lg\"}\n style={({ defaultStyle }) => ({\n ...defaultStyle,\n ...styles?.wrapper,\n ...style,\n })}\n >\n <ColorThumb\n className={cn(\"prt-color-area-thumb\", classNames?.thumb)}\n style={({ defaultStyle }) => ({ ...defaultStyle, ...styles?.thumb })}\n />\n </RACColorArea>\n );\n}\n","import * as React from \"react\";\nimport {\n ColorField as RACColorField,\n Input as RACInput,\n type ColorFieldProps as RACColorFieldProps,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { Field, FieldComponentProps } from \"../form/field\";\n\ntype ColorFieldProps = Omit<\n RACColorFieldProps,\n \"className\" | \"style\" | \"children\"\n> &\n FieldComponentProps<\"input\"> & {\n placeholder?: string;\n };\n\nexport function ColorField({\n className,\n classNames,\n style,\n styles,\n inputRef,\n wrapperRef,\n prepend,\n append,\n label,\n description,\n error,\n color,\n size,\n radius,\n appearance,\n validationStatus,\n shape,\n placeholder,\n ...colorFieldProps\n}: ColorFieldProps) {\n return (\n <RACColorField\n {...colorFieldProps}\n isInvalid={!!error}\n aria-label={colorFieldProps[\"aria-label\"] ?? \"color-field\"}\n >\n <Field\n className={className}\n classNames={classNames}\n styles={styles}\n style={style}\n wrapperRef={wrapperRef}\n prepend={prepend}\n append={append}\n label={label}\n description={description}\n error={error}\n color={color}\n size={size}\n radius={radius}\n appearance={appearance}\n validationStatus={validationStatus}\n >\n <RACInput\n ref={inputRef}\n placeholder={placeholder}\n data-has-left-addon={!!prepend}\n data-has-right-addon={!!append}\n style={styles?.input}\n className={cn(\"prt-text-input-el\", classNames?.input)}\n />\n </Field>\n </RACColorField>\n );\n}\n","import * as React from \"react\";\nimport {\n ColorSwatchPicker as RACColorSwatchPicker,\n ColorSwatchPickerItem as RACColorSwatchPickerItem,\n ColorSwatch as RACColorSwatch,\n type ColorSwatchPickerProps as RACColorSwatchPickerProps,\n type Color as AriaColor,\n} from \"react-aria-components\";\nimport { cn } from \"../../utils/dom\";\nimport { StyleProps } from \"../../utils/types\";\nimport { BorderRadius, SizeOption } from \"../../utils/theme\";\n\ninterface ColorOption {\n key?: string;\n color: string;\n label?: string;\n}\n\ntype ColorSwatchPickerProps = Omit<\n RACColorSwatchPickerProps,\n \"className\" | \"style\" | \"children\" | \"onChange\"\n> &\n StyleProps<\"wrapper\" | \"swatch\"> & {\n colors: Array<ColorOption>;\n onChange?: (color: AriaColor) => void;\n size?: SizeOption;\n radius?: BorderRadius;\n };\n\nexport function ColorSwatchPicker({\n colors,\n size,\n radius,\n onChange,\n className,\n classNames,\n style,\n styles,\n ...props\n}: ColorSwatchPickerProps) {\n return (\n <RACColorSwatchPicker\n {...props}\n onChange={onChange}\n aria-label={props[\"aria-label\"] ?? \"color swatch picker\"}\n className={cn(\"prt-color-swatch-picker\", className, classNames?.wrapper)}\n style={{ ...style, ...styles?.wrapper }}\n >\n {colors.map((option) => (\n <RACColorSwatchPickerItem\n key={option.key ?? option.color}\n color={option.color}\n className={cn(\"prt-color-swatch-item\", classNames?.swatch)}\n style={styles?.swatch}\n >\n <RACColorSwatch className=\"prt-color-swatch\" />\n </RACColorSwatchPickerItem>\n ))}\n </RACColorSwatchPicker>\n );\n}\n","import * as React from \"react\";\nimport {\n ColorSlider as RACColorSlider,\n SliderTrack,\n ColorThumb,\n type ColorSliderProps as RACColorSliderProps,\n} from \"react-aria-components\";\nimport { Field } from \"../form/field\";\n\ntype ColorSliderProps = Omit<\n RACColorSliderProps,\n \"className\" | \"style\" | \"children\"\n> & {\n label?: React.ReactNode;\n};\n\nexport function ColorSlider({ label, ...props }: ColorSliderProps) {\n return (\n <RACColorSlider\n {...props}\n aria-label={props[\"aria-label\"] ?? \"color-slider\"}\n >\n <Field label={label} className=\"prt-color-slider\" replaceDefaultControlWrapper>\n <SliderTrack className=\"prt-color-slider-track\">\n <div className=\"prt-color-slider-checkers\" />\n <ColorThumb\n className=\"prt-color-slider-thumb\"\n style={({ defaultStyle }) => ({ ...defaultStyle })}\n />\n </SliderTrack>\n </Field>\n </RACColorSlider>\n );\n}\n","import { parseColor as AriaParseColor } from \"react-aria-components\";\n\nexport function parseColor(color: string) {\n // TODO: add support for rgba colors\n return AriaParseColor(color);\n}\n","import * as React from \"react\";\nimport { ToggleButtonGroup, type Key } from \"react-aria-components\";\nimport { StyleProps } from \"../../utils/types\";\nimport { BorderRadius, ButtonSize } from \"../../utils/theme\";\nimport { Space } from \"../space/space\";\nimport {\n ToggleButton,\n ToggleButtonGroupContext,\n ButtonToggleProps,\n} from \"../button/toggle-button\";\n\ntype Mode = \"single\" | \"multiple\";\ntype ValueType<M> = M extends \"multiple\" ? string[] : string;\n\ninterface ToggleGroupProps<M extends Mode>\n extends StyleProps<\"wrapper\">,\n ButtonToggleProps {\n selectionMode?: M;\n value?: ValueType<M>;\n defaultValue?: ValueType<M>;\n onChange?: (value: ValueType<M>) => void;\n label?: string;\n size?: ButtonSize;\n radius?: BorderRadius;\n disallowEmptySelection?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n children?: React.ReactNode;\n compact?: boolean;\n gap?: React.ComponentProps<typeof Space>[\"gap\"];\n}\n\nfunction toKeys(value?: string | string[]): Set<string> | undefined {\n if (value == null) return undefined;\n return new Set(Array.isArray(value) ? value : [value]);\n}\n\nexport function ToggleGroup<M extends Mode = \"single\">({\n selectionMode = \"single\" as M,\n value,\n defaultValue,\n onChange,\n label,\n size,\n radius,\n idleColor,\n idleVariant,\n activeColor,\n activeVariant,\n disallowEmptySelection,\n orientation,\n compact,\n gap,\n className,\n classNames,\n style,\n styles,\n children,\n}: ToggleGroupProps<M>) {\n const groupDefaults = React.useMemo(\n () => ({ idleColor, idleVariant, activeColor, activeVariant, size, radius }),\n [idleColor, idleVariant, activeColor, activeVariant, size, radius]\n );\n\n function handleSelectionChange(keys: Set<Key>) {\n const arr = [...keys].map(String);\n onChange?.(\n (selectionMode === \"multiple\" ? arr : (arr[0] ?? \"\")) as ValueType<M>\n );\n }\n\n return (\n <ToggleButtonGroup\n aria-label={label}\n selectionMode={selectionMode}\n selectedKeys={toKeys(value)}\n defaultSelectedKeys={toKeys(defaultValue)}\n onSelectionChange={handleSelectionChange}\n disallowEmptySelection={disallowEmptySelection ?? selectionMode === \"single\"}\n orientation={orientation}\n >\n <ToggleButtonGroupContext.Provider value={groupDefaults}>\n <Space\n compact={compact}\n gap={gap}\n className={className}\n classNames={classNames}\n style={style}\n styles={styles}\n >\n {children}\n </Space>\n </ToggleButtonGroupContext.Provider>\n </ToggleButtonGroup>\n );\n}\n\ninterface ToggleProps extends ButtonToggleProps, StyleProps<\"wrapper\"> {\n value: string;\n children: React.ReactNode;\n size?: ButtonSize;\n radius?: BorderRadius;\n isIconButton?: boolean;\n}\n\nexport function Toggle({ value, ...props }: ToggleProps) {\n return <ToggleButton id={value} {...props} />;\n}\n"]}