snapflow-ui-kit 1.2.6 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","sources":["../src/components/Alert/toast.tsx","../src/components/DatePicker/hooks/useDismiss.ts","../src/components/Select/SelectDropdownContent.tsx","../src/components/Select/useDebouncedValue.ts","../src/components/Select/Select.tsx","../src/components/DatePicker/utils/getDayPickerProps.tsx","../src/components/DatePicker/utils/formatDateValue.ts","../src/components/DatePicker/utils/handleDateSelect.ts","../src/components/DatePicker/utils/parseDateValue.ts","../src/components/DatePicker/utils/updateMonthFromDate.ts","../src/components/DatePicker/DatePicker.tsx","../src/components/DropdownMenu/DropdownMenu.tsx","../src/components/Input/Input.tsx","../src/components/Modal/Modal.tsx","../src/components/Carousel/Carousel.tsx"],"sourcesContent":["'use client'\n\nimport { toast } from 'react-hot-toast'\nimport { Alert } from './Alert'\nimport s from './Alert.module.css'\n\n/**\n * Show a success toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n */\nexport const toastSuccess = (message: string) => {\n toast.custom((t) => (\n <Alert\n variant=\"success\"\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n\n/**\n * Show an error toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n * @param title - Optional heading shown above the message. Defaults to `\"Error!\"`.\n */\nexport const toastError = (message: string, title = 'Error!') => {\n toast.custom((t) => (\n <Alert\n variant=\"error\"\n title={title}\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n","'use client'\n\nimport { useEffect, type RefObject } from 'react'\n\ntype UseDismissParams<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>\n isOpen: boolean\n onDismiss: () => void\n}\n\nexport const useDismiss = <T extends HTMLElement = HTMLElement>({\n ref,\n isOpen,\n onDismiss,\n}: UseDismissParams<T>) => {\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n onDismiss()\n }\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onDismiss()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('touchstart', handleClickOutside)\n document.addEventListener('keydown', handleEscape)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('touchstart', handleClickOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isOpen, onDismiss, ref])\n}\n","import { RefObject } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport { SelectOption } from './Select.types'\nimport s from './Select.module.css'\n\ntype SelectDropdownContentProps = {\n filteredOptions: SelectOption[]\n noOptionsText: string\n onSearchChange: (value: string) => void\n onSelect: (optionValue: string) => void\n searchInputRef: RefObject<HTMLInputElement | null>\n searchPlaceholder: string\n searchQuery: string\n searchable: boolean\n value?: string\n}\n\nexport const SelectDropdownContent = ({\n filteredOptions,\n noOptionsText,\n onSearchChange,\n onSelect,\n searchInputRef,\n searchPlaceholder,\n searchQuery,\n searchable,\n value,\n}: SelectDropdownContentProps) => {\n return (\n <>\n {searchable && (\n <div className={s.searchContainer}>\n <input\n ref={searchInputRef}\n className={s.searchInput}\n onChange={(event) => onSearchChange(event.currentTarget.value)}\n placeholder={searchPlaceholder}\n type=\"text\"\n value={searchQuery}\n />\n </div>\n )}\n\n {filteredOptions.length ? (\n filteredOptions.map((option) => (\n <button\n key={option.value}\n className={clsx(s.option, option.value === value && s.selected)}\n onClick={() => onSelect(option.value)}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n >\n {option.icon && <span className={s.optionIcon}>{option.icon}</span>}\n {option.label}\n </button>\n ))\n ) : (\n <p className={s.noOptions}>{noOptionsText}</p>\n )}\n </>\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport const useDebouncedValue = <T>(value: T, delayMs: number) => {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n setDebouncedValue(value)\n }, delayMs)\n\n return () => {\n clearTimeout(timeoutId)\n }\n }, [delayMs, value])\n\n return debouncedValue\n}\n","'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport SimpleBar from 'simplebar-react'\nimport 'simplebar-react/dist/simplebar.min.css'\n\nimport { ArrowDownIcon } from '@/icons'\n\nimport { SelectDropdownContent } from './SelectDropdownContent'\nimport s from './Select.module.css'\nimport { SelectProps } from './Select.types'\nimport { useDebouncedValue } from './useDebouncedValue'\n\nexport const Select = (props: SelectProps) => {\n const {\n className,\n disabled = false,\n label,\n noOptionsText = 'No options found',\n onChange,\n options,\n placeholder,\n searchPlaceholder = 'Search...',\n searchable = false,\n value,\n } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const [searchQuery, setSearchQuery] = useState('')\n const selectRef = useRef<HTMLDivElement>(null)\n const searchInputRef = useRef<HTMLInputElement>(null)\n const debouncedSearchQuery = useDebouncedValue(searchQuery, 180)\n\n const selectedOption = options.find((option) => option.value === value)\n const normalizedSearchQuery = debouncedSearchQuery.trim().toLowerCase()\n const filteredOptions = normalizedSearchQuery\n ? options.filter((option) => option.label.toLowerCase().includes(normalizedSearchQuery))\n : options\n\n const closeDropdown = useCallback(() => {\n setIsOpen(false)\n setSearchQuery('')\n }, [])\n\n const handleToggle = () => {\n if (disabled) {\n return\n }\n\n if (isOpen) {\n closeDropdown()\n } else {\n setSearchQuery('')\n setIsOpen(true)\n }\n }\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue)\n closeDropdown()\n }\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n closeDropdown()\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [closeDropdown, isOpen])\n\n useEffect(() => {\n if (isOpen && searchable) {\n searchInputRef.current?.focus()\n }\n }, [isOpen, searchable])\n\n return (\n <div className={clsx(s.container, className)}>\n {label && <label className={s.label}>{label}</label>}\n\n <div className={s.select} ref={selectRef}>\n <button\n className={clsx(s.trigger, isOpen && s.triggerOpen)}\n disabled={disabled}\n onClick={handleToggle}\n type=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <span className={selectedOption ? s.selectedContent : s.placeholder}>\n {selectedOption?.icon && <span className={s.optionIcon}>{selectedOption.icon}</span>}\n {selectedOption ? selectedOption.label : placeholder || 'Select an option'}\n </span>\n <span className={clsx(s.arrow, isOpen && s.open)}>\n <ArrowDownIcon />\n </span>\n </button>\n\n {isOpen && (\n <SimpleBar className={s.dropdown} role=\"listbox\" style={{ maxHeight: 191 }}>\n <SelectDropdownContent\n filteredOptions={filteredOptions}\n noOptionsText={noOptionsText}\n onSearchChange={setSearchQuery}\n onSelect={handleSelect}\n searchInputRef={searchInputRef}\n searchPlaceholder={searchPlaceholder}\n searchQuery={searchQuery}\n searchable={searchable}\n value={value}\n />\n </SimpleBar>\n )}\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport clsx from 'clsx'\nimport { DropdownProps } from 'react-day-picker'\nimport { Select } from '../../Select'\nimport styles from '../DatePicker.module.css'\nimport { CaptionLayout, WeekStartsOn } from '../DatePicker.types'\n\nconst DropdownComponent = (props: DropdownProps) => {\n const handleDropdownChange = (value: string) => {\n if (props.onChange) {\n const syntheticEvent = {\n target: {\n value,\n },\n } as React.ChangeEvent<HTMLSelectElement>\n\n props.onChange(syntheticEvent)\n }\n }\n\n const selectOptions =\n props.options?.map((option) => ({\n value: option.value.toString(),\n label: option.label,\n })) || []\n\n return (\n <Select\n className={props.className}\n options={selectOptions}\n value={props.value?.toString() || ''}\n onChange={handleDropdownChange}\n />\n )\n}\n\nDropdownComponent.displayName = 'DatePickerDropdown'\n\nconst staticClassNames = {\n month_caption: styles.monthsCaption,\n button_previous: styles.navButtonPrevious,\n button_next: styles.navButtonNext,\n chevron: styles.navIcon,\n caption_label: styles.captionLabel,\n\n dropdowns: styles.dropdowns,\n dropdown_root: styles.dropdown_root,\n dropdown: styles.dropdown,\n dropdown_select_option: styles.option,\n\n months_dropdown: styles.monthsDropdown,\n years_dropdown: styles.yearsDropdown,\n\n month_grid: styles.monthGrid,\n weekday: styles.weekday,\n day_button: styles.dayButton,\n day: styles.day,\n outside: styles.dayOutside,\n selected: styles.daySelected,\n range_start: styles.dayRangeStart,\n range_middle: styles.dayRangeMiddle,\n range_end: styles.dayRangeEnd,\n today: styles.dayToday,\n} as const\n\nconst staticComponents = {\n Dropdown: DropdownComponent,\n} as const\n\nconst staticProps = {\n weekStartsOn: 1 as WeekStartsOn,\n showOutsideDays: true,\n reverseYears: true,\n captionLayout: 'dropdown' as CaptionLayout,\n} as const\n\nconst baseDayPickerProps = {\n components: staticComponents,\n ...staticProps,\n} as const\n\nexport const getDayPickerProps = (isOpen: boolean) => {\n return {\n ...baseDayPickerProps,\n classNames: {\n root: clsx(styles.calendar, isOpen && styles.open),\n ...staticClassNames,\n },\n }\n}\n","import { DateRange } from 'react-day-picker'\nimport { format } from 'date-fns'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const formatSingleDate = (date: Date | undefined): string => {\n if (!date) return ''\n return format(date, DATE_FORMAT)\n}\n\nexport const formatRangeDate = (range: DateRange | undefined): string => {\n if (!range || !range.from) return ''\n\n if (range.to && range.from.getTime() !== range.to.getTime()) {\n return `${format(range.from, DATE_FORMAT)} - ${format(range.to, DATE_FORMAT)}`\n }\n\n return format(range.from, DATE_FORMAT)\n}\n\nexport const formatDateValue = (\n value: Date | DateRange | undefined,\n mode: 'single' | 'range',\n): string => {\n if (!value) return ''\n\n if (mode === 'single' && value instanceof Date) {\n return formatSingleDate(value)\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n return formatRangeDate(value as DateRange)\n }\n\n return ''\n}\n","import { DateRange } from 'react-day-picker'\nimport { formatDateValue } from './formatDateValue'\n\ntype HandleDateSelectParams = {\n value: Date | DateRange | undefined\n mode: 'single' | 'range'\n onChange: (value: string) => void\n setMonth: (date: Date) => void\n setIsOpen: (open: boolean) => void\n}\n\nexport const handleDateSelect = ({\n value,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n}: HandleDateSelectParams) => {\n if (!value) {\n onChange('')\n return\n }\n\n if (mode === 'single') {\n if (value instanceof Date) {\n setMonth(value)\n onChange(formatDateValue(value, 'single'))\n setIsOpen(false)\n }\n return\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n const range = value as DateRange\n\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n\n const formattedValue = formatDateValue(range, 'range')\n onChange(formattedValue)\n\n if (range.from && range.to && range.from.getTime() !== range.to.getTime()) {\n setIsOpen(false)\n }\n }\n}\n","import { isValid, parse } from 'date-fns'\nimport { DateRange } from 'react-day-picker'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const parseSingleDate = (value: string): Date | undefined => {\n if (!value) return undefined\n\n const parsedDate = parse(value, DATE_FORMAT, new Date())\n return isValid(parsedDate) ? parsedDate : undefined\n}\n\nexport const parseRangeDate = (value: string): DateRange | undefined => {\n if (!value) return undefined\n\n const separator = ' - '\n const separatorIndex = value.indexOf(separator)\n\n if (separatorIndex === -1) {\n const parsedDate = parse(value.trim(), DATE_FORMAT, new Date())\n if (isValid(parsedDate)) {\n return { from: parsedDate, to: undefined }\n }\n return undefined\n }\n\n const fromPart = value.substring(0, separatorIndex).trim()\n const toPart = value.substring(separatorIndex + separator.length).trim()\n\n if (!fromPart || !toPart) return undefined\n\n const fromDate = parse(fromPart, DATE_FORMAT, new Date())\n const toDate = parse(toPart, DATE_FORMAT, new Date())\n\n if (isValid(fromDate) && isValid(toDate)) {\n return { from: fromDate, to: toDate }\n }\n\n return undefined\n}\n\nexport const parseDateValue = (\n value: string,\n mode: 'single' | 'range',\n): Date | DateRange | undefined => {\n if (!value) return undefined\n\n if (mode === 'single') {\n return parseSingleDate(value)\n }\n\n return parseRangeDate(value)\n}\n","import { DateRange } from 'react-day-picker'\n\nexport const updateMonthFromDate = (\n date: Date | DateRange | undefined,\n mode: 'single' | 'range',\n setMonth: (date: Date) => void,\n) => {\n if (!date) return\n\n if (mode === 'single' && date instanceof Date) {\n setMonth(date)\n return\n }\n\n if (mode === 'range' && typeof date === 'object' && 'from' in date) {\n const range = date as DateRange\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n }\n}\n","'use client'\n\nimport { Typography } from '@/components/Typography'\nimport { CalendarIcon, CloseIcon } from '@/icons'\nimport clsx from 'clsx'\nimport { ChangeEvent, type MouseEvent, useEffect, useMemo, useRef, useState } from 'react'\nimport { DateRange, DayPicker, type DayPickerProps } from 'react-day-picker'\n\nimport styles from './DatePicker.module.css'\nimport { DatePickerProps } from './DatePicker.types'\nimport { useDismiss } from './hooks/useDismiss'\nimport { getDayPickerProps } from './utils/getDayPickerProps'\nimport { handleDateSelect } from './utils/handleDateSelect'\nimport { parseDateValue } from './utils/parseDateValue'\nimport { updateMonthFromDate } from './utils/updateMonthFromDate'\n\nexport const DatePicker = ({\n mode,\n value,\n onChange,\n disabled,\n label,\n error,\n placeholder,\n ...rest\n}: DatePickerProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const wrapperRef = useRef<HTMLDivElement>(null)\n const [month, setMonth] = useState(new Date())\n\n const parsedDate = useMemo(() => parseDateValue(value, mode), [value, mode])\n\n useEffect(() => {\n updateMonthFromDate(parsedDate, mode, setMonth)\n }, [parsedDate, mode, setMonth])\n\n const closeCalendar = () => {\n setIsOpen(false)\n }\n\n useDismiss({ ref: wrapperRef, isOpen, onDismiss: closeCalendar })\n\n const handleClear = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n handleSelect(undefined)\n }\n\n const handleToggle = () => {\n if (disabled) return\n setIsOpen((prev) => !prev)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.currentTarget.value\n onChange(inputValue)\n }\n\n const handleSelect = (selectedValue: Date | DateRange | undefined) => {\n handleDateSelect({\n value: selectedValue,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n })\n }\n\n const commonDayPickerProps = useMemo(() => getDayPickerProps(isOpen), [isOpen])\n\n return (\n <div ref={wrapperRef} className={styles.wrapper}>\n <div className={styles.inputContainer}>\n {label && (\n <span className={disabled ? styles.disabledLabel : styles.label}>\n <Typography variant=\"text-14\">{label}</Typography>\n </span>\n )}\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n className={clsx(styles.trigger, error && styles.error)}\n onClick={handleToggle}\n value={value}\n onChange={handleInputChange}\n placeholder={placeholder}\n disabled={disabled}\n aria-label={label || 'Select date'}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={error ? 'true' : 'false'}\n {...rest}\n />\n {value && !disabled && (\n <button\n type=\"button\"\n className={styles.clearButton}\n onClick={handleClear}\n aria-label=\"Clear date\"\n >\n <CloseIcon className={styles.clearIcon} />\n </button>\n )}\n <CalendarIcon className={clsx(styles.icon, !value && styles.placeholder)} />\n </div>\n {error && (\n <Typography variant=\"small\" className={styles.error}>\n {error}\n </Typography>\n )}\n </div>\n\n {mode === 'single' ? (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"single\"\n selected={parsedDate instanceof Date ? parsedDate : undefined}\n onSelect={handleSelect}\n />\n ) : (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"range\"\n selected={\n parsedDate && typeof parsedDate === 'object' && 'from' in parsedDate\n ? (parsedDate as DateRange)\n : undefined\n }\n onSelect={handleSelect}\n />\n )}\n </div>\n )\n}\n","'use client'\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { clsx } from 'clsx'\n\nimport s from './DropdownMenu.module.css'\nimport { DropdownMenuProps } from './DropdownMenu.types'\n\nexport const DropdownMenu = (props: DropdownMenuProps) => {\n const { children, items, className, align = 'end', side = 'bottom' } = props\n\n return (\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>{children}</DropdownMenuPrimitive.Trigger>\n\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n align={align}\n className={clsx(s.content, className)}\n side={side}\n sideOffset={4}\n >\n {items.map((item, index) => (\n <DropdownMenuPrimitive.Item\n key={index}\n className={s.item}\n disabled={item.disabled}\n onSelect={item.onSelect}\n >\n {item.icon && <span className={s.icon}>{item.icon}</span>}\n <span className={s.label}>{item.label}</span>\n </DropdownMenuPrimitive.Item>\n ))}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n )\n}\n","'use client'\n\nimport { forwardRef, useId, useState } from 'react'\nimport { clsx } from 'clsx'\n\nimport s from './Input.module.css'\nimport { InputProps } from './Input.types'\nimport { EyeIcon, EyeOffIcon } from '@/icons'\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n label,\n errorMessage,\n startIcon,\n endIcon,\n onEndIconClick,\n allowPasswordToggle,\n disabled,\n type = 'text',\n className,\n required,\n id,\n ...rest\n },\n ref,\n ) => {\n const generatedId = useId()\n const inputId = id ?? generatedId\n const errorId = errorMessage ? `${inputId}-error` : undefined\n\n const isError = Boolean(errorMessage)\n const isPassword = type === 'password' && allowPasswordToggle\n\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <div className={clsx(s.wrapper, className)}>\n {label && (\n <label htmlFor={inputId} className={clsx(s.label, { [s.disabled]: disabled })}>\n {label}\n {required && <sup className={s.required}> *</sup>}\n </label>\n )}\n\n <div\n className={clsx(s.inputContainer, {\n [s.error]: isError,\n [s.disabled]: disabled,\n [s.withStartIcon]: Boolean(startIcon),\n [s.withEndIcon]: Boolean(endIcon) || isPassword,\n })}\n >\n {startIcon && <span className={s.startIcon}>{startIcon}</span>}\n\n <input\n ref={ref}\n id={inputId}\n className={s.input}\n type={isPassword && showPassword ? 'text' : type}\n autoComplete={type === 'password' ? 'current-password' : 'off'}\n required={required}\n disabled={disabled}\n aria-invalid={isError}\n aria-describedby={errorId}\n {...rest}\n />\n\n {isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n disabled={disabled}\n tabIndex={-1}\n >\n {showPassword ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n )}\n\n {endIcon && !isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={onEndIconClick}\n aria-label=\"Action\"\n disabled={disabled}\n >\n {endIcon}\n </button>\n )}\n </div>\n\n {isError && (\n <span id={errorId} className={s.errorMessage} role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n },\n)\n\nInput.displayName = 'Input'\n","'use client'\n\nimport { useEffect, useId, useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { clsx } from 'clsx'\nimport { FocusTrap } from 'focus-trap-react'\n\nimport s from './Modal.module.css'\nimport { ModalProps } from './Modal.types'\nimport { CloseIcon } from '@/icons/CloseIcon'\n\nexport const Modal = ({ open, onClose, title, children, className }: ModalProps) => {\n const titleId = useId()\n const onCloseRef = useRef(onClose)\n\n useEffect(() => {\n onCloseRef.current = onClose\n }, [onClose])\n\n useEffect(() => {\n if (!open) return\n\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = ''\n }\n }, [open])\n\n useEffect(() => {\n if (!open) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onCloseRef.current()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [open])\n\n if (!open) return null\n if (typeof document === 'undefined') return null\n const modalRoot = document.getElementById('modal-root') ?? document.body\n\n return createPortal(\n <FocusTrap\n active={open}\n focusTrapOptions={{\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n }}\n >\n <div className={s.overlay} onClick={() => onCloseRef.current()}>\n <div\n className={clsx(s.modal, className)}\n onClick={(e) => e.stopPropagation()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <header className={s.header}>\n <h2 id={titleId} className={s.title}>\n {title}\n </h2>\n\n <button\n type=\"button\"\n className={s.close}\n aria-label=\"Close modal\"\n onClick={() => onCloseRef.current()}\n >\n <CloseIcon />\n </button>\n </header>\n\n <div className={s.body}>{children}</div>\n </div>\n </div>\n </FocusTrap>,\n modalRoot,\n )\n}\n","'use client'\n\nimport { clsx } from 'clsx'\nimport { useCallback, useEffect, useState } from 'react'\nimport { ArrowLeftIcon, ArrowRightIcon } from '@/icons'\nimport styles from './Carousel.module.css'\nimport { CarouselProps } from './Carousel.types'\n\nexport const Carousel = ({\n children,\n value,\n onValueChange,\n autoPlayInterval = 0,\n className,\n hideArrowsWhenSingle = true,\n}: CarouselProps) => {\n const slides = Array.isArray(children) ? children : [children]\n const count = slides.length\n\n const [internalIndex, setInternalIndex] = useState(0)\n const isControlled = value !== undefined\n const currentIndex = isControlled ? Math.min(Math.max(0, value), count - 1) : internalIndex\n\n const setIndex = useCallback(\n (next: number) => {\n const clamped = (next + count) % count\n if (!isControlled) setInternalIndex(clamped)\n onValueChange?.(clamped)\n },\n [count, isControlled, onValueChange],\n )\n\n useEffect(() => {\n if (autoPlayInterval <= 0 || count <= 1) return\n const id = setInterval(() => setIndex(currentIndex + 1), autoPlayInterval)\n return () => clearInterval(id)\n }, [autoPlayInterval, count, currentIndex, setIndex])\n\n if (count === 0) return null\n\n const handlePrev = () => setIndex(currentIndex - 1)\n const handleNext = () => setIndex(currentIndex + 1)\n\n const showArrows = !hideArrowsWhenSingle || count > 1\n\n return (\n <div className={clsx(styles.root, className)} role=\"region\" aria-label=\"Carousel\">\n <div className={styles.trackWrapper}>\n <div className={styles.track} style={{ transform: `translateX(-${currentIndex * 100}%)` }}>\n {slides.map((slide, i) => (\n <div key={i} className={styles.slide}>\n {slide}\n </div>\n ))}\n </div>\n </div>\n\n {showArrows && (\n <>\n <button\n type=\"button\"\n className={clsx(styles.arrow, styles.arrowPrev)}\n onClick={handlePrev}\n aria-label=\"Previous slide\"\n tabIndex={0}\n >\n <ArrowLeftIcon width={24} height={24} aria-hidden />\n </button>\n <button\n type=\"button\"\n className={clsx(styles.arrow, styles.arrowNext)}\n onClick={handleNext}\n aria-label=\"Next slide\"\n tabIndex={0}\n >\n <ArrowRightIcon width={24} height={24} aria-hidden />\n </button>\n </>\n )}\n\n {count > 1 && (\n <div className={styles.dots} role=\"tablist\" aria-label=\"Slide selection\">\n {slides.map((_, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === currentIndex}\n aria-label={`Slide ${i + 1}`}\n className={clsx(styles.dot, i === currentIndex && styles.dotActive)}\n onClick={() => setIndex(i)}\n tabIndex={i === currentIndex ? 0 : -1}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["toastSuccess","message","toast","jsx","Alert","s","toastError","title","t","useDismiss","ref","isOpen","onDismiss","useEffect","handleClickOutside","event","handleEscape","SelectDropdownContent","filteredOptions","noOptionsText","onSearchChange","onSelect","searchInputRef","searchPlaceholder","searchQuery","searchable","value","jsxs","Fragment","option","clsx","useDebouncedValue","delayMs","debouncedValue","setDebouncedValue","useState","timeoutId","Select","props","className","disabled","label","onChange","options","placeholder","setIsOpen","setSearchQuery","selectRef","useRef","debouncedSearchQuery","selectedOption","normalizedSearchQuery","closeDropdown","useCallback","handleToggle","handleSelect","optionValue","ArrowDownIcon","SimpleBar","DropdownComponent","handleDropdownChange","syntheticEvent","selectOptions","staticClassNames","styles","staticComponents","staticProps","baseDayPickerProps","getDayPickerProps","DATE_FORMAT","formatSingleDate","date","format","formatRangeDate","range","formatDateValue","mode","handleDateSelect","setMonth","formattedValue","parseSingleDate","parsedDate","parse","isValid","parseRangeDate","separator","separatorIndex","fromPart","toPart","fromDate","toDate","parseDateValue","updateMonthFromDate","DatePicker","error","rest","wrapperRef","month","useMemo","handleClear","e","prev","handleInputChange","inputValue","selectedValue","commonDayPickerProps","Typography","CloseIcon","CalendarIcon","DayPicker","DropdownMenu","children","items","align","side","DropdownMenuPrimitive","item","index","Input","forwardRef","errorMessage","startIcon","endIcon","onEndIconClick","allowPasswordToggle","type","required","id","generatedId","useId","inputId","errorId","isError","isPassword","showPassword","setShowPassword","v","EyeOffIcon","EyeIcon","Modal","open","onClose","titleId","onCloseRef","handleKeyDown","modalRoot","createPortal","FocusTrap","Carousel","onValueChange","autoPlayInterval","hideArrowsWhenSingle","slides","count","internalIndex","setInternalIndex","isControlled","currentIndex","setIndex","next","clamped","handlePrev","handleNext","showArrows","slide","i","ArrowLeftIcon","ArrowRightIcon","_"],"mappings":"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"}
1
+ {"version":3,"file":"index.client.js","sources":["../src/components/Alert/toast.tsx","../src/components/DatePicker/hooks/useDismiss.ts","../src/components/Select/SelectDropdownContent.tsx","../src/components/Select/useDebouncedValue.ts","../src/components/Select/Select.tsx","../src/components/DatePicker/utils/getDayPickerProps.tsx","../src/components/DatePicker/utils/formatDateValue.ts","../src/components/DatePicker/utils/handleDateSelect.ts","../src/components/DatePicker/utils/parseDateValue.ts","../src/components/DatePicker/utils/updateMonthFromDate.ts","../src/components/DatePicker/DatePicker.tsx","../src/components/DropdownMenu/DropdownMenu.tsx","../src/components/Input/Input.tsx","../src/components/Modal/Modal.tsx","../src/components/Carousel/Carousel.tsx"],"sourcesContent":["'use client'\n\nimport { toast } from 'react-hot-toast'\nimport { Alert } from './Alert'\nimport s from './Alert.module.css'\n\n/**\n * Show a success toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n */\nexport const toastSuccess = (message: string) => {\n toast.custom((t) => (\n <Alert\n variant=\"success\"\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n\n/**\n * Show an error toast rendered with the shared `Alert` component.\n * @param message - Text to display in the toast body.\n * @param title - Optional heading shown above the message. Defaults to `\"Error!\"`.\n */\nexport const toastError = (message: string, title = 'Error!') => {\n toast.custom((t) => (\n <Alert\n variant=\"error\"\n title={title}\n message={message}\n className={t.visible ? s.toastEnter : s.toastExit}\n onClose={() => toast.dismiss(t.id)}\n />\n ))\n}\n","'use client'\n\nimport { useEffect, type RefObject } from 'react'\n\ntype UseDismissParams<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>\n isOpen: boolean\n onDismiss: () => void\n}\n\nexport const useDismiss = <T extends HTMLElement = HTMLElement>({\n ref,\n isOpen,\n onDismiss,\n}: UseDismissParams<T>) => {\n useEffect(() => {\n if (!isOpen) return\n\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n onDismiss()\n }\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onDismiss()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('touchstart', handleClickOutside)\n document.addEventListener('keydown', handleEscape)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('touchstart', handleClickOutside)\n document.removeEventListener('keydown', handleEscape)\n }\n }, [isOpen, onDismiss, ref])\n}\n","import { RefObject } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport { SelectOption } from './Select.types'\nimport s from './Select.module.css'\n\ntype SelectDropdownContentProps = {\n filteredOptions: SelectOption[]\n isLoading: boolean\n loadingText: string\n noOptionsText: string\n onSearchChange: (value: string) => void\n onSelect: (optionValue: string) => void\n searchInputRef: RefObject<HTMLInputElement | null>\n searchPlaceholder: string\n searchQuery: string\n searchable: boolean\n value?: string\n}\n\nexport const SelectDropdownContent = ({\n filteredOptions,\n isLoading,\n loadingText,\n noOptionsText,\n onSearchChange,\n onSelect,\n searchInputRef,\n searchPlaceholder,\n searchQuery,\n searchable,\n value,\n}: SelectDropdownContentProps) => {\n return (\n <>\n {searchable && (\n <div className={s.searchContainer}>\n <input\n ref={searchInputRef}\n className={s.searchInput}\n onChange={(event) => onSearchChange(event.currentTarget.value)}\n placeholder={searchPlaceholder}\n type=\"text\"\n value={searchQuery}\n />\n </div>\n )}\n\n {isLoading && <p className={s.noOptions}>{loadingText}</p>}\n\n {filteredOptions.length ? (\n filteredOptions.map((option) => (\n <button\n key={option.value}\n className={clsx(s.option, option.value === value && s.selected)}\n onClick={() => onSelect(option.value)}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n >\n {option.icon && <span className={s.optionIcon}>{option.icon}</span>}\n {option.label}\n </button>\n ))\n ) : !isLoading ? (\n <p className={s.noOptions}>{noOptionsText}</p>\n ) : null}\n </>\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport const useDebouncedValue = <T>(value: T, delayMs: number) => {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n setDebouncedValue(value)\n }, delayMs)\n\n return () => {\n clearTimeout(timeoutId)\n }\n }, [delayMs, value])\n\n return debouncedValue\n}\n","'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { clsx } from 'clsx'\n\nimport SimpleBar from 'simplebar-react'\nimport 'simplebar-react/dist/simplebar.min.css'\n\nimport { ArrowDownIcon } from '@/icons'\n\nimport { SelectDropdownContent } from './SelectDropdownContent'\nimport s from './Select.module.css'\nimport { SelectProps } from './Select.types'\nimport { useDebouncedValue } from './useDebouncedValue'\n\nexport const Select = (props: SelectProps) => {\n const {\n className,\n defaultSearchValue = '',\n disabled = false,\n filterOptions,\n isLoading = false,\n label,\n loadingText = 'Loading...',\n noOptionsText = 'No options found',\n onChange,\n onSearchChange,\n options,\n placeholder,\n searchDebounceMs = 180,\n searchMode = 'local',\n searchPlaceholder = 'Search...',\n searchValue,\n searchable = false,\n value,\n } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const [searchQueryState, setSearchQueryState] = useState(searchValue ?? defaultSearchValue)\n const selectRef = useRef<HTMLDivElement>(null)\n const searchInputRef = useRef<HTMLInputElement>(null)\n const isFirstSearchChangeRef = useRef(true)\n const isSearchControlled = searchValue !== undefined\n const searchQuery = isSearchControlled ? searchValue : searchQueryState\n const debouncedDisplayedSearchQuery = useDebouncedValue(searchQuery, searchDebounceMs)\n const debouncedSearchQuery = useDebouncedValue(searchQueryState, searchDebounceMs)\n const shouldFilterOptions = filterOptions ?? searchMode === 'local'\n\n const selectedOption = options.find((option) => option.value === value)\n const normalizedSearchQuery = debouncedDisplayedSearchQuery.trim().toLowerCase()\n const filteredOptions =\n shouldFilterOptions && normalizedSearchQuery\n ? options.filter((option) => option.label.toLowerCase().includes(normalizedSearchQuery))\n : options\n\n const resetSearchQuery = useCallback(() => {\n setSearchQueryState('')\n }, [])\n\n const closeDropdown = useCallback(() => {\n setIsOpen(false)\n resetSearchQuery()\n }, [resetSearchQuery])\n\n const handleToggle = () => {\n if (disabled) {\n return\n }\n\n if (isOpen) {\n closeDropdown()\n } else {\n resetSearchQuery()\n setIsOpen(true)\n }\n }\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue)\n closeDropdown()\n }\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n closeDropdown()\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [closeDropdown, isOpen])\n\n useEffect(() => {\n if (!searchable || !onSearchChange) {\n return\n }\n\n if (isFirstSearchChangeRef.current) {\n isFirstSearchChangeRef.current = false\n\n return\n }\n\n onSearchChange(debouncedSearchQuery)\n }, [debouncedSearchQuery, onSearchChange, searchable])\n\n useEffect(() => {\n if (isOpen && searchable) {\n searchInputRef.current?.focus()\n }\n }, [isOpen, searchable])\n\n return (\n <div className={clsx(s.container, className)}>\n {label && <label className={s.label}>{label}</label>}\n\n <div className={s.select} ref={selectRef}>\n <button\n className={clsx(s.trigger, isOpen && s.triggerOpen)}\n disabled={disabled}\n onClick={handleToggle}\n type=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <span className={selectedOption ? s.selectedContent : s.placeholder}>\n {selectedOption?.icon && <span className={s.optionIcon}>{selectedOption.icon}</span>}\n {selectedOption ? selectedOption.label : placeholder || 'Select an option'}\n </span>\n <span className={clsx(s.arrow, isOpen && s.open)}>\n <ArrowDownIcon />\n </span>\n </button>\n\n {isOpen && (\n <SimpleBar className={s.dropdown} role=\"listbox\" style={{ maxHeight: 191 }}>\n <SelectDropdownContent\n filteredOptions={filteredOptions}\n isLoading={isLoading}\n loadingText={loadingText}\n noOptionsText={noOptionsText}\n onSearchChange={setSearchQueryState}\n onSelect={handleSelect}\n searchInputRef={searchInputRef}\n searchPlaceholder={searchPlaceholder}\n searchQuery={searchQuery}\n searchable={searchable}\n value={value}\n />\n </SimpleBar>\n )}\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport clsx from 'clsx'\nimport { DropdownProps } from 'react-day-picker'\nimport { Select } from '../../Select'\nimport styles from '../DatePicker.module.css'\nimport { CaptionLayout, WeekStartsOn } from '../DatePicker.types'\n\nconst DropdownComponent = (props: DropdownProps) => {\n const handleDropdownChange = (value: string) => {\n if (props.onChange) {\n const syntheticEvent = {\n target: {\n value,\n },\n } as React.ChangeEvent<HTMLSelectElement>\n\n props.onChange(syntheticEvent)\n }\n }\n\n const selectOptions =\n props.options?.map((option) => ({\n value: option.value.toString(),\n label: option.label,\n })) || []\n\n return (\n <Select\n className={props.className}\n options={selectOptions}\n value={props.value?.toString() || ''}\n onChange={handleDropdownChange}\n />\n )\n}\n\nDropdownComponent.displayName = 'DatePickerDropdown'\n\nconst staticClassNames = {\n month_caption: styles.monthsCaption,\n button_previous: styles.navButtonPrevious,\n button_next: styles.navButtonNext,\n chevron: styles.navIcon,\n caption_label: styles.captionLabel,\n\n dropdowns: styles.dropdowns,\n dropdown_root: styles.dropdown_root,\n dropdown: styles.dropdown,\n dropdown_select_option: styles.option,\n\n months_dropdown: styles.monthsDropdown,\n years_dropdown: styles.yearsDropdown,\n\n month_grid: styles.monthGrid,\n weekday: styles.weekday,\n day_button: styles.dayButton,\n day: styles.day,\n outside: styles.dayOutside,\n selected: styles.daySelected,\n range_start: styles.dayRangeStart,\n range_middle: styles.dayRangeMiddle,\n range_end: styles.dayRangeEnd,\n today: styles.dayToday,\n} as const\n\nconst staticComponents = {\n Dropdown: DropdownComponent,\n} as const\n\nconst staticProps = {\n weekStartsOn: 1 as WeekStartsOn,\n showOutsideDays: true,\n reverseYears: true,\n captionLayout: 'dropdown' as CaptionLayout,\n} as const\n\nconst baseDayPickerProps = {\n components: staticComponents,\n ...staticProps,\n} as const\n\nexport const getDayPickerProps = (isOpen: boolean) => {\n return {\n ...baseDayPickerProps,\n classNames: {\n root: clsx(styles.calendar, isOpen && styles.open),\n ...staticClassNames,\n },\n }\n}\n","import { DateRange } from 'react-day-picker'\nimport { format } from 'date-fns'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const formatSingleDate = (date: Date | undefined): string => {\n if (!date) return ''\n return format(date, DATE_FORMAT)\n}\n\nexport const formatRangeDate = (range: DateRange | undefined): string => {\n if (!range || !range.from) return ''\n\n if (range.to && range.from.getTime() !== range.to.getTime()) {\n return `${format(range.from, DATE_FORMAT)} - ${format(range.to, DATE_FORMAT)}`\n }\n\n return format(range.from, DATE_FORMAT)\n}\n\nexport const formatDateValue = (\n value: Date | DateRange | undefined,\n mode: 'single' | 'range',\n): string => {\n if (!value) return ''\n\n if (mode === 'single' && value instanceof Date) {\n return formatSingleDate(value)\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n return formatRangeDate(value as DateRange)\n }\n\n return ''\n}\n","import { DateRange } from 'react-day-picker'\nimport { formatDateValue } from './formatDateValue'\n\ntype HandleDateSelectParams = {\n value: Date | DateRange | undefined\n mode: 'single' | 'range'\n onChange: (value: string) => void\n setMonth: (date: Date) => void\n setIsOpen: (open: boolean) => void\n}\n\nexport const handleDateSelect = ({\n value,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n}: HandleDateSelectParams) => {\n if (!value) {\n onChange('')\n return\n }\n\n if (mode === 'single') {\n if (value instanceof Date) {\n setMonth(value)\n onChange(formatDateValue(value, 'single'))\n setIsOpen(false)\n }\n return\n }\n\n if (mode === 'range' && typeof value === 'object' && 'from' in value) {\n const range = value as DateRange\n\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n\n const formattedValue = formatDateValue(range, 'range')\n onChange(formattedValue)\n\n if (range.from && range.to && range.from.getTime() !== range.to.getTime()) {\n setIsOpen(false)\n }\n }\n}\n","import { isValid, parse } from 'date-fns'\nimport { DateRange } from 'react-day-picker'\n\nconst DATE_FORMAT = 'dd.MM.yyyy'\n\nexport const parseSingleDate = (value: string): Date | undefined => {\n if (!value) return undefined\n\n const parsedDate = parse(value, DATE_FORMAT, new Date())\n return isValid(parsedDate) ? parsedDate : undefined\n}\n\nexport const parseRangeDate = (value: string): DateRange | undefined => {\n if (!value) return undefined\n\n const separator = ' - '\n const separatorIndex = value.indexOf(separator)\n\n if (separatorIndex === -1) {\n const parsedDate = parse(value.trim(), DATE_FORMAT, new Date())\n if (isValid(parsedDate)) {\n return { from: parsedDate, to: undefined }\n }\n return undefined\n }\n\n const fromPart = value.substring(0, separatorIndex).trim()\n const toPart = value.substring(separatorIndex + separator.length).trim()\n\n if (!fromPart || !toPart) return undefined\n\n const fromDate = parse(fromPart, DATE_FORMAT, new Date())\n const toDate = parse(toPart, DATE_FORMAT, new Date())\n\n if (isValid(fromDate) && isValid(toDate)) {\n return { from: fromDate, to: toDate }\n }\n\n return undefined\n}\n\nexport const parseDateValue = (\n value: string,\n mode: 'single' | 'range',\n): Date | DateRange | undefined => {\n if (!value) return undefined\n\n if (mode === 'single') {\n return parseSingleDate(value)\n }\n\n return parseRangeDate(value)\n}\n","import { DateRange } from 'react-day-picker'\n\nexport const updateMonthFromDate = (\n date: Date | DateRange | undefined,\n mode: 'single' | 'range',\n setMonth: (date: Date) => void,\n) => {\n if (!date) return\n\n if (mode === 'single' && date instanceof Date) {\n setMonth(date)\n return\n }\n\n if (mode === 'range' && typeof date === 'object' && 'from' in date) {\n const range = date as DateRange\n if (range.from) {\n setMonth(range.from)\n } else if (range.to) {\n setMonth(range.to)\n }\n }\n}\n","'use client'\n\nimport { Typography } from '@/components/Typography'\nimport { CalendarIcon, CloseIcon } from '@/icons'\nimport clsx from 'clsx'\nimport { ChangeEvent, type MouseEvent, useEffect, useMemo, useRef, useState } from 'react'\nimport { DateRange, DayPicker, type DayPickerProps } from 'react-day-picker'\n\nimport styles from './DatePicker.module.css'\nimport { DatePickerProps } from './DatePicker.types'\nimport { useDismiss } from './hooks/useDismiss'\nimport { getDayPickerProps } from './utils/getDayPickerProps'\nimport { handleDateSelect } from './utils/handleDateSelect'\nimport { parseDateValue } from './utils/parseDateValue'\nimport { updateMonthFromDate } from './utils/updateMonthFromDate'\n\nexport const DatePicker = ({\n mode,\n value,\n onChange,\n disabled,\n label,\n error,\n placeholder,\n ...rest\n}: DatePickerProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const wrapperRef = useRef<HTMLDivElement>(null)\n const [month, setMonth] = useState(new Date())\n\n const parsedDate = useMemo(() => parseDateValue(value, mode), [value, mode])\n\n useEffect(() => {\n updateMonthFromDate(parsedDate, mode, setMonth)\n }, [parsedDate, mode, setMonth])\n\n const closeCalendar = () => {\n setIsOpen(false)\n }\n\n useDismiss({ ref: wrapperRef, isOpen, onDismiss: closeCalendar })\n\n const handleClear = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n handleSelect(undefined)\n }\n\n const handleToggle = () => {\n if (disabled) return\n setIsOpen((prev) => !prev)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.currentTarget.value\n onChange(inputValue)\n }\n\n const handleSelect = (selectedValue: Date | DateRange | undefined) => {\n handleDateSelect({\n value: selectedValue,\n mode,\n onChange,\n setMonth,\n setIsOpen,\n })\n }\n\n const commonDayPickerProps = useMemo(() => getDayPickerProps(isOpen), [isOpen])\n\n return (\n <div ref={wrapperRef} className={styles.wrapper}>\n <div className={styles.inputContainer}>\n {label && (\n <span className={disabled ? styles.disabledLabel : styles.label}>\n <Typography variant=\"text-14\">{label}</Typography>\n </span>\n )}\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n className={clsx(styles.trigger, error && styles.error)}\n onClick={handleToggle}\n value={value}\n onChange={handleInputChange}\n placeholder={placeholder}\n disabled={disabled}\n aria-label={label || 'Select date'}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={error ? 'true' : 'false'}\n {...rest}\n />\n {value && !disabled && (\n <button\n type=\"button\"\n className={styles.clearButton}\n onClick={handleClear}\n aria-label=\"Clear date\"\n >\n <CloseIcon className={styles.clearIcon} />\n </button>\n )}\n <CalendarIcon className={clsx(styles.icon, !value && styles.placeholder)} />\n </div>\n {error && (\n <Typography variant=\"small\" className={styles.error}>\n {error}\n </Typography>\n )}\n </div>\n\n {mode === 'single' ? (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"single\"\n selected={parsedDate instanceof Date ? parsedDate : undefined}\n onSelect={handleSelect}\n />\n ) : (\n <DayPicker\n {...(commonDayPickerProps as DayPickerProps)}\n month={month}\n onMonthChange={setMonth}\n mode=\"range\"\n selected={\n parsedDate && typeof parsedDate === 'object' && 'from' in parsedDate\n ? (parsedDate as DateRange)\n : undefined\n }\n onSelect={handleSelect}\n />\n )}\n </div>\n )\n}\n","'use client'\n\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { clsx } from 'clsx'\n\nimport s from './DropdownMenu.module.css'\nimport { DropdownMenuProps } from './DropdownMenu.types'\n\nexport const DropdownMenu = (props: DropdownMenuProps) => {\n const { children, items, className, align = 'end', side = 'bottom' } = props\n\n return (\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>{children}</DropdownMenuPrimitive.Trigger>\n\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n align={align}\n className={clsx(s.content, className)}\n side={side}\n sideOffset={4}\n >\n {items.map((item, index) => (\n <DropdownMenuPrimitive.Item\n key={index}\n className={s.item}\n disabled={item.disabled}\n onSelect={item.onSelect}\n >\n {item.icon && <span className={s.icon}>{item.icon}</span>}\n <span className={s.label}>{item.label}</span>\n </DropdownMenuPrimitive.Item>\n ))}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n )\n}\n","'use client'\n\nimport { forwardRef, useId, useState } from 'react'\nimport { clsx } from 'clsx'\n\nimport s from './Input.module.css'\nimport { InputProps } from './Input.types'\nimport { EyeIcon, EyeOffIcon } from '@/icons'\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n label,\n errorMessage,\n startIcon,\n endIcon,\n onEndIconClick,\n allowPasswordToggle,\n disabled,\n type = 'text',\n className,\n required,\n id,\n ...rest\n },\n ref,\n ) => {\n const generatedId = useId()\n const inputId = id ?? generatedId\n const errorId = errorMessage ? `${inputId}-error` : undefined\n\n const isError = Boolean(errorMessage)\n const isPassword = type === 'password' && allowPasswordToggle\n\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <div className={clsx(s.wrapper, className)}>\n {label && (\n <label htmlFor={inputId} className={clsx(s.label, { [s.disabled]: disabled })}>\n {label}\n {required && <sup className={s.required}> *</sup>}\n </label>\n )}\n\n <div\n className={clsx(s.inputContainer, {\n [s.error]: isError,\n [s.disabled]: disabled,\n [s.withStartIcon]: Boolean(startIcon),\n [s.withEndIcon]: Boolean(endIcon) || isPassword,\n })}\n >\n {startIcon && <span className={s.startIcon}>{startIcon}</span>}\n\n <input\n ref={ref}\n id={inputId}\n className={s.input}\n type={isPassword && showPassword ? 'text' : type}\n autoComplete={type === 'password' ? 'current-password' : 'off'}\n required={required}\n disabled={disabled}\n aria-invalid={isError}\n aria-describedby={errorId}\n {...rest}\n />\n\n {isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n disabled={disabled}\n tabIndex={-1}\n >\n {showPassword ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n )}\n\n {endIcon && !isPassword && (\n <button\n type=\"button\"\n className={s.endIcon}\n onClick={onEndIconClick}\n aria-label=\"Action\"\n disabled={disabled}\n >\n {endIcon}\n </button>\n )}\n </div>\n\n {isError && (\n <span id={errorId} className={s.errorMessage} role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n },\n)\n\nInput.displayName = 'Input'\n","'use client'\n\nimport { useEffect, useId, useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { clsx } from 'clsx'\nimport { FocusTrap } from 'focus-trap-react'\n\nimport s from './Modal.module.css'\nimport { ModalProps } from './Modal.types'\nimport { CloseIcon } from '@/icons/CloseIcon'\n\nexport const Modal = ({ open, onClose, title, children, className }: ModalProps) => {\n const titleId = useId()\n const onCloseRef = useRef(onClose)\n\n useEffect(() => {\n onCloseRef.current = onClose\n }, [onClose])\n\n useEffect(() => {\n if (!open) return\n\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = ''\n }\n }, [open])\n\n useEffect(() => {\n if (!open) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onCloseRef.current()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [open])\n\n if (!open) return null\n if (typeof document === 'undefined') return null\n const modalRoot = document.getElementById('modal-root') ?? document.body\n\n return createPortal(\n <FocusTrap\n active={open}\n focusTrapOptions={{\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n }}\n >\n <div className={s.overlay} onClick={() => onCloseRef.current()}>\n <div\n className={clsx(s.modal, className)}\n onClick={(e) => e.stopPropagation()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <header className={s.header}>\n <h2 id={titleId} className={s.title}>\n {title}\n </h2>\n\n <button\n type=\"button\"\n className={s.close}\n aria-label=\"Close modal\"\n onClick={() => onCloseRef.current()}\n >\n <CloseIcon />\n </button>\n </header>\n\n <div className={s.body}>{children}</div>\n </div>\n </div>\n </FocusTrap>,\n modalRoot,\n )\n}\n","'use client'\n\nimport { clsx } from 'clsx'\nimport { useCallback, useEffect, useState } from 'react'\nimport { ArrowLeftIcon, ArrowRightIcon } from '@/icons'\nimport styles from './Carousel.module.css'\nimport { CarouselProps } from './Carousel.types'\n\nexport const Carousel = ({\n children,\n value,\n onValueChange,\n autoPlayInterval = 0,\n className,\n hideArrowsWhenSingle = true,\n}: CarouselProps) => {\n const slides = Array.isArray(children) ? children : [children]\n const count = slides.length\n\n const [internalIndex, setInternalIndex] = useState(0)\n const isControlled = value !== undefined\n const currentIndex = isControlled ? Math.min(Math.max(0, value), count - 1) : internalIndex\n\n const setIndex = useCallback(\n (next: number) => {\n const clamped = (next + count) % count\n if (!isControlled) setInternalIndex(clamped)\n onValueChange?.(clamped)\n },\n [count, isControlled, onValueChange],\n )\n\n useEffect(() => {\n if (autoPlayInterval <= 0 || count <= 1) return\n const id = setInterval(() => setIndex(currentIndex + 1), autoPlayInterval)\n return () => clearInterval(id)\n }, [autoPlayInterval, count, currentIndex, setIndex])\n\n if (count === 0) return null\n\n const handlePrev = () => setIndex(currentIndex - 1)\n const handleNext = () => setIndex(currentIndex + 1)\n\n const showArrows = !hideArrowsWhenSingle || count > 1\n\n return (\n <div className={clsx(styles.root, className)} role=\"region\" aria-label=\"Carousel\">\n <div className={styles.trackWrapper}>\n <div className={styles.track} style={{ transform: `translateX(-${currentIndex * 100}%)` }}>\n {slides.map((slide, i) => (\n <div key={i} className={styles.slide}>\n {slide}\n </div>\n ))}\n </div>\n </div>\n\n {showArrows && (\n <>\n <button\n type=\"button\"\n className={clsx(styles.arrow, styles.arrowPrev)}\n onClick={handlePrev}\n aria-label=\"Previous slide\"\n tabIndex={0}\n >\n <ArrowLeftIcon width={24} height={24} aria-hidden />\n </button>\n <button\n type=\"button\"\n className={clsx(styles.arrow, styles.arrowNext)}\n onClick={handleNext}\n aria-label=\"Next slide\"\n tabIndex={0}\n >\n <ArrowRightIcon width={24} height={24} aria-hidden />\n </button>\n </>\n )}\n\n {count > 1 && (\n <div className={styles.dots} role=\"tablist\" aria-label=\"Slide selection\">\n {slides.map((_, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === currentIndex}\n aria-label={`Slide ${i + 1}`}\n className={clsx(styles.dot, i === currentIndex && styles.dotActive)}\n onClick={() => setIndex(i)}\n tabIndex={i === currentIndex ? 0 : -1}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"names":["toastSuccess","message","toast","jsx","Alert","s","toastError","title","t","useDismiss","ref","isOpen","onDismiss","useEffect","handleClickOutside","event","handleEscape","SelectDropdownContent","filteredOptions","isLoading","loadingText","noOptionsText","onSearchChange","onSelect","searchInputRef","searchPlaceholder","searchQuery","searchable","value","jsxs","Fragment","option","clsx","useDebouncedValue","delayMs","debouncedValue","setDebouncedValue","useState","timeoutId","Select","props","className","defaultSearchValue","disabled","filterOptions","label","onChange","options","placeholder","searchDebounceMs","searchMode","searchValue","setIsOpen","searchQueryState","setSearchQueryState","selectRef","useRef","isFirstSearchChangeRef","debouncedDisplayedSearchQuery","debouncedSearchQuery","shouldFilterOptions","selectedOption","normalizedSearchQuery","resetSearchQuery","useCallback","closeDropdown","handleToggle","handleSelect","optionValue","ArrowDownIcon","SimpleBar","DropdownComponent","handleDropdownChange","syntheticEvent","selectOptions","staticClassNames","styles","staticComponents","staticProps","baseDayPickerProps","getDayPickerProps","DATE_FORMAT","formatSingleDate","date","format","formatRangeDate","range","formatDateValue","mode","handleDateSelect","setMonth","formattedValue","parseSingleDate","parsedDate","parse","isValid","parseRangeDate","separator","separatorIndex","fromPart","toPart","fromDate","toDate","parseDateValue","updateMonthFromDate","DatePicker","error","rest","wrapperRef","month","useMemo","handleClear","e","prev","handleInputChange","inputValue","selectedValue","commonDayPickerProps","Typography","CloseIcon","CalendarIcon","DayPicker","DropdownMenu","children","items","align","side","DropdownMenuPrimitive","item","index","Input","forwardRef","errorMessage","startIcon","endIcon","onEndIconClick","allowPasswordToggle","type","required","id","generatedId","useId","inputId","errorId","isError","isPassword","showPassword","setShowPassword","v","EyeOffIcon","EyeIcon","Modal","open","onClose","titleId","onCloseRef","handleKeyDown","modalRoot","createPortal","FocusTrap","Carousel","onValueChange","autoPlayInterval","hideArrowsWhenSingle","slides","count","internalIndex","setInternalIndex","isControlled","currentIndex","setIndex","next","clamped","handlePrev","handleNext","showArrows","slide","i","ArrowLeftIcon","ArrowRightIcon","_"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "snapflow-ui-kit",
3
3
  "private": false,
4
- "version": "1.2.6",
4
+ "version": "1.2.7",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.28.2",
7
7
  "main": "dist/index.js",