@mdigital_ui/ui 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button/index.js +1 -1
- package/dist/cascader/index.js +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/{chunk-W7BQYIXF.js → chunk-267WNY3E.js} +6 -6
- package/dist/chunk-267WNY3E.js.map +1 -0
- package/dist/{chunk-H2HIBD5Y.js → chunk-4XXDRVFM.js} +3 -3
- package/dist/chunk-4XXDRVFM.js.map +1 -0
- package/dist/{chunk-E2CYDDYC.js → chunk-6V5I5HJ2.js} +3 -3
- package/dist/{chunk-E2CYDDYC.js.map → chunk-6V5I5HJ2.js.map} +1 -1
- package/dist/{chunk-L3SP7GHC.js → chunk-77DW6PAW.js} +5 -5
- package/dist/{chunk-L3SP7GHC.js.map → chunk-77DW6PAW.js.map} +1 -1
- package/dist/{chunk-JZCHZ4B3.js → chunk-ASW7TEAN.js} +3 -3
- package/dist/chunk-ASW7TEAN.js.map +1 -0
- package/dist/{chunk-EYTOKUBM.js → chunk-BH4DXQC4.js} +3 -3
- package/dist/{chunk-EYTOKUBM.js.map → chunk-BH4DXQC4.js.map} +1 -1
- package/dist/{chunk-SERJ3TZE.js → chunk-G6TAVRTJ.js} +3 -3
- package/dist/chunk-G6TAVRTJ.js.map +1 -0
- package/dist/{chunk-KTBPIEP2.js → chunk-GEWR5ROK.js} +3 -3
- package/dist/chunk-GEWR5ROK.js.map +1 -0
- package/dist/{chunk-RQBXZKTH.js → chunk-JLTDJ3VZ.js} +6 -6
- package/dist/{chunk-RQBXZKTH.js.map → chunk-JLTDJ3VZ.js.map} +1 -1
- package/dist/{chunk-LBJG2UWT.js → chunk-KTAIRCOL.js} +3 -3
- package/dist/{chunk-LBJG2UWT.js.map → chunk-KTAIRCOL.js.map} +1 -1
- package/dist/{chunk-52M2PO3O.js → chunk-QPJL66S7.js} +3 -3
- package/dist/chunk-QPJL66S7.js.map +1 -0
- package/dist/{chunk-CLLQDCDR.js → chunk-UAMFKX6L.js} +6 -6
- package/dist/chunk-UAMFKX6L.js.map +1 -0
- package/dist/{chunk-2JGAYDZR.js → chunk-XMKNYG7I.js} +6 -6
- package/dist/{chunk-2JGAYDZR.js.map → chunk-XMKNYG7I.js.map} +1 -1
- package/dist/{chunk-AOITJRSV.js → chunk-YZ6V6BQ7.js} +3 -3
- package/dist/chunk-YZ6V6BQ7.js.map +1 -0
- package/dist/date-picker/index.js +1 -1
- package/dist/index.js +19 -19
- package/dist/input/index.js +1 -1
- package/dist/input-password/index.js +2 -2
- package/dist/multi-select/index.js +1 -1
- package/dist/progress/index.js +1 -1
- package/dist/radio/index.js +1 -1
- package/dist/select/index.js +1 -1
- package/dist/styles/base.css +1923 -182
- package/dist/styles/global.css +241 -175
- package/dist/styles/themes/dark.css +44 -40
- package/dist/styles/themes/light.css +12 -9
- package/dist/switch/index.js +1 -1
- package/dist/table/index.js +4 -4
- package/dist/transfer/index.js +2 -2
- package/dist/tree-select/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-52M2PO3O.js.map +0 -1
- package/dist/chunk-AOITJRSV.js.map +0 -1
- package/dist/chunk-CLLQDCDR.js.map +0 -1
- package/dist/chunk-H2HIBD5Y.js.map +0 -1
- package/dist/chunk-JZCHZ4B3.js.map +0 -1
- package/dist/chunk-KTBPIEP2.js.map +0 -1
- package/dist/chunk-SERJ3TZE.js.map +0 -1
- package/dist/chunk-W7BQYIXF.js.map +0 -1
- package/examples/README.md +0 -166
- package/examples/custom-theme.css +0 -189
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/date-picker/utils.ts","../src/date-picker/index.tsx"],"names":["start"],"mappings":"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","file":"chunk-QPJL66S7.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const pickerInputVariants = cva(\n 'w-full focus:border-primary placeholder:text-text-muted disabled:opacity-50 disabled:cursor-not-allowed outline-none text-text-primary transition-colors',\n {\n variants: {\n variant: {\n outline: 'bg-background border rounded-md',\n filled: 'bg-surface border border-transparent rounded-md',\n },\n status: {\n default: 'border-border hover:border-primary/50',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n success: 'border-success',\n },\n size: {\n xs: 'h-[var(--input-height-xs)] px-[var(--input-padding-x-xs)] text-xs',\n sm: 'h-[var(--input-height-sm)] px-3 text-sm',\n md: 'h-[var(--input-height-md)] px-4 text-base',\n lg: 'h-[var(--input-height-lg)] px-5 text-lg',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\n// Shared date-picker styles for react-datepicker\nexport const datePickerStyles = `\n [&_.react-datepicker]:!bg-background\n [&_.react-datepicker]:!border-border\n [&_.react-datepicker]:!text-text-primary\n [&_.react-datepicker]:!flex\n [&_.react-datepicker]:!gap-0\n [&_.react-datepicker__header]:!bg-transparent\n [&_.react-datepicker__header]:!border-none\n [&_.react-datepicker__header]:!p-0\n [&_.react-datepicker__month-container]:!flex\n [&_.react-datepicker__month-container]:!flex-col\n [&_.react-datepicker__day--selected]:!bg-primary\n [&_.react-datepicker__day--keyboard-selected]:!bg-primary/50\n [&_.react-datepicker__day]:hover:!bg-surface\n [&_.react-datepicker__day-name]:!text-text-muted\n [&_.react-datepicker__current-month]:!hidden\n [&_.react-datepicker__navigation]:!hidden\n [&_.react-datepicker__time-container]:!border-border\n [&_.react-datepicker__time-list-item--selected]:!bg-primary\n [&_.react-datepicker__time-list-item--selected]:!text-white\n [&_.react-datepicker__time-list-item]:hover:!bg-surface\n [&_.react-datepicker__time-list]:!bg-background\n [&_.react-datepicker__day--in-selecting-range]:!bg-primary/30\n [&_.react-datepicker__day--in-range]:!bg-primary/10\n`\n","import React from 'react'\nimport ReactDatePicker from 'react-datepicker'\n\n/**\n * IMPORTANT: Import the DatePicker CSS in your app's main CSS file:\n * @import 'react-datepicker/dist/react-datepicker.css';\n */\n\nimport {\n Calendar,\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n Clock,\n X,\n} from 'lucide-react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn, iconSizes } from '../utils'\nimport type {\n DatePickerProps,\n RangePickerProps,\n TimePickerProps,\n} from './types'\nimport { datePickerStyles, pickerInputVariants } from './utils'\n\n// Year Selector Component\ninterface YearSelectorProps {\n date: Date\n onYearSelect: (year: number) => void\n onDecadeChange: (year: number) => void\n}\n\nconst YearSelector: React.FC<YearSelectorProps> = ({\n date,\n onYearSelect,\n onDecadeChange,\n}) => {\n const currentYear = date.getFullYear()\n const startYear = Math.floor(currentYear / 10) * 10\n const years = Array.from({ length: 12 }, (_, i) => startYear - 1 + i)\n\n return (\n <div className=\"p-4 bg-background\">\n <div className=\"flex items-center justify-between mb-4\">\n <button\n type=\"button\"\n onClick={() => onDecadeChange(currentYear - 10)}\n className=\"p-1 rounded hover:bg-muted text-text-primary transition-colors\"\n aria-label=\"Previous decade\"\n >\n <ChevronsLeft className={iconSizes.sm} />\n </button>\n <div className=\"text-sm font-medium text-text-primary\">\n {startYear}-{startYear + 9}\n </div>\n <button\n type=\"button\"\n onClick={() => onDecadeChange(currentYear + 10)}\n className=\"p-1 rounded hover:bg-muted text-text-primary transition-colors\"\n aria-label=\"Next decade\"\n >\n <ChevronsRight className={iconSizes.sm} />\n </button>\n </div>\n <div className=\"grid grid-cols-3 gap-2\">\n {years.map((year) => (\n <button\n key={year}\n type=\"button\"\n onClick={() => onYearSelect(year)}\n className={cn(\n 'px-4 py-2 rounded text-sm font-medium transition-colors',\n year === currentYear\n ? 'bg-primary text-white'\n : year < startYear || year > startYear + 9\n ? 'text-text-muted opacity-50'\n : 'text-text-primary hover:bg-surface',\n )}\n >\n {year}\n </button>\n ))}\n </div>\n </div>\n )\n}\n\n// Month Selector Component\ninterface MonthSelectorProps {\n date: Date\n onMonthSelect: (month: number) => void\n onYearClick: () => void\n onYearChange: (year: number) => void\n}\n\nconst MonthSelector: React.FC<MonthSelectorProps> = ({\n date,\n onMonthSelect,\n onYearClick,\n onYearChange,\n}) => {\n const months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ]\n const currentMonth = date.getMonth()\n const currentYear = date.getFullYear()\n\n return (\n <div className=\"p-4 bg-background\">\n <div className=\"flex items-center justify-between mb-4\">\n <button\n type=\"button\"\n onClick={() => onYearChange(currentYear - 1)}\n className=\"p-1 rounded hover:bg-muted text-text-primary transition-colors\"\n aria-label=\"Previous year\"\n >\n <ChevronsLeft className={iconSizes.sm} />\n </button>\n <button\n type=\"button\"\n onClick={onYearClick}\n className=\"text-sm font-medium text-text-primary hover:text-primary transition-colors\"\n >\n {currentYear}\n </button>\n <button\n type=\"button\"\n onClick={() => onYearChange(currentYear + 1)}\n className=\"p-1 rounded hover:bg-muted text-text-primary transition-colors\"\n aria-label=\"Next year\"\n >\n <ChevronsRight className={iconSizes.sm} />\n </button>\n </div>\n <div className=\"grid grid-cols-3 gap-2\">\n {months.map((month, index) => (\n <button\n key={month}\n type=\"button\"\n onClick={() => onMonthSelect(index)}\n className={cn(\n 'px-4 py-2 rounded text-sm font-medium transition-colors',\n index === currentMonth\n ? 'bg-primary text-white'\n : 'text-text-primary hover:bg-surface',\n )}\n >\n {month}\n </button>\n ))}\n </div>\n </div>\n )\n}\n\n// Custom Calendar Header Component\ninterface CustomHeaderProps {\n date: Date\n decreaseMonth: () => void\n increaseMonth: () => void\n decreaseYear: () => void\n increaseYear: () => void\n prevMonthButtonDisabled: boolean\n nextMonthButtonDisabled: boolean\n prevYearButtonDisabled: boolean\n nextYearButtonDisabled: boolean\n showMonthSelector?: boolean\n onMonthClick?: () => void\n onYearClick?: () => void\n}\n\nconst CustomCalendarHeader: React.FC<CustomHeaderProps> = ({\n date,\n decreaseMonth,\n increaseMonth,\n decreaseYear,\n increaseYear,\n prevMonthButtonDisabled,\n nextMonthButtonDisabled,\n prevYearButtonDisabled,\n nextYearButtonDisabled,\n showMonthSelector = false,\n onMonthClick,\n onYearClick,\n}) => {\n const monthName = date.toLocaleDateString('en-US', { month: 'long' })\n const year = date.getFullYear()\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 bg-surface border-b border-border\">\n <div className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n onClick={decreaseYear}\n disabled={prevYearButtonDisabled || showMonthSelector}\n className=\"p-1 rounded hover:bg-muted text-text-primary disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n aria-label=\"Previous year\"\n >\n <ChevronsLeft className={iconSizes.sm} />\n </button>\n <button\n type=\"button\"\n onClick={decreaseMonth}\n disabled={prevMonthButtonDisabled || showMonthSelector}\n className=\"p-1 rounded hover:bg-muted text-text-primary disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n aria-label=\"Previous month\"\n >\n <ChevronLeft className={iconSizes.sm} />\n </button>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={onMonthClick}\n className=\"text-sm font-medium text-text-primary hover:text-primary transition-colors\"\n >\n {monthName}\n </button>\n <button\n type=\"button\"\n onClick={onYearClick}\n className=\"text-sm font-medium text-text-primary hover:text-primary transition-colors\"\n >\n {year}\n </button>\n </div>\n\n <div className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n onClick={increaseMonth}\n disabled={nextMonthButtonDisabled || showMonthSelector}\n className=\"p-1 rounded hover:bg-muted text-text-primary disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n aria-label=\"Next month\"\n >\n <ChevronRight className={iconSizes.sm} />\n </button>\n <button\n type=\"button\"\n onClick={increaseYear}\n disabled={nextYearButtonDisabled || showMonthSelector}\n className=\"p-1 rounded hover:bg-muted text-text-primary disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n aria-label=\"Next year\"\n >\n <ChevronsRight className={iconSizes.sm} />\n </button>\n </div>\n </div>\n )\n}\n\n// Base Picker Wrapper Component\ninterface BasePickerWrapperProps {\n label?: string\n error?: string\n warning?: string\n info?: string\n success?: string\n helperText?: string\n messagePosition?: 'top' | 'bottom'\n required?: boolean\n fullWidth?: boolean\n children: React.ReactNode\n}\n\nconst PickerWrapper: React.FC<BasePickerWrapperProps> = ({\n label,\n error,\n warning,\n info,\n success,\n helperText,\n messagePosition = 'bottom',\n required = false,\n fullWidth = true,\n children,\n}) => {\n let status: 'default' | 'error' | 'warning' | 'info' | 'success' = 'default'\n const helperMessage = error || warning || info || success || helperText\n\n if (error) {\n status = 'error'\n } else if (warning) {\n status = 'warning'\n } else if (success) {\n status = 'success'\n } else if (info) {\n status = 'info'\n }\n\n if (!label && !helperMessage) return <>{children}</>\n\n return (\n <div\n className={cn(\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n )}\n >\n <div className=\"flex gap-2 items-center relative mb-0.5\">\n {label && (\n <p className=\"text-sm font-medium text-text-muted\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </p>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={`picker-helper-${status}`}\n className={cn(\n 'text-xs',\n status === 'error' && 'text-error',\n status === 'warning' && 'text-warning',\n status === 'info' && 'text-info',\n status === 'success' && 'text-success',\n status === 'default' && 'text-text-muted',\n )}\n >\n {helperMessage}\n </p>\n )}\n </div>\n {children}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={`picker-helper-${status}`}\n className={cn(\n 'text-xs mt-0.5',\n status === 'error' && 'text-error',\n status === 'warning' && 'text-warning',\n status === 'info' && 'text-info',\n status === 'success' && 'text-success',\n status === 'default' && 'text-text-muted',\n )}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n}\n\n// DatePicker Component\nconst DatePickerComponent = React.memo<DatePickerProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n error,\n warning,\n info,\n success,\n helperText,\n messagePosition = 'bottom',\n placeholder = 'Select date...',\n disabled = false,\n required = false,\n clearable = false,\n fullWidth = true,\n className,\n value,\n defaultValue,\n onChange,\n minDate,\n maxDate,\n dateFormat = 'MM/dd/yyyy',\n }) => {\n const [internalValue, setInternalValue] = React.useState<Date | null>(\n defaultValue || null,\n )\n const currentValue = value !== undefined ? value : internalValue\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [showMonthSelector, setShowMonthSelector] = React.useState(false)\n const [showYearSelector, setShowYearSelector] = React.useState(false)\n const [viewDate, setViewDate] = React.useState(currentValue || new Date())\n const [hoverDate, setHoverDate] = React.useState<Date | null>(null)\n const datePickerRef = React.useRef<ReactDatePicker>(null)\n\n let status: 'default' | 'error' | 'warning' | 'info' | 'success' = 'default'\n if (error) status = 'error'\n else if (warning) status = 'warning'\n else if (success) status = 'success'\n else if (info) status = 'info'\n\n const handleDateChange = (date: Date | null) => {\n if (value === undefined) {\n setInternalValue(date)\n }\n onChange?.(date)\n setHoverDate(null)\n setIsOpen(false)\n setShowMonthSelector(false)\n setShowYearSelector(false)\n }\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (value === undefined) {\n setInternalValue(null)\n }\n onChange?.(null)\n }\n\n const handleMonthSelect = (month: number) => {\n const newDate = new Date(viewDate)\n newDate.setMonth(month)\n setViewDate(newDate)\n setShowMonthSelector(false)\n }\n\n const handleYearSelect = (year: number) => {\n const newDate = new Date(viewDate)\n newDate.setFullYear(year)\n setViewDate(newDate)\n setShowYearSelector(false)\n setShowMonthSelector(true)\n }\n\n const handleYearChange = (year: number) => {\n const newDate = new Date(viewDate)\n newDate.setFullYear(year)\n setViewDate(newDate)\n }\n\n const handleDecadeChange = (year: number) => {\n const newDate = new Date(viewDate)\n newDate.setFullYear(year)\n setViewDate(newDate)\n }\n\n const showClear = clearable && currentValue && !disabled\n\n const formatDate = (date: Date) => {\n return new Date(date).toLocaleDateString('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })\n }\n\n const getDisplayValue = () => {\n if (hoverDate) {\n return { confirmed: '', preview: formatDate(hoverDate) }\n }\n if (currentValue) {\n return { confirmed: formatDate(currentValue), preview: '' }\n }\n return { confirmed: '', preview: '' }\n }\n\n const { confirmed, preview } = getDisplayValue()\n\n const customHeader = (props: any) => (\n <CustomCalendarHeader\n {...props}\n showMonthSelector={showMonthSelector}\n onMonthClick={() => setShowMonthSelector(!showMonthSelector)}\n onYearClick={() => setShowYearSelector(true)}\n />\n )\n\n const triggerButton = (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => setIsOpen(!isOpen)}\n className={cn(\n pickerInputVariants({ variant, status, size, fullWidth }),\n 'pl-10 flex items-center justify-start cursor-pointer',\n showClear && 'pr-10',\n className,\n )}\n >\n {confirmed || preview ? (\n <>\n {confirmed && <span>{confirmed}</span>}\n {preview && <span className=\"text-text-muted\">{preview}</span>}\n </>\n ) : (\n <span className=\"text-text-muted\">{placeholder}</span>\n )}\n </button>\n )\n\n return (\n <PickerWrapper\n label={label}\n error={error}\n warning={warning}\n info={info}\n success={success}\n helperText={helperText}\n messagePosition={messagePosition}\n required={required}\n fullWidth={fullWidth}\n >\n <div className=\"relative w-full\">\n <div className=\"absolute left-3 flex items-center h-full top-0 text-text-muted pointer-events-none z-10\">\n <Calendar className={iconSizes[size]} />\n </div>\n\n <Popover\n open={isOpen}\n onOpenChange={(open) => {\n setIsOpen(open)\n if (!open) {\n setShowMonthSelector(false)\n setShowYearSelector(false)\n setHoverDate(null)\n }\n }}\n >\n <PopoverTrigger asChild>{triggerButton}</PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 w-auto\"\n align=\"start\"\n sideOffset={4}\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <>\n {showYearSelector ? (\n <YearSelector\n date={viewDate}\n onYearSelect={handleYearSelect}\n onDecadeChange={handleDecadeChange}\n />\n ) : showMonthSelector ? (\n <MonthSelector\n date={viewDate}\n onMonthSelect={handleMonthSelect}\n onYearClick={() => setShowYearSelector(true)}\n onYearChange={handleYearChange}\n />\n ) : (\n <div className={datePickerStyles}>\n <ReactDatePicker\n ref={datePickerRef}\n selected={currentValue}\n onChange={handleDateChange}\n disabled={disabled}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormat}\n renderCustomHeader={customHeader}\n openToDate={viewDate}\n onMonthChange={setViewDate}\n onDayMouseEnter={setHoverDate}\n inline\n />\n </div>\n )}\n </>\n </PopoverContent>\n </Popover>\n\n {showClear && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"absolute right-3 flex items-center h-full top-0 text-text-muted hover:text-text-primary z-10\"\n aria-label=\"Clear date\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n </div>\n </PickerWrapper>\n )\n },\n)\n\nDatePickerComponent.displayName = 'DatePicker'\n\n// RangePicker Component\nconst RangePickerComponent = React.memo<RangePickerProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n error,\n warning,\n info,\n success,\n helperText,\n messagePosition = 'bottom',\n placeholder = 'Select date range...',\n disabled = false,\n required = false,\n clearable = false,\n fullWidth = true,\n className,\n startDate,\n endDate,\n defaultStartDate,\n defaultEndDate,\n onChange,\n minDate,\n maxDate,\n dateFormat = 'MM/dd/yyyy',\n }) => {\n const [internalStartDate, setInternalStartDate] =\n React.useState<Date | null>(defaultStartDate || null)\n const [internalEndDate, setInternalEndDate] = React.useState<Date | null>(\n defaultEndDate || null,\n )\n const currentStartDate =\n startDate !== undefined ? startDate : internalStartDate\n const currentEndDate = endDate !== undefined ? endDate : internalEndDate\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [showMonthSelector, setShowMonthSelector] = React.useState(false)\n const [showYearSelector, setShowYearSelector] = React.useState(false)\n const [viewDate, setViewDate] = React.useState(\n currentStartDate || new Date(),\n )\n const [hoverDate, setHoverDate] = React.useState<Date | null>(null)\n const datePickerRef = React.useRef<ReactDatePicker>(null)\n\n let status: 'default' | 'error' | 'warning' | 'info' | 'success' = 'default'\n if (error) status = 'error'\n else if (warning) status = 'warning'\n else if (success) status = 'success'\n else if (info) status = 'info'\n\n const handleChange = (dates: [Date | null, Date | null]) => {\n if (startDate === undefined && endDate === undefined) {\n setInternalStartDate(dates[0])\n setInternalEndDate(dates[1])\n }\n onChange?.(dates)\n setHoverDate(null)\n if (dates[0] && dates[1]) {\n setIsOpen(false)\n setShowMonthSelector(false)\n setShowYearSelector(false)\n }\n }\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (startDate === undefined && endDate === undefined) {\n setInternalStartDate(null)\n setInternalEndDate(null)\n }\n onChange?.([null, null])\n }\n\n const handleMonthSelect = (month: number) => {\n const newDate = new Date(viewDate)\n newDate.setMonth(month)\n setViewDate(newDate)\n setShowMonthSelector(false)\n }\n\n const handleYearSelect = (year: number) => {\n const newDate = new Date(viewDate)\n newDate.setFullYear(year)\n setViewDate(newDate)\n setShowYearSelector(false)\n setShowMonthSelector(true)\n }\n\n const handleYearChange = (year: number) => {\n const newDate = new Date(viewDate)\n newDate.setFullYear(year)\n setViewDate(newDate)\n }\n\n const handleDecadeChange = (year: number) => {\n const newDate = new Date(viewDate)\n newDate.setFullYear(year)\n setViewDate(newDate)\n }\n\n const showClear =\n clearable && (currentStartDate || currentEndDate) && !disabled\n\n const formatDate = (date: Date) => {\n return new Date(date).toLocaleDateString('en-US', {\n month: '2-digit',\n day: '2-digit',\n year: 'numeric',\n })\n }\n\n const getDisplayValue = () => {\n // Show hover preview when hovering over dates (with start date selected)\n if (hoverDate && currentStartDate && !currentEndDate) {\n const start = formatDate(currentStartDate)\n const hover = formatDate(hoverDate)\n return { confirmed: `${start} - `, preview: hover }\n }\n\n // Show hover preview when hovering over dates (no start date yet)\n if (hoverDate && !currentStartDate && !currentEndDate) {\n const hover = formatDate(hoverDate)\n return { confirmed: '', preview: hover }\n }\n\n if (!currentStartDate && !currentEndDate) {\n return { confirmed: '', preview: '' }\n }\n\n const start = currentStartDate ? formatDate(currentStartDate) : ''\n const end = currentEndDate ? formatDate(currentEndDate) : ''\n\n if (start && end) {\n return { confirmed: `${start} - ${end}`, preview: '' }\n }\n if (start) {\n return { confirmed: `${start}`, preview: ' - ...' }\n }\n return { confirmed: '', preview: '' }\n }\n\n const { confirmed: rangeConfirmed, preview: rangePreview } =\n getDisplayValue()\n\n const customHeader = (props: any) => (\n <CustomCalendarHeader\n {...props}\n showMonthSelector={showMonthSelector}\n onMonthClick={() => setShowMonthSelector(!showMonthSelector)}\n onYearClick={() => setShowYearSelector(true)}\n />\n )\n\n const rangeTriggerButton = (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => setIsOpen(!isOpen)}\n className={cn(\n pickerInputVariants({ variant, status, size, fullWidth }),\n 'pl-10 flex items-center justify-start cursor-pointer',\n showClear && 'pr-10',\n className,\n )}\n >\n {rangeConfirmed || rangePreview ? (\n <>\n {rangeConfirmed && <span>{rangeConfirmed}</span>}\n {rangePreview && (\n <span className=\"text-text-muted\">{rangePreview}</span>\n )}\n </>\n ) : (\n <span className=\"text-text-muted\">{placeholder}</span>\n )}\n </button>\n )\n\n return (\n <PickerWrapper\n label={label}\n error={error}\n warning={warning}\n info={info}\n success={success}\n helperText={helperText}\n messagePosition={messagePosition}\n required={required}\n fullWidth={fullWidth}\n >\n <div className=\"relative w-full\">\n <div className=\"absolute left-3 flex items-center h-full top-0 text-text-muted pointer-events-none z-10\">\n <Calendar className={iconSizes[size]} />\n </div>\n\n <Popover\n open={isOpen}\n onOpenChange={(open) => {\n setIsOpen(open)\n if (!open) {\n setShowMonthSelector(false)\n setShowYearSelector(false)\n setHoverDate(null)\n }\n }}\n >\n <PopoverTrigger asChild>{rangeTriggerButton}</PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 w-auto\"\n align=\"start\"\n sideOffset={4}\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <>\n {showYearSelector ? (\n <YearSelector\n date={viewDate}\n onYearSelect={handleYearSelect}\n onDecadeChange={handleDecadeChange}\n />\n ) : showMonthSelector ? (\n <MonthSelector\n date={viewDate}\n onMonthSelect={handleMonthSelect}\n onYearClick={() => setShowYearSelector(true)}\n onYearChange={handleYearChange}\n />\n ) : (\n <div className={datePickerStyles}>\n <ReactDatePicker\n ref={datePickerRef}\n selectsRange\n startDate={currentStartDate}\n endDate={currentEndDate}\n onChange={handleChange}\n disabled={disabled}\n minDate={minDate}\n maxDate={maxDate}\n dateFormat={dateFormat}\n renderCustomHeader={customHeader}\n openToDate={viewDate}\n onMonthChange={setViewDate}\n monthsShown={2}\n onDayMouseEnter={setHoverDate}\n inline\n />\n </div>\n )}\n </>\n </PopoverContent>\n </Popover>\n\n {showClear && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"absolute right-3 flex items-center h-full top-0 text-text-muted hover:text-text-primary z-10\"\n aria-label=\"Clear date range\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n </div>\n </PickerWrapper>\n )\n },\n)\n\nRangePickerComponent.displayName = 'RangePicker'\n\n// Time Column Component\nconst TimeColumn: React.FC<{\n items: (string | number)[]\n selected: string | number\n onSelect: (item: any) => void\n onHover?: (item: any) => void\n onLeave?: () => void\n}> = React.memo(({ items, selected, onSelect, onHover, onLeave }) => (\n <div\n className=\"flex flex-col h-[240px] overflow-y-auto scrollbar-thin scrollbar-thumb-border scrollbar-track-background\"\n onMouseLeave={onLeave}\n >\n {items.map((item) => (\n <button\n key={item}\n type=\"button\"\n onClick={() => onSelect(item)}\n onMouseEnter={() => onHover?.(item)}\n className={cn(\n 'px-4 py-2 text-sm font-medium transition-colors text-center min-h-[40px] flex items-center justify-center',\n item === selected\n ? 'bg-surface text-text-primary font-semibold'\n : 'text-text-muted hover:bg-surface/50',\n )}\n >\n {typeof item === 'number' ? String(item).padStart(2, '0') : item}\n </button>\n ))}\n </div>\n))\n\nTimeColumn.displayName = 'TimeColumn'\n\n// Time Column Picker Component\ninterface TimeColumnPickerProps {\n value: Date | null\n onChange: (date: Date) => void\n onPreview?: (preview: string) => void\n timeFormat?: string\n}\n\nconst TimeColumnPicker: React.FC<TimeColumnPickerProps> = ({\n value,\n onChange,\n onPreview,\n timeFormat = 'h:mm aa',\n}) => {\n const is12Hour = timeFormat.includes('aa')\n const currentDate = value || new Date()\n const currentHour = currentDate.getHours()\n const currentMinute = currentDate.getMinutes()\n\n const [selectedHour, setSelectedHour] = React.useState(\n is12Hour ? currentHour % 12 || 12 : currentHour,\n )\n const [selectedMinute, setSelectedMinute] = React.useState(currentMinute)\n const [selectedPeriod, setSelectedPeriod] = React.useState(\n currentHour >= 12 ? 'PM' : 'AM',\n )\n const [hoverHour, setHoverHour] = React.useState<number | null>(null)\n const [hoverMinute, setHoverMinute] = React.useState<number | null>(null)\n const [hoverPeriod, setHoverPeriod] = React.useState<string | null>(null)\n\n const hours = is12Hour\n ? Array.from({ length: 12 }, (_, i) => i + 1)\n : Array.from({ length: 24 }, (_, i) => i)\n const minutes = Array.from({ length: 60 }, (_, i) => i)\n const periods = ['AM', 'PM']\n\n // Update preview when hover changes\n React.useEffect(() => {\n if (hoverHour !== null || hoverMinute !== null || hoverPeriod !== null) {\n const previewHour = hoverHour ?? selectedHour\n const previewMinute = hoverMinute ?? selectedMinute\n const previewPeriod = hoverPeriod ?? selectedPeriod\n\n const formattedHour = String(previewHour).padStart(2, '0')\n const formattedMinute = String(previewMinute).padStart(2, '0')\n const previewString = is12Hour\n ? `${previewHour}:${formattedMinute} ${previewPeriod}`\n : `${formattedHour}:${formattedMinute}`\n\n onPreview?.(previewString)\n } else {\n onPreview?.('')\n }\n }, [\n hoverHour,\n hoverMinute,\n hoverPeriod,\n selectedHour,\n selectedMinute,\n selectedPeriod,\n is12Hour,\n onPreview,\n ])\n\n const handleOkClick = () => {\n const newDate = new Date(currentDate)\n let finalHour = selectedHour\n\n if (is12Hour) {\n if (selectedPeriod === 'PM' && selectedHour !== 12) {\n finalHour = selectedHour + 12\n } else if (selectedPeriod === 'AM' && selectedHour === 12) {\n finalHour = 0\n }\n }\n\n newDate.setHours(finalHour)\n newDate.setMinutes(selectedMinute)\n newDate.setSeconds(0)\n onPreview?.('')\n onChange(newDate)\n }\n\n const handleNowClick = () => {\n const now = new Date()\n const nowHour = now.getHours()\n const nowMinute = now.getMinutes()\n\n setSelectedHour(is12Hour ? nowHour % 12 || 12 : nowHour)\n setSelectedMinute(nowMinute)\n setSelectedPeriod(nowHour >= 12 ? 'PM' : 'AM')\n\n onPreview?.('')\n onChange(now)\n }\n\n return (\n <div className=\"flex flex-col bg-background\">\n <div className=\"flex gap-0\">\n <TimeColumn\n items={hours}\n selected={selectedHour}\n onSelect={setSelectedHour}\n onHover={setHoverHour}\n onLeave={() => setHoverHour(null)}\n />\n <TimeColumn\n items={minutes}\n selected={selectedMinute}\n onSelect={setSelectedMinute}\n onHover={setHoverMinute}\n onLeave={() => setHoverMinute(null)}\n />\n {is12Hour && (\n <TimeColumn\n items={periods}\n selected={selectedPeriod}\n onSelect={setSelectedPeriod}\n onHover={setHoverPeriod}\n onLeave={() => setHoverPeriod(null)}\n />\n )}\n </div>\n <div className=\"p-3 border-t border-border flex gap-2\">\n <button\n type=\"button\"\n onClick={handleNowClick}\n className=\"flex-1 px-4 py-2 bg-surface text-text-primary rounded-md hover:bg-surface/80 transition-colors font-medium text-sm border border-border\"\n >\n Now\n </button>\n <button\n type=\"button\"\n onClick={handleOkClick}\n className=\"flex-1 px-4 py-2 bg-primary text-white rounded-md hover:bg-primary/90 transition-colors font-medium text-sm\"\n >\n OK\n </button>\n </div>\n </div>\n )\n}\n\n// TimePicker Component\nconst TimePickerComponent = React.memo<TimePickerProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n error,\n warning,\n info,\n success,\n helperText,\n messagePosition = 'bottom',\n placeholder = 'Select time...',\n disabled = false,\n required = false,\n clearable = false,\n fullWidth = true,\n className,\n value,\n defaultValue,\n onChange,\n timeFormat = 'h:mm aa',\n }) => {\n const [internalValue, setInternalValue] = React.useState<Date | null>(\n defaultValue || null,\n )\n const currentValue = value !== undefined ? value : internalValue\n\n const [isOpen, setIsOpen] = React.useState(false)\n const [previewTime, setPreviewTime] = React.useState('')\n\n let status: 'default' | 'error' | 'warning' | 'info' | 'success' = 'default'\n if (error) status = 'error'\n else if (warning) status = 'warning'\n else if (success) status = 'success'\n else if (info) status = 'info'\n\n const handleTimeChange = (date: Date | null) => {\n if (value === undefined) {\n setInternalValue(date)\n }\n onChange?.(date)\n setPreviewTime('')\n setIsOpen(false)\n }\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation()\n if (value === undefined) {\n setInternalValue(null)\n }\n onChange?.(null)\n }\n\n const showClear = clearable && currentValue && !disabled\n\n const formatTime = (date: Date) => {\n return new Date(date).toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: timeFormat.includes('aa'),\n })\n }\n\n const getDisplayValue = () => {\n if (previewTime) {\n return { confirmed: '', preview: previewTime }\n }\n if (currentValue) {\n return { confirmed: formatTime(currentValue), preview: '' }\n }\n return { confirmed: '', preview: '' }\n }\n\n const { confirmed: timeConfirmed, preview: timePreview } = getDisplayValue()\n\n const timeTriggerButton = (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => setIsOpen(!isOpen)}\n className={cn(\n pickerInputVariants({ variant, status, size, fullWidth }),\n 'pl-10 flex items-center justify-start cursor-pointer',\n showClear && 'pr-10',\n className,\n )}\n >\n {timeConfirmed || timePreview ? (\n <>\n {timeConfirmed && <span>{timeConfirmed}</span>}\n {timePreview && (\n <span className=\"text-text-muted\">{timePreview}</span>\n )}\n </>\n ) : (\n <span className=\"text-text-muted\">{placeholder}</span>\n )}\n </button>\n )\n\n return (\n <PickerWrapper\n label={label}\n error={error}\n warning={warning}\n info={info}\n success={success}\n helperText={helperText}\n messagePosition={messagePosition}\n required={required}\n fullWidth={fullWidth}\n >\n <div className=\"relative w-full\">\n <div className=\"absolute left-3 flex items-center h-full top-0 text-text-muted pointer-events-none z-10\">\n <Clock className={iconSizes[size]} />\n </div>\n\n <Popover\n open={isOpen}\n onOpenChange={(open) => {\n setIsOpen(open)\n if (!open) {\n setPreviewTime('')\n }\n }}\n >\n <PopoverTrigger asChild>{timeTriggerButton}</PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 w-auto\"\n align=\"start\"\n sideOffset={4}\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <TimeColumnPicker\n value={currentValue}\n onChange={handleTimeChange}\n onPreview={setPreviewTime}\n timeFormat={timeFormat}\n />\n </PopoverContent>\n </Popover>\n\n {showClear && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"absolute right-3 flex items-center h-full top-0 text-text-muted hover:text-text-primary z-10\"\n aria-label=\"Clear time\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n </div>\n </PickerWrapper>\n )\n },\n)\n\nTimePickerComponent.displayName = 'TimePicker'\n\nexport type * from './types'\nexport const DatePicker = Object.assign(DatePickerComponent, {\n RangePicker: RangePickerComponent,\n TimePicker: TimePickerComponent,\n})\n\nexport {\n RangePickerComponent as RangePicker,\n TimePickerComponent as TimePicker,\n}\n"]}
|
|
@@ -19,10 +19,10 @@ var selectTriggerVariants = cva(
|
|
|
19
19
|
success: "border-success"
|
|
20
20
|
},
|
|
21
21
|
size: {
|
|
22
|
-
xs: "h-
|
|
23
|
-
sm: "h-[var(--
|
|
24
|
-
md: "h-[var(--
|
|
25
|
-
lg: "h-[var(--
|
|
22
|
+
xs: "h-[var(--select-height-xs)] px-[var(--select-padding-x-xs)] text-xs gap-1.5",
|
|
23
|
+
sm: "h-[var(--select-height-sm)] px-[var(--select-padding-x-sm)] text-sm gap-2",
|
|
24
|
+
md: "h-[var(--select-height-md)] px-[var(--select-padding-x-md)] text-base gap-2",
|
|
25
|
+
lg: "h-[var(--select-height-lg)] px-[var(--select-padding-x-lg)] text-lg gap-3"
|
|
26
26
|
},
|
|
27
27
|
fullWidth: {
|
|
28
28
|
true: "w-full",
|
|
@@ -556,5 +556,5 @@ Select.displayName = "Select";
|
|
|
556
556
|
var select_default = Select;
|
|
557
557
|
|
|
558
558
|
export { select_default };
|
|
559
|
-
//# sourceMappingURL=chunk-
|
|
560
|
-
//# sourceMappingURL=chunk-
|
|
559
|
+
//# sourceMappingURL=chunk-UAMFKX6L.js.map
|
|
560
|
+
//# sourceMappingURL=chunk-UAMFKX6L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/select/index.tsx"],"names":[],"mappings":"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","file":"chunk-UAMFKX6L.js","sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual'\nimport { cva } from 'class-variance-authority'\nimport { Check, ChevronDown, ChevronUp, Search, X } from 'lucide-react'\nimport React, { useCallback } from 'react'\n\nimport Spinner from '../spinner'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { SelectOption, SelectProps } from './types'\n\nconst selectTriggerVariants = cva(\n 'w-full flex items-center justify-between rounded-md bg-background text-text-primary border focus:border-primary outline-none disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer transition-colors',\n {\n variants: {\n status: {\n default: 'border-border hover:border-primary/50',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n success: 'border-success',\n },\n size: {\n xs: 'h-[var(--select-height-xs)] px-[var(--select-padding-x-xs)] text-xs gap-1.5',\n sm: 'h-[var(--select-height-sm)] px-[var(--select-padding-x-sm)] text-sm gap-2',\n md: 'h-[var(--select-height-md)] px-[var(--select-padding-x-md)] text-base gap-2',\n lg: 'h-[var(--select-height-lg)] px-[var(--select-padding-x-lg)] text-lg gap-3',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\nconst selectOptionVariants = cva(\n 'relative cursor-pointer select-none px-3 py-2 text-text-primary rounded-sm transition-colors',\n {\n variants: {\n selected: {\n true: 'bg-primary/10 text-primary font-medium',\n false: 'hover:bg-surface',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nconst selectGroupVariants = cva(\n 'px-3 py-2 text-xs font-semibold text-text-muted uppercase tracking-wider bg-surface/50',\n)\n\nconst Select = React.memo<SelectProps>(\n ({\n size = 'md',\n label,\n helperText,\n error,\n warning,\n info,\n success,\n options = [],\n placeholder = 'Select an option',\n loading = false,\n fullWidth = true,\n value,\n defaultValue,\n onChange,\n clearable = false,\n disabled,\n required,\n virtualizeThreshold = 50,\n maxDropdownHeight = 300,\n className,\n ref,\n ...props\n }) => {\n const [isOpen, setIsOpen] = React.useState(false)\n const [parentNode, setParentNode] = React.useState<HTMLDivElement | null>(\n null,\n )\n const [internalValue, setInternalValue] = React.useState<string | number>(defaultValue || '')\n const [searchQuery, setSearchQuery] = React.useState('')\n const [highlightedIndex, setHighlightedIndex] = React.useState(-1)\n const [showTopArrow, setShowTopArrow] = React.useState(false)\n const [showBottomArrow, setShowBottomArrow] = React.useState(false)\n\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const inputRef = React.useRef<HTMLInputElement>(null)\n const scrollContainerRef = React.useRef<HTMLDivElement>(null)\n const currentValue = value !== undefined ? value : internalValue\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const groupedOptions = React.useMemo(() => {\n const groups: Record<string, SelectOption[]> = {}\n const ungrouped: SelectOption[] = []\n\n options.forEach((option) => {\n if (option.group) {\n if (!groups[option.group]) {\n groups[option.group] = []\n }\n groups[option.group]!.push(option)\n } else {\n ungrouped.push(option)\n }\n })\n\n return { groups, ungrouped }\n }, [options])\n\n const flattenedOptions = React.useMemo(() => {\n const items: Array<{\n type: 'option' | 'group'\n data: SelectOption | string\n }> = []\n\n groupedOptions.ungrouped.forEach((option) => {\n items.push({ type: 'option', data: option })\n })\n\n Object.entries(groupedOptions.groups).forEach(\n ([groupName, groupOptions]) => {\n items.push({ type: 'group', data: groupName })\n groupOptions.forEach((option) => {\n items.push({ type: 'option', data: option })\n })\n },\n )\n\n return items\n }, [groupedOptions])\n\n const filteredOptions = React.useMemo(() => {\n if (!searchQuery) return flattenedOptions\n\n return flattenedOptions.filter((item) => {\n if (item.type === 'group') return true\n const option = item.data as SelectOption\n return option.label.toLowerCase().includes(searchQuery.toLowerCase())\n })\n }, [flattenedOptions, searchQuery])\n\n const shouldVirtualize = filteredOptions.length > virtualizeThreshold\n\n const virtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => parentNode,\n estimateSize: () => 40,\n enabled: shouldVirtualize,\n overscan: 10,\n })\n\n // Store virtualizer in ref to avoid recreating handleKeyDown on every render\n const virtualizerRef = React.useRef(virtualizer)\n React.useEffect(() => {\n virtualizerRef.current = virtualizer\n }, [virtualizer])\n\n const refCallback = useCallback((node: HTMLDivElement) => {\n if (node) {\n setParentNode(node)\n // Also set as scroll container for virtualized lists\n scrollContainerRef.current = node\n }\n }, [])\n\n const selectedOption = options.find((opt) => opt.value === currentValue)\n const displayValue = isOpen ? searchQuery : selectedOption?.label || ''\n\n const handleSelect = React.useCallback(\n (optionValue: string | number) => {\n if (value === undefined) {\n setInternalValue(optionValue)\n }\n onChange?.(optionValue)\n setIsOpen(false)\n setSearchQuery('')\n setHighlightedIndex(-1)\n },\n [value, onChange],\n )\n\n const handleClear = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation()\n if (value === undefined) {\n setInternalValue('')\n }\n onChange?.('')\n setSearchQuery('')\n setHighlightedIndex(-1)\n },\n [value, onChange],\n )\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value)\n if (!isOpen) setIsOpen(true)\n },\n [isOpen],\n )\n\n const handleInputFocus = React.useCallback(() => {\n setIsOpen(true)\n }, [])\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (!isOpen && e.key !== 'Tab') {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {\n e.preventDefault()\n setIsOpen(true)\n }\n return\n }\n\n const selectableOptions = filteredOptions.filter(\n (item) =>\n item.type === 'option' && !(item.data as SelectOption).disabled,\n )\n\n switch (e.key) {\n case 'Escape':\n e.preventDefault()\n setIsOpen(false)\n setSearchQuery('')\n setHighlightedIndex(-1)\n inputRef.current?.blur()\n break\n\n case 'ArrowDown':\n e.preventDefault()\n setHighlightedIndex((prev) => {\n const nextIndex = Math.min(prev + 1, selectableOptions.length - 1)\n const option = selectableOptions[nextIndex]\n if (option) {\n const optionIndex = filteredOptions.indexOf(option)\n if (shouldVirtualize && virtualizerRef.current) {\n virtualizerRef.current.scrollToIndex(optionIndex, {\n align: 'auto',\n })\n }\n }\n return nextIndex\n })\n break\n\n case 'ArrowUp':\n e.preventDefault()\n setHighlightedIndex((prev) => {\n const nextIndex = Math.max(prev - 1, 0)\n const option = selectableOptions[nextIndex]\n if (option) {\n const optionIndex = filteredOptions.indexOf(option)\n if (shouldVirtualize && virtualizerRef.current) {\n virtualizerRef.current.scrollToIndex(optionIndex, {\n align: 'auto',\n })\n }\n }\n return nextIndex\n })\n break\n\n case 'Enter':\n e.preventDefault()\n if (\n highlightedIndex >= 0 &&\n highlightedIndex < selectableOptions.length\n ) {\n const item = selectableOptions[highlightedIndex]\n if (item) {\n const option = item.data as SelectOption\n handleSelect(option.value)\n }\n }\n break\n\n case 'Home':\n e.preventDefault()\n setHighlightedIndex(0)\n if (shouldVirtualize && virtualizerRef.current) {\n virtualizerRef.current.scrollToIndex(0)\n }\n break\n\n case 'End':\n e.preventDefault()\n setHighlightedIndex(selectableOptions.length - 1)\n if (shouldVirtualize && virtualizerRef.current) {\n virtualizerRef.current.scrollToIndex(filteredOptions.length - 1)\n }\n break\n\n default:\n break\n }\n },\n [\n isOpen,\n filteredOptions,\n highlightedIndex,\n handleSelect,\n shouldVirtualize,\n ],\n )\n\n // Handle scroll to update arrow visibility\n const handleScroll = React.useCallback(\n (e: React.UIEvent<HTMLDivElement>) => {\n const element = e.currentTarget\n const { scrollTop, scrollHeight, clientHeight } = element\n\n setShowTopArrow(scrollTop > 0)\n setShowBottomArrow(scrollTop + clientHeight < scrollHeight - 1)\n },\n [],\n )\n\n // Check initial scroll state when dropdown opens\n React.useEffect(() => {\n if (isOpen) {\n // Use a small delay to ensure the DOM is fully rendered\n const timeoutId = setTimeout(() => {\n const element = scrollContainerRef.current\n if (element) {\n const { scrollTop, scrollHeight, clientHeight } = element\n setShowTopArrow(scrollTop > 0)\n setShowBottomArrow(scrollTop + clientHeight < scrollHeight - 1)\n }\n }, 50)\n\n return () => clearTimeout(timeoutId)\n } else {\n setShowTopArrow(false)\n setShowBottomArrow(false)\n return undefined\n }\n }, [isOpen, filteredOptions, shouldVirtualize])\n\n const renderOptionsList = () => (\n <div className=\"relative\">\n {/* Top scroll indicator */}\n <div className=\"flex items-center justify-center h-4\">\n {showTopArrow && <ChevronUp className=\"size-4 text-text-primary\" />}\n </div>\n\n <div\n ref={scrollContainerRef}\n className=\"overflow-auto relative\"\n style={{ maxHeight: maxDropdownHeight }}\n role=\"listbox\"\n aria-labelledby={label ? 'select-label' : undefined}\n onScroll={handleScroll}\n >\n {!filteredOptions.length ? (\n <div className=\"px-3 py-4 text-center text-sm text-text-muted\">\n No options found\n </div>\n ) : shouldVirtualize ? (\n <div\n ref={refCallback}\n style={{\n height: `${Math.min(virtualizer.getTotalSize(), maxDropdownHeight)}px`,\n overflow: 'auto',\n }}\n onScroll={handleScroll}\n >\n <div\n style={{\n height: `${virtualizer.getTotalSize()}px`,\n width: '100%',\n position: 'relative',\n }}\n >\n {virtualizer.getVirtualItems().map((virtualItem) => {\n const item = filteredOptions[virtualItem.index]\n\n if (!item) return null\n\n if (item.type === 'group') {\n return (\n <div\n key={`group-${virtualItem.index}`}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n className={selectGroupVariants()}\n >\n {item.data as string}\n </div>\n )\n }\n\n const option = item.data as SelectOption\n const isSelected = option.value === currentValue\n const selectableOptions = filteredOptions.filter(\n (i) =>\n i.type === 'option' && !(i.data as SelectOption).disabled,\n )\n const selectableIndex = selectableOptions.findIndex(\n (i) => i === item,\n )\n const isHighlighted = selectableIndex === highlightedIndex\n\n return (\n <div\n key={option.value}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n className={cn(\n selectOptionVariants({\n selected: isSelected,\n disabled: !!option.disabled,\n }),\n isHighlighted && 'bg-surface',\n )}\n onClick={() =>\n !option.disabled && handleSelect(option.value)\n }\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n >\n {option.label}\n {isSelected && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <Check\n className={cn('text-primary', iconSizes[size])}\n />\n </span>\n )}\n </div>\n )\n })}\n </div>\n </div>\n ) : (\n <div className=\"py-1\">\n {filteredOptions.map((item, index) => {\n if (item.type === 'group') {\n return (\n <div\n key={`group-${index}`}\n className={selectGroupVariants()}\n >\n {item.data as string}\n </div>\n )\n }\n\n const option = item.data as SelectOption\n const isSelected = option.value === currentValue\n const selectableOptions = filteredOptions.filter(\n (i) =>\n i.type === 'option' && !(i.data as SelectOption).disabled,\n )\n const selectableIndex = selectableOptions.findIndex(\n (i) => i === item,\n )\n const isHighlighted = selectableIndex === highlightedIndex\n\n return (\n <div\n key={option.value}\n className={cn(\n selectOptionVariants({\n selected: isSelected,\n disabled: !!option.disabled,\n }),\n isHighlighted && 'bg-surface',\n )}\n onClick={() =>\n !option.disabled && handleSelect(option.value)\n }\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n >\n {option.label}\n {isSelected && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <Check\n className={cn('text-primary', iconSizes[size])}\n />\n </span>\n )}\n </div>\n )\n })}\n </div>\n )}\n </div>\n\n {/* Bottom scroll indicator */}\n <div className=\"flex itemce-center justify-center h-4\">\n {showBottomArrow && (\n <ChevronDown className=\"size-4 text-text-primary\" />\n )}\n </div>\n </div>\n )\n\n // Trigger button (used in both desktop and mobile)\n const triggerButton = (\n <button\n ref={triggerRef}\n type=\"button\"\n className={cn(\n selectTriggerVariants({ status, size, fullWidth }),\n loading && 'opacity-50',\n className,\n )}\n disabled={disabled || loading}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-labelledby={label ? 'select-label' : undefined}\n onClick={() => setIsOpen(!isOpen)}\n >\n <input\n ref={inputRef}\n type=\"text\"\n className=\"w-full text-ellipsis flex-1 bg-transparent outline-none cursor-pointer placeholder:text-text-muted pointer-events-none\"\n placeholder={placeholder}\n value={displayValue}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onKeyDown={handleKeyDown}\n disabled={disabled || loading}\n readOnly={!isOpen}\n tabIndex={-1}\n />\n <div className=\"flex items-center gap-1 text-text-muted\">\n {clearable && currentValue && !disabled && !loading && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"hover:text-text-primary transition-colors\"\n aria-label=\"Clear selection\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {loading ? (\n <Spinner />\n ) : (\n <>\n {isOpen ? (\n <Search className={iconSizes[size]} />\n ) : (\n <ChevronDown className={iconSizes[size]} />\n )}\n </>\n )}\n </div>\n </button>\n )\n\n const selectElement = (\n <div\n className={cn('relative group', fullWidth ? 'w-full' : 'inline-block')}\n ref={ref}\n {...props}\n >\n <Popover\n open={isOpen}\n onOpenChange={setIsOpen}\n >\n <PopoverTrigger asChild>{triggerButton}</PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 w-[var(--radix-popover-trigger-width)]\"\n align=\"start\"\n onOpenAutoFocus={(e) => {\n e.preventDefault()\n inputRef.current?.focus()\n }}\n >\n {renderOptionsList()}\n </PopoverContent>\n </Popover>\n </div>\n )\n\n if (!label && !helperText && !error) return selectElement\n\n return (\n <div className={cn('w-full flex flex-col', !fullWidth && 'inline-block')}>\n <div className=\"flex gap-2 items-center\">\n {label && (\n <label\n id=\"select-label\"\n className=\"block mb-0.5\"\n >\n <span className=\"text-sm font-medium text-text-muted\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </span>\n </label>\n )}\n {helperMessage && (\n <p className={statusMessageVariants({ status })}>{helperMessage}</p>\n )}\n </div>\n {selectElement}\n </div>\n )\n },\n)\n\nSelect.displayName = 'Select'\n\nexport type * from './types'\nexport default Select\n"]}
|
|
@@ -21,10 +21,10 @@ var inputVariants = cva(
|
|
|
21
21
|
success: "!border-success focus:!border-success"
|
|
22
22
|
},
|
|
23
23
|
size: {
|
|
24
|
-
xs: "h-
|
|
25
|
-
sm: "h-[var(--input-height-sm)] px-
|
|
26
|
-
md: "h-[var(--input-height-md)] px-
|
|
27
|
-
lg: "h-[var(--input-height-lg)] px-
|
|
24
|
+
xs: "h-[var(--input-height-xs)] px-[var(--input-padding-x-xs)] text-xs",
|
|
25
|
+
sm: "h-[var(--input-height-sm)] px-[var(--input-padding-x-sm)] text-sm",
|
|
26
|
+
md: "h-[var(--input-height-md)] px-[var(--input-padding-x-md)] text-base",
|
|
27
|
+
lg: "h-[var(--input-height-lg)] px-[var(--input-padding-x-lg)] text-lg"
|
|
28
28
|
},
|
|
29
29
|
fullWidth: {
|
|
30
30
|
true: "w-full",
|
|
@@ -177,5 +177,5 @@ Input.displayName = "Input";
|
|
|
177
177
|
var input_default = Input;
|
|
178
178
|
|
|
179
179
|
export { input_default };
|
|
180
|
-
//# sourceMappingURL=chunk-
|
|
181
|
-
//# sourceMappingURL=chunk-
|
|
180
|
+
//# sourceMappingURL=chunk-XMKNYG7I.js.map
|
|
181
|
+
//# sourceMappingURL=chunk-XMKNYG7I.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/input/index.tsx"],"names":[],"mappings":"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","file":"chunk-2JGAYDZR.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { X } from 'lucide-react'\nimport React from 'react'\n\nimport Spinner from '../spinner'\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { InputProps } from './types'\n\nconst inputVariants = cva(\n 'w-full placeholder:text-text-muted rounded-md focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none text-text-primary transition-colors',\n {\n variants: {\n variant: {\n outline: 'bg-background border border-border',\n filled: 'bg-surface border border-transparent',\n },\n status: {\n default: '',\n error: '!border-error focus:!border-error',\n warning: '!border-warning focus:!border-warning',\n info: '!border-info focus:!border-info',\n success: '!border-success focus:!border-success',\n },\n size: {\n xs: 'h-8 px-3 text-xs',\n sm: 'h-[var(--input-height-sm)] px-1 text-sm',\n md: 'h-[var(--input-height-md)] px-2 text-base',\n lg: 'h-[var(--input-height-lg)] px-3 text-lg',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\nconst Input = React.memo<InputProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n error,\n warning,\n info,\n success,\n helperText,\n messagePosition = 'bottom',\n leftIcon,\n rightIcon,\n clearable = false,\n onClear,\n loading = false,\n maxLength,\n showCount = false,\n fullWidth = true,\n className,\n wrapperClassName,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const [internalValue, setInternalValue] = React.useState('')\n const currentValue = value !== undefined ? value : internalValue\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) setInternalValue(e.target.value)\n onChange?.(e)\n },\n [value, onChange],\n )\n\n const handleClear = React.useCallback(() => {\n if (value === undefined) setInternalValue('')\n onClear?.()\n }, [value, onClear])\n\n const showClear =\n clearable && currentValue && !props.disabled && !props.readOnly\n const hasRightIcon = rightIcon || showClear || loading\n\n const inputElement = (\n <div\n className={cn(\n 'relative w-full',\n wrapperClassName,\n loading && 'opacity-50 cursor-not-allowed',\n )}\n >\n {leftIcon && (\n <div className=\"absolute left-3 flex items-center h-full top-0 text-text-secondary\">\n {leftIcon}\n </div>\n )}\n <input\n ref={ref}\n className={cn(\n inputVariants({ variant, status, size, fullWidth }),\n !!leftIcon && 'pl-10',\n !!hasRightIcon && 'pr-8',\n className,\n )}\n value={currentValue}\n onChange={handleChange}\n maxLength={maxLength}\n aria-invalid={status === 'error'}\n aria-describedby={\n helperMessage ? `input-helper-${status}` : undefined\n }\n {...props}\n />\n <div className=\"absolute right-3 flex gap-2 items-center h-full top-0 text-text-secondary\">\n {showClear && !loading && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"flex items-center h-full top-0 text-text-muted hover:text-text-primary\"\n aria-label=\"Clear input\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {loading ? <Spinner /> : rightIcon}\n </div>\n </div>\n )\n\n if (!label && !helperMessage && !showCount) return inputElement\n\n return (\n <div\n className={cn(\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n )}\n >\n <div className=\"flex gap-2 items-center relative mb-0.5\">\n {label && (\n <p className=\"text-sm font-medium text-text-secondary\">\n {label}\n {props.required && <span className=\"text-error ml-1\">*</span>}\n </p>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={`input-helper-${status}`}\n className={statusMessageVariants({ status })}\n >\n {helperMessage}\n </p>\n )}\n {showCount && maxLength && (\n <span className=\"text-xs text-text-secondary absolute right-0\">\n {String(currentValue).length}/{maxLength}\n </span>\n )}\n </div>\n {inputElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={`input-helper-${status}`}\n className={cn(statusMessageVariants({ status }), 'mt-0.5')}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport type * from './types'\nexport default Input\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/input/index.tsx"],"names":[],"mappings":"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","file":"chunk-XMKNYG7I.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { X } from 'lucide-react'\nimport React from 'react'\n\nimport Spinner from '../spinner'\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { InputProps } from './types'\n\nconst inputVariants = cva(\n 'w-full placeholder:text-text-muted rounded-md focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none text-text-primary transition-colors',\n {\n variants: {\n variant: {\n outline: 'bg-background border border-border',\n filled: 'bg-surface border border-transparent',\n },\n status: {\n default: '',\n error: '!border-error focus:!border-error',\n warning: '!border-warning focus:!border-warning',\n info: '!border-info focus:!border-info',\n success: '!border-success focus:!border-success',\n },\n size: {\n xs: 'h-[var(--input-height-xs)] px-[var(--input-padding-x-xs)] text-xs',\n sm: 'h-[var(--input-height-sm)] px-[var(--input-padding-x-sm)] text-sm',\n md: 'h-[var(--input-height-md)] px-[var(--input-padding-x-md)] text-base',\n lg: 'h-[var(--input-height-lg)] px-[var(--input-padding-x-lg)] text-lg',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\nconst Input = React.memo<InputProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n error,\n warning,\n info,\n success,\n helperText,\n messagePosition = 'bottom',\n leftIcon,\n rightIcon,\n clearable = false,\n onClear,\n loading = false,\n maxLength,\n showCount = false,\n fullWidth = true,\n className,\n wrapperClassName,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const [internalValue, setInternalValue] = React.useState('')\n const currentValue = value !== undefined ? value : internalValue\n\n // Use shared validation status utility\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) setInternalValue(e.target.value)\n onChange?.(e)\n },\n [value, onChange],\n )\n\n const handleClear = React.useCallback(() => {\n if (value === undefined) setInternalValue('')\n onClear?.()\n }, [value, onClear])\n\n const showClear =\n clearable && currentValue && !props.disabled && !props.readOnly\n const hasRightIcon = rightIcon || showClear || loading\n\n const inputElement = (\n <div\n className={cn(\n 'relative w-full',\n wrapperClassName,\n loading && 'opacity-50 cursor-not-allowed',\n )}\n >\n {leftIcon && (\n <div className=\"absolute left-3 flex items-center h-full top-0 text-text-secondary\">\n {leftIcon}\n </div>\n )}\n <input\n ref={ref}\n className={cn(\n inputVariants({ variant, status, size, fullWidth }),\n !!leftIcon && 'pl-10',\n !!hasRightIcon && 'pr-8',\n className,\n )}\n value={currentValue}\n onChange={handleChange}\n maxLength={maxLength}\n aria-invalid={status === 'error'}\n aria-describedby={\n helperMessage ? `input-helper-${status}` : undefined\n }\n {...props}\n />\n <div className=\"absolute right-3 flex gap-2 items-center h-full top-0 text-text-secondary\">\n {showClear && !loading && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"flex items-center h-full top-0 text-text-muted hover:text-text-primary\"\n aria-label=\"Clear input\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {loading ? <Spinner /> : rightIcon}\n </div>\n </div>\n )\n\n if (!label && !helperMessage && !showCount) return inputElement\n\n return (\n <div\n className={cn(\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n )}\n >\n <div className=\"flex gap-2 items-center relative mb-0.5\">\n {label && (\n <p className=\"text-sm font-medium text-text-secondary\">\n {label}\n {props.required && <span className=\"text-error ml-1\">*</span>}\n </p>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={`input-helper-${status}`}\n className={statusMessageVariants({ status })}\n >\n {helperMessage}\n </p>\n )}\n {showCount && maxLength && (\n <span className=\"text-xs text-text-secondary absolute right-0\">\n {String(currentValue).length}/{maxLength}\n </span>\n )}\n </div>\n {inputElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={`input-helper-${status}`}\n className={cn(statusMessageVariants({ status }), 'mt-0.5')}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nInput.displayName = 'Input'\n\nexport type * from './types'\nexport default Input\n"]}
|
|
@@ -18,7 +18,7 @@ var switchTrackVariants = cva(
|
|
|
18
18
|
info: "peer-checked:bg-info"
|
|
19
19
|
},
|
|
20
20
|
size: {
|
|
21
|
-
xs: "w-
|
|
21
|
+
xs: "w-[var(--switch-width-xs)] h-[var(--switch-height-xs)]",
|
|
22
22
|
sm: "w-[var(--switch-width-sm)] h-[var(--switch-height-sm)]",
|
|
23
23
|
md: "w-[var(--switch-width-md)] h-[var(--switch-height-md)]",
|
|
24
24
|
lg: "w-[var(--switch-width-lg)] h-[var(--switch-height-lg)]"
|
|
@@ -130,5 +130,5 @@ Switch.displayName = "Switch";
|
|
|
130
130
|
var switch_default = Switch;
|
|
131
131
|
|
|
132
132
|
export { switch_default };
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
134
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-YZ6V6BQ7.js.map
|
|
134
|
+
//# sourceMappingURL=chunk-YZ6V6BQ7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/switch/index.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,mBAAA,GAAsB,GAAA;AAAA,EAC1B,yIAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,yBAAA;AAAA,QACT,SAAA,EAAW,2BAAA;AAAA,QACX,MAAA,EAAQ,wBAAA;AAAA,QACR,OAAA,EAAS,yBAAA;AAAA,QACT,KAAA,EAAO,uBAAA;AAAA,QACP,OAAA,EAAS,yBAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wDAAA;AAAA,QACJ,EAAA,EAAI,wDAAA;AAAA,QACJ,EAAA,EAAI,wDAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,gCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,mBAAA,GAAsB,GAAA;AAAA,EAC1B,oGAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI,oCAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,SAAS,KAAA,CAAM,IAAA;AAAA,EACnB,CAAC;AAAA,IACC,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,aAAA,mBACJ,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA,EAAK,UAAA;AAAA,UACL,SAAA,EAAU,cAAA;AAAA,UACV,UAAU,QAAA,IAAY,OAAA;AAAA,UACtB,IAAA,EAAK,QAAA;AAAA,UACL,gBAAc,KAAA,CAAM,OAAA;AAAA,UACnB,GAAG;AAAA;AAAA,OACN;AAAA,sBACA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,mBAAA,CAAoB,EAAE,KAAA,EAAO,IAAA,EAAM,OAAO,CAAC,CAAC,OAAO,CAAA;AAAA,YACnD;AAAA;AACF;AAAA,OACF;AAAA,0BACC,KAAA,EAAA,EAAI,SAAA,EAAW,oBAAoB,EAAE,IAAA,EAAM,CAAA,EAAG,CAAA;AAAA,MAC9C,OAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,yEACb,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,0CAAA,EAA2C,CAAA,EAChE;AAAA,KAAA,EAEJ,CAAA;AAGF,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,UAAA,IAAc,CAAC,OAAO,OAAO,aAAA;AAE5C,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,yBAAA;AAAA,YACA,EAAE,YAAY,OAAA,CAAA,IAAY;AAAA,WAC5B;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,aAAA;AAAA,YACA,KAAA,oBACC,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,yCAAA;AAAA,kBACA,KAAA,IAAS,YAAA;AAAA,kBAAA,CACR,YAAY,OAAA,KAAY;AAAA,iBAC3B;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,OAEJ;AAAA,MAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,mBAAA;AAAA,YACA,QAAQ,YAAA,GAAe;AAAA,WACzB;AAAA,UAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AAGrB,IAAO,cAAA,GAAQ","file":"chunk-YZ6V6BQ7.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { Loader2 } from 'lucide-react'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { SwitchProps } from './types'\n\nconst switchTrackVariants = cva(\n 'relative bg-border rounded-full cursor-pointer transition-colors peer-disabled:opacity-50 peer-disabled:cursor-not-allowed outline-none',\n {\n variants: {\n color: {\n primary: 'peer-checked:bg-primary',\n secondary: 'peer-checked:bg-secondary',\n accent: 'peer-checked:bg-accent',\n success: 'peer-checked:bg-success',\n error: 'peer-checked:bg-error',\n warning: 'peer-checked:bg-warning',\n info: 'peer-checked:bg-info',\n },\n size: {\n xs: 'w-[var(--switch-width-xs)] h-[var(--switch-height-xs)]',\n sm: 'w-[var(--switch-width-sm)] h-[var(--switch-height-sm)]',\n md: 'w-[var(--switch-width-md)] h-[var(--switch-height-md)]',\n lg: 'w-[var(--switch-width-lg)] h-[var(--switch-height-lg)]',\n },\n error: {\n true: 'bg-error peer-checked:bg-error',\n false: '',\n },\n },\n defaultVariants: {\n color: 'primary',\n size: 'md',\n },\n },\n)\n\nconst switchThumbVariants = cva(\n 'absolute top-0.5 left-0.5 bg-background rounded-full transition-transform duration-200 ease-in-out',\n {\n variants: {\n size: {\n xs: 'w-3 h-3 peer-checked:translate-x-3',\n sm: 'w-3 h-3 peer-checked:translate-x-4',\n md: 'w-4 h-4 peer-checked:translate-x-5',\n lg: 'w-5 h-5 peer-checked:translate-x-6',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst Switch = React.memo<SwitchProps>(\n ({\n color = 'primary',\n size = 'md',\n label,\n helperText,\n error,\n loading = false,\n className,\n disabled,\n ref,\n ...props\n }) => {\n const switchElement = (\n <div className=\"relative inline-flex items-center\">\n <input\n ref={ref}\n type=\"checkbox\"\n className=\"peer sr-only\"\n disabled={disabled || loading}\n role=\"switch\"\n aria-checked={props.checked}\n {...props}\n />\n <div\n className={cn(\n switchTrackVariants({ color, size, error: !!error }),\n className,\n )}\n />\n <div className={switchThumbVariants({ size })} />\n {loading && (\n <div className=\"absolute inset-0 flex items-center justify-center pointer-events-none\">\n <Loader2 className=\"animate-spin h-3 w-3 text-text-secondary\" />\n </div>\n )}\n </div>\n )\n\n if (!label && !helperText && !error) return switchElement\n\n return (\n <div className=\"w-full\">\n <label\n className={cn(\n 'flex items-center gap-2',\n !(disabled || loading) && 'cursor-pointer',\n )}\n >\n {switchElement}\n {label && (\n <span\n className={cn(\n 'text-sm text-text-secondary select-none',\n error && 'text-error',\n (disabled || loading) && 'opacity-50',\n )}\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n className={cn(\n 'mt-1 ml-0 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nSwitch.displayName = 'Switch'\n\nexport type * from './types'\nexport default Switch\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DatePicker, RangePickerComponent as RangePicker, TimePickerComponent as TimePicker } from '../chunk-
|
|
1
|
+
export { DatePicker, RangePickerComponent as RangePicker, TimePickerComponent as TimePicker } from '../chunk-QPJL66S7.js';
|
|
2
2
|
import '../chunk-3PFA3YG6.js';
|
|
3
3
|
import '../chunk-YNNAOXU5.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
export { tooltip_default as Tooltip } from './chunk-D3JWPGCA.js';
|
|
2
|
-
export { Transfer } from './chunk-
|
|
3
|
-
export { tree_select_default as TreeSelect } from './chunk-
|
|
2
|
+
export { Transfer } from './chunk-BH4DXQC4.js';
|
|
3
|
+
export { tree_select_default as TreeSelect } from './chunk-ASW7TEAN.js';
|
|
4
4
|
export { tree_default as Tree } from './chunk-SAVE5ACL.js';
|
|
5
5
|
export { upload_default as Upload } from './chunk-I5ANSIDK.js';
|
|
6
|
-
export {
|
|
6
|
+
export { slider_default as Slider } from './chunk-NNSS366W.js';
|
|
7
7
|
export { stepper_default as Stepper } from './chunk-MLDX3Z67.js';
|
|
8
|
-
export { switch_default as Switch } from './chunk-
|
|
9
|
-
export {
|
|
10
|
-
export { table_default as Table } from './chunk-L3SP7GHC.js';
|
|
8
|
+
export { switch_default as Switch } from './chunk-YZ6V6BQ7.js';
|
|
9
|
+
export { table_default as Table } from './chunk-77DW6PAW.js';
|
|
11
10
|
export { toggle_group_default as ToggleGroup } from './chunk-SK5ECBBK.js';
|
|
11
|
+
export { tabs_default as Tabs } from './chunk-OW5A5IIF.js';
|
|
12
12
|
export { textarea_default as Textarea } from './chunk-FPOXTCYV.js';
|
|
13
13
|
export { toggle_default as Toggle } from './chunk-DPOSWW22.js';
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
14
|
+
export { progress_default as Progress } from './chunk-JLTDJ3VZ.js';
|
|
15
|
+
export { radio_default as Radio } from './chunk-GEWR5ROK.js';
|
|
16
16
|
export { radio_group_default as RadioGroup } from './chunk-DOKTHDG3.js';
|
|
17
17
|
export { rating_default as Rating } from './chunk-FYHQDFKE.js';
|
|
18
18
|
export { ribbon_default as Ribbon } from './chunk-C7SXY3ZV.js';
|
|
19
|
+
export { select_default as Select } from './chunk-UAMFKX6L.js';
|
|
19
20
|
export { skeleton_default as Skeleton } from './chunk-75XESYGN.js';
|
|
20
|
-
export { slider_default as Slider } from './chunk-NNSS366W.js';
|
|
21
21
|
export { input_group_default as InputGroup } from './chunk-KBCBVH7B.js';
|
|
22
|
-
export { input_password_default as InputPassword } from './chunk-E2CYDDYC.js';
|
|
23
22
|
export { input_otp_default as InputOTP } from './chunk-R225A5II.js';
|
|
23
|
+
export { input_password_default as InputPassword } from './chunk-6V5I5HJ2.js';
|
|
24
24
|
export { kbd_default as Kbd } from './chunk-OQANRZPV.js';
|
|
25
|
-
export { multi_select_default as MultiSelect } from './chunk-
|
|
25
|
+
export { multi_select_default as MultiSelect } from './chunk-267WNY3E.js';
|
|
26
26
|
export { notification_default as Notification } from './chunk-YZVSDRJD.js';
|
|
27
27
|
export { pagination_default as Pagination } from './chunk-FGWSUPVW.js';
|
|
28
28
|
export { descriptions_default as Descriptions } from './chunk-S5XJXU52.js';
|
|
@@ -30,27 +30,27 @@ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, Dr
|
|
|
30
30
|
export { empty_default as Empty } from './chunk-ROR4E6IE.js';
|
|
31
31
|
export { fetching_overlay_default as FetchingOverlay } from './chunk-BNILRB4T.js';
|
|
32
32
|
export { grid_default as Grid } from './chunk-7PKVBUGL.js';
|
|
33
|
-
export { input_default as Input } from './chunk-2JGAYDZR.js';
|
|
34
33
|
export { image_default as Image } from './chunk-XMAH5PDW.js';
|
|
35
|
-
export {
|
|
34
|
+
export { input_default as Input } from './chunk-XMKNYG7I.js';
|
|
35
|
+
export { cascader_default as Cascader } from './chunk-G6TAVRTJ.js';
|
|
36
36
|
export { AreaChart, BarChart, ComposedChart, LineChart, PieChart } from './chunk-BP434VYV.js';
|
|
37
|
-
export { checkbox_default as Checkbox } from './chunk-
|
|
37
|
+
export { checkbox_default as Checkbox } from './chunk-4XXDRVFM.js';
|
|
38
38
|
export { checkbox_group_default as CheckboxGroup } from './chunk-RPAQAZTI.js';
|
|
39
39
|
export { clipboard_default as Clipboard } from './chunk-RMGIO27V.js';
|
|
40
40
|
export { collapse_default as Collapse } from './chunk-SOV4PE3P.js';
|
|
41
41
|
export { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandModal, CommandSeparator, CommandShortcut } from './chunk-4P5EMRFI.js';
|
|
42
42
|
export { modal_default as Modal } from './chunk-5VCGW53O.js';
|
|
43
|
-
export { DatePicker, RangePickerComponent as RangePicker, TimePickerComponent as TimePicker } from './chunk-
|
|
44
|
-
export { badge_default as Badge } from './chunk-FTJOSVTY.js';
|
|
43
|
+
export { DatePicker, RangePickerComponent as RangePicker, TimePickerComponent as TimePicker } from './chunk-QPJL66S7.js';
|
|
45
44
|
export { accordion_default as Accordion } from './chunk-CWHFK7ZC.js';
|
|
45
|
+
export { badge_default as Badge } from './chunk-FTJOSVTY.js';
|
|
46
46
|
export { breadcrumbs_default as Breadcrumbs } from './chunk-HUVXKOJC.js';
|
|
47
47
|
export { dropdown_default as Dropdown } from './chunk-KNQ7UQ2W.js';
|
|
48
48
|
export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from './chunk-3PFA3YG6.js';
|
|
49
|
-
export {
|
|
50
|
-
export { card_default as Card } from './chunk-XOBGEMQY.js';
|
|
51
|
-
export { button_default as Button } from './chunk-LBJG2UWT.js';
|
|
49
|
+
export { button_default as Button } from './chunk-KTAIRCOL.js';
|
|
52
50
|
export { spinner_default as Spinner } from './chunk-J3G5WWGR.js';
|
|
53
51
|
export { buttonColors, commonSpacing, componentColors, componentSizeVariants, createAllColorVariants, createDashedColorVariants, createDefaultColorVariants, createGhostColorVariants, createLinkColorVariants, createOutlineColorVariants, createSoftColorVariants, createSolidColorVariants, extendedComponentSizeVariants, getAccordionColorClass, getCheckboxColorClass, getIconColorClass, iconColorClasses, textColorVariants } from './chunk-5UEWVFF6.js';
|
|
52
|
+
export { button_group_default as ButtonGroup } from './chunk-56IXGP5C.js';
|
|
53
|
+
export { card_default as Card } from './chunk-XOBGEMQY.js';
|
|
54
54
|
export { cn, getValidationStatus, iconSizes } from './chunk-YNNAOXU5.js';
|
|
55
55
|
export { carousel_default as Carousel } from './chunk-C3MX5EXL.js';
|
|
56
56
|
//# sourceMappingURL=index.js.map
|
package/dist/input/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { PasswordInput, input_password_default as default } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { PasswordInput, input_password_default as default } from '../chunk-6V5I5HJ2.js';
|
|
2
|
+
import '../chunk-XMKNYG7I.js';
|
|
3
3
|
import '../chunk-J3G5WWGR.js';
|
|
4
4
|
import '../chunk-YNNAOXU5.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/progress/index.js
CHANGED
package/dist/radio/index.js
CHANGED
package/dist/select/index.js
CHANGED