@etus/ui 0.4.0-beta.5 → 0.4.0-beta.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.
- package/dist/{chunk-2HM5Z2YP.js → chunk-2YWWZEPE.js} +3 -3
- package/dist/{chunk-2HM5Z2YP.js.map → chunk-2YWWZEPE.js.map} +1 -1
- package/dist/{chunk-F6ZKBK5B.js → chunk-5GE3BQA7.js} +9 -4
- package/dist/chunk-5GE3BQA7.js.map +1 -0
- package/dist/{chunk-QZWKXUZP.js → chunk-6ELVWWIA.js} +3 -3
- package/dist/{chunk-QZWKXUZP.js.map → chunk-6ELVWWIA.js.map} +1 -1
- package/dist/{chunk-3RJEA2MM.js → chunk-6HEURMY3.js} +102 -65
- package/dist/chunk-6HEURMY3.js.map +1 -0
- package/dist/{chunk-ZS2WS5NJ.js → chunk-AVR3LVOQ.js} +48 -3
- package/dist/chunk-AVR3LVOQ.js.map +1 -0
- package/dist/{chunk-HT5XM6XK.js → chunk-FCT6FEEZ.js} +4 -4
- package/dist/{chunk-HT5XM6XK.js.map → chunk-FCT6FEEZ.js.map} +1 -1
- package/dist/{chunk-XXFKDEFH.js → chunk-JUTPDS4E.js} +7 -11
- package/dist/chunk-JUTPDS4E.js.map +1 -0
- package/dist/{chunk-DDR24GOP.js → chunk-L3Z5FAJE.js} +67 -51
- package/dist/chunk-L3Z5FAJE.js.map +1 -0
- package/dist/{chunk-RVUO7SDG.js → chunk-LS3WD6IZ.js} +63 -28
- package/dist/chunk-LS3WD6IZ.js.map +1 -0
- package/dist/{chunk-32IJQOUV.js → chunk-OTSK2KAI.js} +3 -3
- package/dist/{chunk-32IJQOUV.js.map → chunk-OTSK2KAI.js.map} +1 -1
- package/dist/{chunk-5YDFC74M.js → chunk-XD5LE64P.js} +7 -6
- package/dist/chunk-XD5LE64P.js.map +1 -0
- package/dist/{chunk-CSXT7SKR.js → chunk-YCEZH35U.js} +18 -4
- package/dist/chunk-YCEZH35U.js.map +1 -0
- package/dist/{chunk-2D6OFVPN.js → chunk-YWA63YN3.js} +22 -2
- package/dist/chunk-YWA63YN3.js.map +1 -0
- package/dist/{chunk-CP2PEDG2.js → chunk-Z4KW5VW6.js} +3 -3
- package/dist/chunk-Z4KW5VW6.js.map +1 -0
- package/dist/components/advanced/Calendar/index.js +1 -1
- package/dist/components/advanced/EventCalendar/index.js +1 -1
- package/dist/components/advanced/FilterBuilder/index.js +1 -1
- package/dist/components/advanced/ReportBuilder/index.js +2 -2
- package/dist/components/advanced/index.js +13 -13
- package/dist/components/data-display/Carousel/index.js +1 -1
- package/dist/components/data-display/ChartCard/index.js +1 -3
- package/dist/components/data-display/DashboardFilterbar/index.js +3 -3
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +1 -1
- package/dist/components/data-display/DataTable/index.js +1 -1
- package/dist/components/data-display/ImageGallery/index.js +8 -1
- package/dist/components/data-display/KPICard/index.js +2 -2
- package/dist/components/data-display/index.js +25 -25
- package/dist/components/feedback/AlertDialog/index.js +1 -1
- package/dist/components/feedback/ConfirmModal/index.js +1 -1
- package/dist/components/feedback/Modal/index.js +1 -1
- package/dist/components/feedback/index.js +5 -5
- package/dist/components/forms/ColorPicker/index.js +1 -1
- package/dist/components/forms/DatePicker/index.js +2 -2
- package/dist/components/forms/DateRangePicker/index.js +2 -2
- package/dist/components/forms/InputGroup/index.js +1 -1
- package/dist/components/forms/InputOTPField/index.js +2 -2
- package/dist/components/forms/Slider/index.js +1 -1
- package/dist/components/forms/index.js +24 -24
- package/dist/components/index.js +121 -121
- package/dist/components/layout/Panel/index.js +2 -1
- package/dist/components/layout/index.js +4 -4
- package/dist/components/navigation/Menu/index.js +2 -1
- package/dist/components/navigation/MobileSidebar/index.js +1 -1
- package/dist/components/navigation/Pagination/index.js +1 -1
- package/dist/components/navigation/Sidebar/index.js +3 -3
- package/dist/components/navigation/Toolbar/index.js +1 -1
- package/dist/components/navigation/index.js +12 -11
- package/dist/components/primitives/Button/index.js +1 -1
- package/dist/components/primitives/ConfirmButton/index.js +1 -1
- package/dist/components/primitives/index.js +10 -10
- package/dist/components/workflow/ApprovalFlow/index.js +1 -1
- package/dist/components/workflow/CommentSystem/index.js +1 -1
- package/dist/components/workflow/Dashboard/index.js +1 -1
- package/dist/components/workflow/DashboardBuilder/index.js +1 -1
- package/dist/components/workflow/KanbanBoard/index.js +1 -1
- package/dist/components/workflow/ReportGenerator/index.js +1 -1
- package/dist/components/workflow/Wizard/index.js +1 -1
- package/dist/components/workflow/index.js +9 -9
- package/dist/index.d.ts +163 -58
- package/dist/index.js +123 -123
- package/dist/styles.css +19 -9
- package/package.json +2 -2
- package/dist/chunk-2D6OFVPN.js.map +0 -1
- package/dist/chunk-3RJEA2MM.js.map +0 -1
- package/dist/chunk-5YDFC74M.js.map +0 -1
- package/dist/chunk-CP2PEDG2.js.map +0 -1
- package/dist/chunk-CSXT7SKR.js.map +0 -1
- package/dist/chunk-DDR24GOP.js.map +0 -1
- package/dist/chunk-F6ZKBK5B.js.map +0 -1
- package/dist/chunk-RVUO7SDG.js.map +0 -1
- package/dist/chunk-XXFKDEFH.js.map +0 -1
- package/dist/chunk-ZS2WS5NJ.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/ColorPicker/ColorPicker.variants.ts","../src/components/forms/ColorPicker/ColorPicker.tsx"],"names":[],"mappings":"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","file":"chunk-5YDFC74M.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ColorPicker trigger variant styles using CVA\n */\nexport const colorPickerTriggerVariants = cva(\n // Base styles\n [\n \"inline-flex w-full items-center justify-between gap-2 rounded-[var(--color-picker-trigger-radius)] border bg-transparent font-normal transition-[color,box-shadow] outline-none\",\n \"text-left\",\n \"placeholder:text-muted-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:border-[color:var(--color-picker-focus-ring-primary)] focus-visible:ring-[color:var(--color-picker-focus-ring-primary)]/50 focus-visible:ring-[length:var(--color-picker-focus-ring-width)]\",\n \"aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/20 dark:aria-invalid:ring-[color:var(--color-picker-focus-ring-destructive)]/40 aria-invalid:border-[color:var(--color-picker-focus-ring-destructive)]\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2.5 py-1 text-sm\",\n md: \"h-9 px-3 py-1 text-base md:text-sm\",\n lg: \"h-10 px-3.5 py-1.5 text-base\",\n },\n variant: {\n default: \"border-input shadow-xs dark:bg-input/30\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ColorPicker swatch styles using CVA\n */\nexport const colorPickerSwatchVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input cursor-pointer transition-all\",\n \"hover:scale-110 hover:border-ring\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n ],\n {\n variants: {\n size: {\n sm: \"size-5\",\n md: \"size-6\",\n lg: \"size-7\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\n/**\n * ColorPicker preview swatch (in trigger) styles\n */\nexport const colorPickerPreviewVariants = cva(\n // Base styles\n [\n \"rounded-[var(--color-picker-swatch-radius)] border border-input shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type ColorPickerTriggerVariantProps = VariantProps<typeof colorPickerTriggerVariants>\nexport type ColorPickerSwatchVariantProps = VariantProps<typeof colorPickerSwatchVariants>\nexport type ColorPickerPreviewVariantProps = VariantProps<typeof colorPickerPreviewVariants>\n","import type { ColorPickerProps } from \"./ColorPicker.types\"\n\nimport { Palette } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../../feedback/Popover\"\nimport {\n colorPickerPreviewVariants,\n colorPickerSwatchVariants,\n colorPickerTriggerVariants,\n} from \"./ColorPicker.variants\"\n\n/**\n * Validates if a string is a valid 6-digit hex color\n */\nfunction isValid6DigitHex(color: string): boolean {\n return /^#[A-Fa-f0-9]{6}$/.test(color)\n}\n\n/**\n * Validates if a string is a valid 3-digit hex color\n */\nfunction isValid3DigitHex(color: string): boolean {\n return /^#[A-Fa-f0-9]{3}$/.test(color)\n}\n\n/**\n * Validates if a string is a valid hex color (3 or 6 digit)\n */\nfunction isValidHexColor(color: string): boolean {\n return isValid6DigitHex(color) || isValid3DigitHex(color)\n}\n\n/**\n * Normalizes a hex color to 6-digit lowercase format\n */\nfunction normalizeHexColor(color: string): string {\n if (!color.startsWith(\"#\")) {\n color = `#${color}`\n }\n // Convert 3-digit hex to 6-digit\n if (color.length === 4) {\n const r = color[1] ?? \"\"\n const g = color[2] ?? \"\"\n const b = color[3] ?? \"\"\n return `#${r}${r}${g}${g}${b}${b}`.toLowerCase()\n }\n return color.toLowerCase()\n}\n\n/**\n * Default preset swatches\n */\nconst DEFAULT_SWATCHES = [\n \"#ef4444\", // red\n \"#f97316\", // orange\n \"#eab308\", // yellow\n \"#22c55e\", // green\n \"#14b8a6\", // teal\n \"#3b82f6\", // blue\n \"#8b5cf6\", // violet\n \"#ec4899\", // pink\n \"#000000\", // black\n \"#ffffff\", // white\n]\n\nfunction ColorPicker({\n className,\n value,\n defaultValue,\n placeholder = \"Select color\",\n disabled = false,\n swatches = DEFAULT_SWATCHES,\n showInput = true,\n showPreview = true,\n onChange,\n onOpenChange,\n size = \"md\",\n variant = \"default\",\n required = false,\n invalid = false,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n ...props\n}: ColorPickerProps) {\n const [open, setOpen] = React.useState(false)\n const [internalColor, setInternalColor] = React.useState<string | undefined>(defaultValue)\n const [inputValue, setInputValue] = React.useState(defaultValue ?? \"\")\n const colorInputRef = React.useRef<HTMLInputElement>(null)\n\n // Use controlled value if provided, otherwise use internal state\n const selectedColor = value ?? internalColor\n\n // Sync controlled color to input value when it changes.\n /* eslint-disable react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Controlled value sync */\n React.useEffect(() => {\n if (!selectedColor) return\n setInputValue((prev) => (prev === selectedColor ? prev : selectedColor))\n }, [selectedColor])\n /* eslint-enable react-you-might-not-need-an-effect/no-event-handler, react-you-might-not-need-an-effect/no-pass-live-state-to-parent, react-you-might-not-need-an-effect/no-pass-data-to-parent, react-you-might-not-need-an-effect/no-derived-state, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n const handleColorChange = (color: string) => {\n const normalizedColor = normalizeHexColor(color)\n if (value === undefined) {\n setInternalColor(normalizedColor)\n }\n onChange?.(normalizedColor)\n }\n\n const handleNativeColorChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleColorChange(e.target.value)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let inputVal = e.target.value\n setInputValue(inputVal)\n\n // Auto-add # if not present\n if (inputVal && !inputVal.startsWith(\"#\")) {\n inputVal = `#${inputVal}`\n }\n\n // Only validate 6-digit hex during typing to avoid intermediate 3-digit matches\n if (isValid6DigitHex(inputVal)) {\n handleColorChange(inputVal)\n }\n }\n\n const handleInputBlur = () => {\n let inputVal = inputValue\n\n // Auto-add # if not present\n if (inputVal && !inputVal.startsWith(\"#\")) {\n inputVal = `#${inputVal}`\n }\n\n // On blur, also accept 3-digit hex and normalize it\n if (isValid3DigitHex(inputVal)) {\n handleColorChange(inputVal)\n } else if (!isValidHexColor(inputVal) && selectedColor) {\n // Reset to current color if invalid\n setInputValue(selectedColor)\n }\n }\n\n const handleSwatchClick = (color: string) => {\n handleColorChange(color)\n }\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n\n return (\n <div className={cn(\"relative\", className)} data-slot=\"color-picker\" {...props}>\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <button\n className={cn(\n colorPickerTriggerVariants({ size, variant }),\n !selectedColor && \"text-muted-foreground\"\n )}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-invalid={invalid}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-required={required}\n data-size={size}\n data-slot=\"color-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={variant}\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n >\n <span className=\"flex items-center gap-2 flex-1 truncate\">\n {showPreview && selectedColor && (\n <span\n aria-hidden=\"true\"\n className={cn(colorPickerPreviewVariants({ size }))}\n data-slot=\"color-picker-preview\"\n style={{ backgroundColor: selectedColor }}\n />\n )}\n <span className=\"truncate\">\n {selectedColor ?? placeholder}\n </span>\n </span>\n <Palette aria-hidden=\"true\" className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-64 p-3\"\n data-slot=\"color-picker-content\"\n >\n <div className=\"space-y-3\">\n {/* Native color picker */}\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <input\n ref={colorInputRef}\n aria-label=\"Choose color\"\n className=\"size-10 cursor-pointer rounded-md border border-input p-0.5 [&::-webkit-color-swatch-wrapper]:p-0 [&::-webkit-color-swatch]:rounded-sm [&::-webkit-color-swatch]:border-none [&::-moz-color-swatch]:rounded-sm [&::-moz-color-swatch]:border-none\"\n data-slot=\"color-picker-native\"\n type=\"color\"\n value={selectedColor ?? \"#000000\"}\n onChange={handleNativeColorChange}\n />\n </div>\n {showInput && (\n <input\n aria-label=\"Hex color value\"\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm font-mono shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 uppercase\"\n data-slot=\"color-picker-input\"\n maxLength={7}\n placeholder=\"#000000\"\n type=\"text\"\n value={inputValue}\n onBlur={handleInputBlur}\n onChange={handleInputChange}\n />\n )}\n </div>\n\n {/* Preset swatches */}\n {swatches.length > 0 ? (\n <div className=\"space-y-1.5\">\n <span className=\"text-xs text-muted-foreground font-medium\">\n Preset colors\n </span>\n <div\n aria-label=\"Color swatches\"\n className=\"grid grid-cols-5 gap-2\"\n data-slot=\"color-picker-swatches\"\n role=\"group\"\n >\n {swatches.map((color, index) => (\n <button\n key={`${color}-${String(index)}`}\n className={cn(\n colorPickerSwatchVariants({ size }),\n selectedColor === color && \"ring-2 ring-ring ring-offset-2\"\n )}\n aria-label={`Select color ${color}`}\n aria-pressed={selectedColor === color}\n data-color={color}\n data-selected={selectedColor === color}\n data-slot=\"color-picker-swatch\"\n style={{ backgroundColor: color }}\n type=\"button\"\n onClick={() => { handleSwatchClick(color); }}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </PopoverContent>\n </Popover>\n {name && (\n <input\n name={name}\n type=\"hidden\"\n value={selectedColor ?? \"\"}\n />\n )}\n </div>\n )\n}\n\nexport { ColorPicker }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/Slider/Slider.variants.ts","../src/components/forms/Slider/Slider.tsx"],"names":[],"mappings":"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","file":"chunk-CP2PEDG2.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const sliderRootVariants = cva(\n [\n \"relative flex w-full touch-none items-center select-none\",\n \"data-[disabled]:opacity-50\",\n \"data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n labelType: {\n none: \"\",\n text: \"pb-8\", // Space for bottom label\n tooltip: \"pt-12\", // Space for top tooltip\n },\n hasMarks: {\n true: \"pb-6\", // Space for marks below track\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n labelType: \"none\",\n hasMarks: false,\n },\n }\n)\n\nexport const sliderTrackVariants = cva(\n [\n \"bg-[color:var(--slider-track-bg)] relative grow overflow-hidden rounded-full\",\n \"data-[orientation=horizontal]:w-full\",\n \"data-[orientation=vertical]:h-full\",\n ],\n {\n variants: {\n size: {\n sm: \"data-[orientation=horizontal]:h-[var(--slider-track-height-sm)] data-[orientation=vertical]:w-[var(--slider-track-height-sm)]\",\n md: \"data-[orientation=horizontal]:h-[var(--slider-track-height-md)] data-[orientation=vertical]:w-[var(--slider-track-height-md)]\",\n lg: \"data-[orientation=horizontal]:h-[var(--slider-track-height-lg)] data-[orientation=vertical]:w-[var(--slider-track-height-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const sliderRangeVariants = cva(\n [\n \"absolute\",\n \"data-[orientation=horizontal]:h-full\",\n \"data-[orientation=vertical]:w-full\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n color: {\n default: \"bg-[color:var(--slider-range-bg-default)]\",\n primary: \"bg-[color:var(--slider-range-bg-default)]\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n error: \"bg-destructive\",\n },\n },\n defaultVariants: {\n size: \"md\",\n color: \"default\",\n },\n }\n)\n\nexport const sliderThumbVariants = cva(\n [\n \"block shrink-0 rounded-full\",\n \"bg-[color:var(--slider-thumb-bg)] border-2\",\n \"shadow-md transition-shadow\",\n \"hover:shadow-lg\",\n \"focus-visible:outline-hidden\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"size-[var(--slider-thumb-size-sm)]\",\n md: \"size-[var(--slider-thumb-size-md)]\",\n lg: \"size-[var(--slider-thumb-size-lg)]\",\n },\n color: {\n default: \"border-[color:var(--slider-thumb-border)] focus-visible:shadow-[0_0_0_var(--slider-focus-ring-width)_var(--slider-focus-ring-primary),var(--slider-thumb-drop-shadow)]\",\n primary: \"border-primary focus-visible:shadow-[0_0_0_var(--slider-focus-ring-width)_var(--ring),var(--slider-thumb-drop-shadow)]\",\n success: \"border-success focus-visible:shadow-[0_0_0_var(--slider-focus-ring-width)_var(--success),var(--slider-thumb-drop-shadow)]\",\n warning: \"border-warning focus-visible:shadow-[0_0_0_var(--slider-focus-ring-width)_var(--warning),var(--slider-thumb-drop-shadow)]\",\n error: \"border-destructive focus-visible:shadow-[0_0_0_var(--slider-focus-ring-width)_var(--destructive),var(--slider-thumb-drop-shadow)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n color: \"default\",\n },\n }\n)\n\nexport const sliderLabelVariants = cva(\n [\n \"absolute left-1/2 -translate-x-1/2 text-center whitespace-nowrap\",\n \"font-medium text-slider-label-text\",\n ],\n {\n variants: {\n size: {\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const sliderTooltipVariants = cva(\n [\n \"absolute left-1/2 -translate-x-1/2 bottom-full mb-2\",\n \"bg-slider-tooltip-bg border border-slider-tooltip-border rounded-lg\",\n \"px-3 py-2 shadow-lg\",\n \"text-xs font-semibold text-slider-tooltip-text text-center whitespace-nowrap\",\n ],\n {\n variants: {\n size: {\n sm: \"px-2 py-1.5 text-xs\",\n md: \"px-3 py-2 text-xs\",\n lg: \"px-3 py-2 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const sliderMarkContainerVariants = cva(\n [\n \"absolute w-full\",\n \"data-[orientation=horizontal]:top-full data-[orientation=horizontal]:mt-2\",\n \"data-[orientation=vertical]:left-full data-[orientation=vertical]:ml-2 data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const sliderMarkVariants = cva(\n [\n \"absolute flex flex-col items-center\",\n \"data-[orientation=vertical]:flex-row\",\n ],\n {\n variants: {\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const sliderMarkTickVariants = cva(\n [\n \"rounded-full bg-border-semantic-strong\",\n ],\n {\n variants: {\n size: {\n sm: \"size-1\",\n md: \"size-1.5\",\n lg: \"size-2\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const sliderMarkLabelVariants = cva(\n [\n \"text-text-secondary whitespace-nowrap\",\n \"data-[orientation=horizontal]:mt-1\",\n \"data-[orientation=vertical]:ml-2\",\n ],\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type SliderRootVariantProps = VariantProps<typeof sliderRootVariants>\nexport type SliderTrackVariantProps = VariantProps<typeof sliderTrackVariants>\nexport type SliderRangeVariantProps = VariantProps<typeof sliderRangeVariants>\nexport type SliderThumbVariantProps = VariantProps<typeof sliderThumbVariants>\nexport type SliderLabelVariantProps = VariantProps<typeof sliderLabelVariants>\nexport type SliderTooltipVariantProps = VariantProps<typeof sliderTooltipVariants>\nexport type SliderMarkContainerVariantProps = VariantProps<typeof sliderMarkContainerVariants>\nexport type SliderMarkVariantProps = VariantProps<typeof sliderMarkVariants>\nexport type SliderMarkTickVariantProps = VariantProps<typeof sliderMarkTickVariants>\nexport type SliderMarkLabelVariantProps = VariantProps<typeof sliderMarkLabelVariants>\n","\"use client\"\n\nimport type { SliderMark, SliderProps } from \"./Slider.types\"\n\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n sliderLabelVariants,\n sliderMarkContainerVariants,\n sliderMarkLabelVariants,\n sliderMarkTickVariants,\n sliderMarkVariants,\n sliderRangeVariants,\n sliderRootVariants,\n sliderThumbVariants,\n sliderTooltipVariants,\n sliderTrackVariants,\n} from \"./Slider.variants\"\n\n/**\n * Default format function for slider values\n */\nconst defaultFormatValue = (value: number): string => `${String(value)}%`\n\n/**\n * Generate marks array from step value\n */\nfunction generateMarksFromStep(\n min: number,\n max: number,\n step: number\n): SliderMark[] {\n const marks: SliderMark[] = []\n for (let value = min; value <= max; value += step) {\n marks.push({ value })\n }\n return marks\n}\n\n/**\n * Slider - A range input component with optional value labels\n *\n * Based on Figma Slider/Range design. Supports:\n * - Single or multiple thumbs (range slider)\n * - Label types: none, text (bottom), tooltip (floating)\n * - Three sizes: sm, md, lg\n * - Color variants: default, primary, success, warning, error\n * - Marks/tick indicators along the track\n * - Accessible aria-valuetext via getAriaValueText\n *\n * @example\n * ```tsx\n * // Simple slider\n * <Slider defaultValue={[50]} />\n *\n * // Range slider with bottom labels\n * <Slider\n * defaultValue={[20, 80]}\n * labelType=\"text\"\n * />\n *\n * // Slider with marks\n * <Slider\n * defaultValue={[50]}\n * marks={[\n * { value: 0, label: \"0%\" },\n * { value: 50, label: \"50%\" },\n * { value: 100, label: \"100%\" }\n * ]}\n * />\n *\n * // Slider with color variant\n * <Slider defaultValue={[75]} color=\"success\" />\n *\n * // Slider with accessible value text\n * <Slider\n * defaultValue={[50]}\n * getAriaValueText={(value) => `${value} percent`}\n * />\n * ```\n */\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n step = 1,\n size = \"md\",\n labelType = \"none\",\n color = \"default\",\n formatValue = defaultFormatValue,\n marks,\n getAriaValueText,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n onValueChange,\n orientation = \"horizontal\",\n ...props\n}: SliderProps) {\n // Track internal values for uncontrolled mode\n const [internalValues, setInternalValues] = React.useState<number[]>(() => {\n if (value) return value\n if (defaultValue) return defaultValue\n return [min]\n })\n\n // Use controlled value if provided, otherwise internal state\n const currentValues = value ?? internalValues\n\n // Handle value changes\n const handleValueChange = React.useCallback(\n (newValues: number[]) => {\n if (!value) {\n setInternalValues(newValues)\n }\n onValueChange?.(newValues)\n },\n [value, onValueChange]\n )\n\n // Compute marks array\n const computedMarks = React.useMemo(() => {\n if (!marks) return null\n if (marks === true) {\n return generateMarksFromStep(min, max, step)\n }\n return marks\n }, [marks, min, max, step])\n\n const hasMarks = Boolean(computedMarks && computedMarks.length > 0)\n\n return (\n <SliderPrimitive.Root\n data-label-type={labelType}\n data-orientation={orientation}\n data-slot=\"slider\"\n {...(defaultValue ? { defaultValue } : {})}\n {...(value ? { value } : {})}\n className={cn(\n sliderRootVariants({ size, labelType, hasMarks }),\n className\n )}\n max={max}\n min={min}\n orientation={orientation}\n step={step}\n onValueChange={handleValueChange}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(sliderTrackVariants({ size }))}\n data-slot=\"slider-track\"\n >\n <SliderPrimitive.Range\n className={cn(sliderRangeVariants({ size, color }))}\n data-slot=\"slider-range\"\n />\n </SliderPrimitive.Track>\n\n {currentValues.map((thumbValue, index) => (\n <SliderPrimitive.Thumb\n // eslint-disable-next-line @eslint-react/no-array-index-key -- Slider thumbs have no unique identifier, index is stable\n key={index}\n aria-valuetext={getAriaValueText?.(thumbValue, index)}\n className={cn(sliderThumbVariants({ size, color }), \"relative\")}\n data-slot=\"slider-thumb\"\n >\n {/* Bottom text label */}\n {labelType === \"text\" && (\n <span\n className={cn(sliderLabelVariants({ size }), \"top-full mt-2\")}\n data-slot=\"slider-label\"\n >\n {formatValue(thumbValue)}\n </span>\n )}\n\n {/* Floating tooltip */}\n {labelType === \"tooltip\" && (\n <span\n className={cn(sliderTooltipVariants({ size }))}\n data-slot=\"slider-tooltip\"\n >\n {formatValue(thumbValue)}\n </span>\n )}\n </SliderPrimitive.Thumb>\n ))}\n\n {/* Marks/tick indicators */}\n {hasMarks && computedMarks && (\n <div\n className={cn(sliderMarkContainerVariants({ size }))}\n data-orientation={orientation}\n data-slot=\"slider-marks\"\n >\n {computedMarks.map((mark) => {\n const percent = ((mark.value - min) / (max - min)) * 100\n const positionStyle =\n orientation === \"vertical\"\n ? { bottom: `${String(percent)}%`, transform: \"translateY(50%)\" }\n : { left: `${String(percent)}%`, transform: \"translateX(-50%)\" }\n\n return (\n <div\n key={mark.value}\n className={cn(sliderMarkVariants({ size }))}\n data-orientation={orientation}\n data-slot=\"slider-mark\"\n style={positionStyle}\n >\n <span\n className={cn(sliderMarkTickVariants({ size }))}\n data-slot=\"slider-mark-tick\"\n />\n {mark.label && (\n <span\n className={cn(sliderMarkLabelVariants({ size }))}\n data-orientation={orientation}\n data-slot=\"slider-mark-label\"\n >\n {mark.label}\n </span>\n )}\n </div>\n )\n })}\n </div>\n )}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/Toolbar/Toolbar.variants.ts","../src/components/navigation/Toolbar/Toolbar.tsx"],"names":[],"mappings":"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","file":"chunk-CSXT7SKR.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Toolbar root variant styles\n */\nexport const toolbarVariants = cva(\n [\n // Base styles\n \"flex items-center gap-[var(--toolbar-root-gap)] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch\",\n ],\n {\n variants: {\n variant: {\n default: \"rounded-[var(--toolbar-root-radius)] border border-[color:var(--toolbar-root-border)] bg-[color:var(--toolbar-root-background)] p-[var(--toolbar-root-padding)]\",\n floating: \"rounded-[var(--toolbar-root-radius)] border border-[color:var(--toolbar-root-border)] bg-popover p-[var(--toolbar-root-padding)] shadow-lg\",\n sticky: \"border-b border-[color:var(--toolbar-root-border)] bg-[color:var(--toolbar-root-background)] px-[var(--toolbar-root-padding-x)] py-[var(--toolbar-root-padding-y)]\",\n minimal: \"gap-1\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Toolbar button variant styles\n */\nexport const toolbarButtonVariants = cva([\n // Base styles\n \"inline-flex items-center justify-center rounded-[var(--toolbar-button-radius)] h-[var(--toolbar-button-height)] px-[var(--toolbar-button-padding-x)]\",\n // Colors\n \"text-foreground\",\n \"hover:bg-accent hover:text-accent-foreground\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n // Disabled\n \"disabled:pointer-events-none disabled:opacity-50\",\n // Transition\n \"transition-colors\",\n // SVG styles\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n])\n\n/**\n * Toolbar toggle group variant styles\n */\nexport const toolbarToggleGroupVariants = cva([\n \"flex items-center gap-0.5\",\n])\n\n/**\n * Toolbar toggle item variant styles\n */\nexport const toolbarToggleItemVariants = cva([\n // Base styles\n \"inline-flex items-center justify-center rounded-sm p-2\",\n // Colors\n \"text-foreground\",\n \"hover:bg-accent hover:text-accent-foreground\",\n // Active state\n \"data-[state=on]:bg-accent data-[state=on]:text-accent-foreground\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n // Disabled\n \"disabled:pointer-events-none disabled:opacity-50\",\n // Transition\n \"transition-colors\",\n // SVG styles\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n])\n\n/**\n * Toolbar separator variant styles\n */\nexport const toolbarSeparatorVariants = cva([\n \"mx-2 h-6 w-px bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=horizontal]:mx-0 data-[orientation=horizontal]:my-2\",\n])\n\n/**\n * Toolbar link variant styles\n */\nexport const toolbarLinkVariants = cva([\n // Base styles\n \"inline-flex items-center justify-center rounded-sm p-2\",\n // Colors\n \"text-foreground\",\n \"hover:bg-accent hover:text-accent-foreground\",\n // Focus styles\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n // Transition\n \"transition-colors\",\n // SVG styles\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n])\n","\"use client\"\n\nimport type {\n ToolbarButtonProps,\n ToolbarLinkProps,\n ToolbarProps,\n ToolbarSeparatorProps,\n ToolbarToggleGroupProps,\n ToolbarToggleItemProps,\n} from \"./Toolbar.types\"\n\nimport * as ToolbarPrimitive from \"@radix-ui/react-toolbar\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n toolbarButtonVariants,\n toolbarLinkVariants,\n toolbarSeparatorVariants,\n toolbarToggleGroupVariants,\n toolbarToggleItemVariants,\n toolbarVariants,\n} from \"./Toolbar.variants\"\n\n/**\n * Toolbar - Root container for toolbar components.\n *\n * A horizontal bar of actions and controls for the current content.\n * Provides quick access to common functionality like text formatting,\n * zoom, alignment, and other contextual operations.\n *\n * @example\n * <Toolbar>\n * <ToolbarToggleGroup type=\"multiple\">\n * <ToolbarToggleItem value=\"bold\">Bold</ToolbarToggleItem>\n * <ToolbarToggleItem value=\"italic\">Italic</ToolbarToggleItem>\n * </ToolbarToggleGroup>\n * <ToolbarSeparator />\n * <ToolbarButton>Action</ToolbarButton>\n * </Toolbar>\n */\nfunction Toolbar({ className, variant = \"default\", ...props }: ToolbarProps) {\n return (\n <ToolbarPrimitive.Root\n className={cn(toolbarVariants({ variant }), className)}\n data-slot=\"toolbar\"\n {...props}\n />\n )\n}\n\n/**\n * ToolbarButton - Button for toolbar actions.\n *\n * Used for non-toggle actions within the toolbar.\n */\nfunction ToolbarButton({ className, ...props }: ToolbarButtonProps) {\n return (\n <ToolbarPrimitive.Button\n className={cn(toolbarButtonVariants(), className)}\n data-slot=\"toolbar-button\"\n {...props}\n />\n )\n}\n\n/**\n * ToolbarToggleGroup - Container for toggle items.\n *\n * Groups toggle items for single or multiple selection.\n */\nfunction ToolbarToggleGroup({ className, ...props }: ToolbarToggleGroupProps) {\n return (\n <ToolbarPrimitive.ToggleGroup\n className={cn(toolbarToggleGroupVariants(), className)}\n data-slot=\"toolbar-toggle-group\"\n {...props}\n />\n )\n}\n\n/**\n * ToolbarToggleItem - Individual toggle item within a toggle group.\n *\n * Represents a selectable option that can be toggled on/off.\n */\nfunction ToolbarToggleItem({ className, ...props }: ToolbarToggleItemProps) {\n return (\n <ToolbarPrimitive.ToggleItem\n className={cn(toolbarToggleItemVariants(), className)}\n data-slot=\"toolbar-toggle-item\"\n {...props}\n />\n )\n}\n\n/**\n * ToolbarSeparator - Visual separator between toolbar groups.\n *\n * Provides visual division between groups of related actions.\n */\nfunction ToolbarSeparator({ className, ...props }: ToolbarSeparatorProps) {\n return (\n <ToolbarPrimitive.Separator\n className={cn(toolbarSeparatorVariants(), className)}\n data-slot=\"toolbar-separator\"\n {...props}\n />\n )\n}\n\n/**\n * ToolbarLink - Link element within the toolbar.\n *\n * Renders an accessible link styled to match toolbar items.\n */\nfunction ToolbarLink({ className, ...props }: ToolbarLinkProps) {\n return (\n <ToolbarPrimitive.Link\n className={cn(toolbarLinkVariants(), className)}\n data-slot=\"toolbar-link\"\n {...props}\n />\n )\n}\n\nexport {\n Toolbar,\n ToolbarButton,\n ToolbarLink,\n ToolbarSeparator,\n ToolbarToggleGroup,\n ToolbarToggleItem,\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/ChartCard/ChartCard.variants.ts","../src/components/data-display/ChartCard/ChartCard.tsx"],"names":[],"mappings":"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","file":"chunk-DDR24GOP.js","sourcesContent":["// ChartCard/ChartCard.variants.ts\nimport { cva } from \"class-variance-authority\"\n\n/**\n * ChartCard container variants\n */\nexport const chartCardVariants = cva(\n \"transition\",\n {\n variants: {\n variant: {\n default: \"\",\n outlined: \"border border-border rounded-lg p-4\",\n elevated: \"bg-card rounded-lg p-4 shadow-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * ChartCard header variants\n */\nexport const chartCardHeaderVariants = cva(\n \"flex items-center justify-between gap-x-2\"\n)\n\n/**\n * ChartCard title variants\n */\nexport const chartCardTitleVariants = cva(\n \"font-bold text-foreground sm:text-sm\"\n)\n\n/**\n * ChartCard value container variants\n */\nexport const chartCardValueContainerVariants = cva(\n \"mt-2 flex items-baseline justify-between\"\n)\n\n/**\n * ChartCard value text variants\n */\nexport const chartCardValueVariants = cva(\n \"text-xl text-foreground\"\n)\n\n/**\n * ChartCard previous value variants\n */\nexport const chartCardPreviousValueVariants = cva(\n \"text-sm text-muted-foreground\"\n)\n\n/**\n * ChartCard chart container variants\n */\nexport const chartCardChartVariants = cva(\n \"mt-6\"\n)\n","// ChartCard/ChartCard.tsx\n\"use client\"\n\nimport type { ChartCardProps, ChartCardValueFormatter } from \"./ChartCard.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\nimport { LineChart } from \"../LineChart\"\nimport {\n chartCardChartVariants,\n chartCardHeaderVariants,\n chartCardPreviousValueVariants,\n chartCardTitleVariants,\n chartCardValueContainerVariants,\n chartCardValueVariants,\n chartCardVariants,\n} from \"./ChartCard.variants\"\n\n/**\n * Default value formatter (returns value as string)\n */\nconst defaultFormatter: ChartCardValueFormatter = (value) => String(value)\n\n/**\n * Get badge color based on evolution percentage\n */\nfunction getBadgeColor(value: number): \"destructive\" | \"muted\" | \"success\" | \"warning\" {\n if (value > 0) {\n return \"success\"\n } else if (value < 0) {\n if (value < -50) {\n return \"warning\"\n }\n return \"destructive\"\n }\n return \"muted\"\n}\n\n/**\n * Format percentage for display\n */\nfunction formatPercentage(value: number): string {\n const sign = value > 0 ? \"+\" : \"\"\n return `${sign}${(value * 100).toFixed(1)}%`\n}\n\n/**\n * ChartCard - Dashboard widget with integrated LineChart\n *\n * Displays a KPI value with trend chart and optional comparison period.\n * Matches the Tremor DashboardChartCard layout with evolution badge.\n *\n * @example\n * ```tsx\n * const data = [\n * { formattedDate: \"01/01\", value: 1000, previousValue: 900 },\n * { formattedDate: \"02/01\", value: 1200, previousValue: 1100 },\n * ]\n *\n * const config = {\n * value: { label: \"Current\", color: \"hsl(var(--chart-1))\" },\n * previousValue: { label: \"Previous\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <ChartCard\n * title=\"Revenue\"\n * data={data}\n * config={config}\n * valueFormatter={(v) => `$${v.toLocaleString()}`}\n * comparisonPeriod=\"previous-year\"\n * />\n * ```\n */\nfunction ChartCard({\n title,\n data,\n config,\n valueFormatter = defaultFormatter,\n comparisonPeriod = \"no-comparison\",\n isThumbnail = false,\n loading = false,\n badge,\n chartHeight = \"h-32\",\n showTooltip = true,\n xAxisKey = \"formattedDate\",\n emptyMessage,\n variant,\n className,\n ...props\n}: ChartCardProps) {\n const isEmpty = !loading && data.length === 0\n // Calculate totals\n const totalValue = React.useMemo(() => {\n return data.reduce((acc, item) => acc + (item.value ?? 0), 0)\n }, [data])\n\n const totalPreviousValue = React.useMemo(() => {\n return data.reduce((acc, item) => acc + (item.previousValue ?? 0), 0)\n }, [data])\n\n // Calculate evolution percentage\n const evolution = React.useMemo(() => {\n if (comparisonPeriod === \"no-comparison\" || totalPreviousValue === 0) {\n return 0\n }\n return (totalValue - totalPreviousValue) / totalPreviousValue\n }, [comparisonPeriod, totalPreviousValue, totalValue])\n\n // Determine which series to show\n const series = React.useMemo(() => {\n return comparisonPeriod === \"no-comparison\"\n ? [\"value\"]\n : [\"value\", \"previousValue\"]\n }, [comparisonPeriod])\n\n // Show comparison UI elements\n const showComparison = comparisonPeriod !== \"no-comparison\"\n\n // Empty state (DES-1254 item 3 — Figma Empty State)\n if (isEmpty) {\n return (\n <article\n aria-label={`${title}: empty`}\n className={cn(chartCardVariants({ variant }), className)}\n data-empty=\"true\"\n data-slot=\"chart-card\"\n {...props}\n >\n <div className={cn(chartCardHeaderVariants())}>\n <h3 className={cn(chartCardTitleVariants())}>{title}</h3>\n </div>\n <div\n className={cn(\n chartCardChartVariants(),\n chartHeight,\n \"flex items-center justify-center text-sm text-muted-foreground\"\n )}\n data-slot=\"chart-card-empty\"\n >\n {emptyMessage ?? \"No data available\"}\n </div>\n </article>\n )\n }\n\n // Loading state\n if (loading) {\n return (\n <article\n aria-busy=\"true\"\n className={cn(chartCardVariants({ variant }), className)}\n data-slot=\"chart-card\"\n {...props}\n >\n <div className={cn(chartCardHeaderVariants())}>\n <SkeletonLoader className=\"h-4 w-24\" />\n <SkeletonLoader className=\"h-5 w-12\" />\n </div>\n <div className={cn(chartCardValueContainerVariants())}>\n <SkeletonLoader className=\"h-7 w-32\" />\n </div>\n <div className={cn(chartCardChartVariants(), chartHeight)}>\n <SkeletonLoader className=\"h-full w-full\" />\n </div>\n </article>\n )\n }\n\n return (\n <article\n aria-label={`${title}: ${valueFormatter(totalValue)}`}\n className={cn(chartCardVariants({ variant }), className)}\n data-slot=\"chart-card\"\n {...props}\n >\n {/* Header with title and badge */}\n <div className={cn(chartCardHeaderVariants())}>\n <div className=\"flex items-center gap-x-2\">\n <h3 className={cn(chartCardTitleVariants())}>\n {title}\n </h3>\n {showComparison && (\n badge ?? (\n <Badge color={getBadgeColor(evolution)} size=\"sm\">\n {formatPercentage(evolution)}\n </Badge>\n )\n )}\n </div>\n </div>\n\n {/* Value display */}\n <div className={cn(chartCardValueContainerVariants())}>\n <p className={cn(chartCardValueVariants())}>\n {valueFormatter(totalValue)}\n </p>\n {showComparison && (\n <p className={cn(chartCardPreviousValueVariants())}>\n from {valueFormatter(totalPreviousValue)}\n </p>\n )}\n </div>\n\n {/* Chart */}\n {!isThumbnail && data.length > 0 && (\n <LineChart\n autoMinValue\n startEndOnly\n className={cn(chartCardChartVariants(), chartHeight)}\n config={config}\n data={data}\n series={series}\n showLegend={false}\n showTooltip={showTooltip}\n showYAxis={false}\n xAxisKey={xAxisKey}\n xAxisTickFormatter={(value) => String(value)}\n yAxisTickFormatter={(value) => valueFormatter(Number(value))}\n />\n )}\n </article>\n )\n}\n\nChartCard.displayName = \"ChartCard\"\n\nexport { ChartCard }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/Menu/Menu.variants.ts","../src/components/navigation/Menu/Menu.tsx"],"names":[],"mappings":"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","file":"chunk-F6ZKBK5B.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Menu root variant styles\n */\nexport const menuVariants = cva(\n [\n \"flex p-[var(--menu-root-padding)]\",\n ],\n {\n variants: {\n orientation: {\n vertical: \"flex-col\",\n horizontal: \"flex-row\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\n/**\n * MenuItem variant styles\n */\nexport const menuItemVariants = cva(\n [\n // Base styles\n \"relative flex w-full cursor-pointer select-none items-center gap-[var(--menu-item-gap)]\",\n \"rounded-[var(--menu-item-radius)] px-[var(--menu-item-padding-x)] py-[var(--menu-item-padding-y)] text-[length:var(--menu-item-text-size)] outline-none\",\n // Focus styles\n \"focus:bg-accent focus:text-accent-foreground\",\n // Hover styles\n \"hover:bg-accent hover:text-accent-foreground\",\n // Transition\n \"transition-colors\",\n // Disabled styles\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n // SVG styles\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n destructive: \"text-destructive focus:bg-destructive/10 focus:text-destructive hover:bg-destructive/10 hover:text-destructive\",\n },\n inset: {\n true: \"pl-8\",\n false: \"\",\n },\n selected: {\n true: \"bg-accent/50\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inset: false,\n selected: false,\n },\n }\n)\n\n/**\n * MenuGroup variant styles\n */\nexport const menuGroupVariants = cva([\n \"flex flex-col gap-1\",\n])\n\n/**\n * MenuLabel variant styles\n */\nexport const menuLabelVariants = cva(\n [\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground\",\n \"uppercase tracking-wider\",\n ],\n {\n variants: {\n inset: {\n true: \"pl-8\",\n false: \"\",\n },\n },\n defaultVariants: {\n inset: false,\n },\n }\n)\n\n/**\n * MenuSeparator variant styles\n */\nexport const menuSeparatorVariants = cva([\n \"-mx-1 my-1 h-px bg-border\",\n])\n\n/**\n * MenuShortcut variant styles\n */\nexport const menuShortcutVariants = cva([\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n])\n","\"use client\"\n\nimport type {\n MenuGroupProps,\n MenuItemProps,\n MenuLabelProps,\n MenuProps,\n MenuSeparatorProps,\n MenuShortcutProps,\n} from \"./Menu.types\"\nimport type { KeyboardEvent } from \"react\";\n\nimport { useCallback, useRef } from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n menuGroupVariants,\n menuItemVariants,\n menuLabelVariants,\n menuSeparatorVariants,\n menuShortcutVariants,\n menuVariants,\n} from \"./Menu.variants\"\n\n/**\n * Menu - A navigable list of options with keyboard support.\n *\n * Base component for creating custom menus with full accessibility.\n *\n * @example\n * <Menu>\n * <MenuItem onSelect={() => console.log(\"Edit\")}>Edit</MenuItem>\n * <MenuItem onSelect={() => console.log(\"Copy\")}>Copy</MenuItem>\n * <MenuSeparator />\n * <MenuItem variant=\"destructive\">Delete</MenuItem>\n * </Menu>\n */\nfunction Menu({\n className,\n orientation = \"vertical\",\n children,\n ...props\n}: MenuProps) {\n const menuRef = useRef<HTMLDivElement>(null)\n\n /* eslint-disable sonarjs/cognitive-complexity -- Keyboard navigation requires handling multiple key cases */\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n const menu = menuRef.current\n if (!menu) return\n\n const items = [...menu.querySelectorAll('[role=\"menuitem\"]:not([data-disabled])')] as HTMLElement[]\n\n if (items.length === 0) return\n\n const currentIndex = items.findIndex((item) => item === document.activeElement)\n\n let nextIndex: null | number = null\n\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n event.preventDefault()\n nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0\n }\n break\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n event.preventDefault()\n nextIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1\n }\n break\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n event.preventDefault()\n nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0\n }\n break\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n event.preventDefault()\n nextIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1\n }\n break\n case \"Home\":\n event.preventDefault()\n nextIndex = 0\n break\n case \"End\":\n event.preventDefault()\n nextIndex = items.length - 1\n break\n }\n\n if (nextIndex !== null) {\n const nextItem = items[nextIndex]\n if (nextItem) {\n nextItem.focus()\n }\n }\n },\n [orientation]\n )\n /* eslint-enable sonarjs/cognitive-complexity */\n\n return (\n <div\n ref={menuRef}\n className={cn(menuVariants({ orientation }), className)}\n data-slot=\"menu\"\n role=\"menu\"\n onKeyDown={handleKeyDown}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/**\n * MenuItem - Individual menu item with optional variants.\n */\nfunction MenuItem({\n className,\n variant = \"default\",\n inset = false,\n selected = false,\n onSelect,\n disabled = false,\n children,\n onClick,\n onKeyDown,\n ...props\n}: MenuItemProps) {\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) return\n onClick?.(event)\n onSelect?.()\n },\n [disabled, onClick, onSelect]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(event)\n if (disabled) return\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault()\n onSelect?.()\n }\n },\n [disabled, onKeyDown, onSelect]\n )\n\n return (\n <button\n aria-disabled={disabled || undefined}\n aria-selected={selected || undefined}\n className={cn(menuItemVariants({ variant, inset, selected }), className)}\n data-disabled={disabled || undefined}\n data-slot=\"menu-item\"\n role=\"menuitem\"\n tabIndex={disabled ? -1 : 0}\n type=\"button\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {children}\n </button>\n )\n}\n\n/**\n * MenuGroup - Groups related menu items together.\n */\nfunction MenuGroup({\n className,\n label,\n children,\n ...props\n}: MenuGroupProps) {\n return (\n <div\n aria-label={label}\n className={cn(menuGroupVariants(), className)}\n data-slot=\"menu-group\"\n role=\"group\"\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/**\n * MenuLabel - Label for a group of menu items.\n */\nfunction MenuLabel({\n className,\n inset = false,\n children,\n ...props\n}: MenuLabelProps) {\n return (\n <div\n className={cn(menuLabelVariants({ inset }), className)}\n data-slot=\"menu-label\"\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/**\n * MenuSeparator - Visual divider between menu items.\n */\nfunction MenuSeparator({ className, ...props }: MenuSeparatorProps) {\n return (\n <div\n className={cn(menuSeparatorVariants(), className)}\n data-slot=\"menu-separator\"\n role=\"separator\"\n {...props}\n />\n )\n}\n\n/**\n * MenuShortcut - Displays keyboard shortcut hint.\n */\nfunction MenuShortcut({ className, children, ...props }: MenuShortcutProps) {\n return (\n <span\n className={cn(menuShortcutVariants(), className)}\n data-slot=\"menu-shortcut\"\n {...props}\n >\n {children}\n </span>\n )\n}\n\nexport { Menu, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuShortcut }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/DatePicker/DatePicker.variants.ts","../src/components/forms/DatePicker/DatePicker.tsx"],"names":["format","formatDate"],"mappings":"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","file":"chunk-RVUO7SDG.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * DatePicker trigger variant styles using CVA\n */\nexport const datePickerTriggerVariants = cva(\n // Base styles\n [\n \"inline-flex w-full items-center justify-between gap-2 rounded-[var(--date-picker-trigger-radius)] border bg-transparent font-normal transition-[color,box-shadow] outline-none\",\n \"text-left\",\n \"placeholder:text-muted-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-[color:var(--date-picker-trigger-disabled-bg)] disabled:text-[color:var(--date-picker-trigger-disabled-fg)] disabled:border-[color:var(--date-picker-trigger-disabled-border)]\",\n \"focus-visible:border-[color:var(--date-picker-trigger-border-focus)] focus-visible:ring-[color:var(--date-picker-trigger-ring-primary)]/50 focus-visible:ring-[length:var(--date-picker-trigger-ring-width)]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]\",\n \"min-w-[var(--date-picker-trigger-min-width)]\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--date-picker-trigger-height-sm)] px-[var(--date-picker-trigger-padding-x-sm)] py-[var(--date-picker-trigger-padding-y-sm)] text-[length:var(--date-picker-trigger-text-sm)]\",\n md: \"h-[var(--date-picker-trigger-height-md)] px-[var(--date-picker-trigger-padding-x-md)] py-[var(--date-picker-trigger-padding-y-md)] text-[length:var(--date-picker-trigger-text-md)]\",\n lg: \"h-[var(--date-picker-trigger-height-lg)] px-[var(--date-picker-trigger-padding-x-lg)] py-[var(--date-picker-trigger-padding-y-lg)] text-[length:var(--date-picker-trigger-text-lg)]\",\n },\n variant: {\n default: \"border-input shadow-xs dark:bg-input/30\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\nexport type DatePickerTriggerVariantProps = VariantProps<typeof datePickerTriggerVariants>\n","import type { DatePickerProps } from \"./DatePicker.types\"\n\nimport { format as formatDate, isAfter, isBefore, setHours, setMinutes, startOfDay } from \"date-fns\"\nimport { CalendarIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Calendar } from \"../../advanced/Calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../../feedback/Popover\"\nimport { ScrollArea } from \"../../layout/ScrollArea\"\nimport { Button } from \"../../primitives/Button\"\nimport { datePickerTriggerVariants } from \"./DatePicker.variants\"\n\n/**\n * Convert 24h hours to 12h format with period\n */\nfunction to12Hour(hours: number): { hour12: number; period: \"AM\" | \"PM\" } {\n const period = hours >= 12 ? \"PM\" : \"AM\"\n let hour12 = hours % 12\n if (hour12 === 0) hour12 = 12\n return { hour12, period }\n}\n\n/**\n * Convert 12h format to 24h hours\n */\nfunction to24Hour(hour12: number, period: \"AM\" | \"PM\"): number {\n if (period === \"AM\") {\n return hour12 === 12 ? 0 : hour12\n }\n return hour12 === 12 ? 12 : hour12 + 12\n}\n\n/**\n * Generate array of hour options\n */\nfunction getHourOptions(use12Hour: boolean): number[] {\n if (use12Hour) {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]\n }\n return Array.from({ length: 24 }, (_, i) => i)\n}\n\n/**\n * Generate array of minute options based on step\n */\nfunction getMinuteOptions(step: number): number[] {\n const options: number[] = []\n for (let i = 0; i < 60; i += step) {\n options.push(i)\n }\n return options\n}\n\nfunction DatePicker({\n ref,\n className,\n value,\n defaultValue,\n placeholder = \"Select date\",\n disabled = false,\n disabledDates,\n readOnly = false,\n showTimePicker = false,\n showToday = false,\n timeLabel = \"Time\",\n timeMinuteStep = 1,\n timeUse12Hour = false,\n todayLabel = \"Today\",\n minDate,\n maxDate,\n format = \"PPP\",\n locale,\n onChange,\n onOpenChange,\n onClear,\n size = \"md\",\n variant = \"default\",\n required = false,\n invalid = false,\n clearable = false,\n calendarProps,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n ...props\n}: DatePickerProps) {\n const [open, setOpen] = React.useState(false)\n const [internalDate, setInternalDate] = React.useState<Date | undefined>(defaultValue)\n\n // Time state for when showTimePicker is enabled\n const [internalHours, setInternalHours] = React.useState<number>(\n defaultValue ? defaultValue.getHours() : 0\n )\n const [internalMinutes, setInternalMinutes] = React.useState<number>(\n defaultValue ? defaultValue.getMinutes() : 0\n )\n const [internalPeriod, setInternalPeriod] = React.useState<\"AM\" | \"PM\">(() =>\n defaultValue ? to12Hour(defaultValue.getHours()).period : \"AM\"\n )\n\n // Refs for auto-scrolling time columns\n const hourListRef = React.useRef<HTMLDivElement>(null)\n const minuteListRef = React.useRef<HTMLDivElement>(null)\n\n // Use controlled value if provided, otherwise use internal state\n const selectedDate = value ?? internalDate\n\n // Get time from selected date or internal state\n const currentHours = selectedDate ? selectedDate.getHours() : internalHours\n const currentMinutes = selectedDate ? selectedDate.getMinutes() : internalMinutes\n const currentPeriod = selectedDate\n ? to12Hour(selectedDate.getHours()).period\n : internalPeriod\n\n // Compute defaultMonth once for clarity\n const defaultMonth = selectedDate ?? minDate\n\n // Scroll to selected time items when popover opens\n React.useEffect(() => {\n if (!open || !showTimePicker) return\n\n const timeoutId = setTimeout(() => {\n const selectedHour = hourListRef.current?.querySelector('[data-selected=\"true\"]')\n selectedHour?.scrollIntoView({ block: \"center\", behavior: \"instant\" })\n\n const selectedMinute = minuteListRef.current?.querySelector('[data-selected=\"true\"]')\n selectedMinute?.scrollIntoView({ block: \"center\", behavior: \"instant\" })\n }, 0)\n\n return () => { clearTimeout(timeoutId) }\n }, [open, showTimePicker, currentHours, currentMinutes])\n\n const applyTimeToDate = (date: Date | undefined, hours: number, minutes: number): Date | undefined => {\n if (!date) return undefined\n return setMinutes(setHours(date, hours), minutes)\n }\n\n const handleSelect = (date: Date | undefined) => {\n let finalDate = date\n if (showTimePicker && date) {\n // Apply current time to the selected date\n finalDate = applyTimeToDate(date, currentHours, currentMinutes)\n }\n\n if (value === undefined) {\n setInternalDate(finalDate)\n }\n onChange?.(finalDate)\n\n // Only close if not showing time picker, or close after date selection\n if (!showTimePicker) {\n setOpen(false)\n }\n }\n\n const handleTimeChange = (hours: number, minutes: number) => {\n if (value === undefined) {\n setInternalHours(hours)\n setInternalMinutes(minutes)\n }\n\n if (selectedDate) {\n const newDate = applyTimeToDate(selectedDate, hours, minutes)\n if (value === undefined) {\n setInternalDate(newDate)\n }\n onChange?.(newDate)\n }\n }\n\n const handleHourSelect = (hour: number) => {\n let newHours = hour\n if (timeUse12Hour) {\n newHours = to24Hour(hour, currentPeriod)\n }\n if (value === undefined) {\n setInternalHours(newHours)\n }\n handleTimeChange(newHours, currentMinutes)\n }\n\n const handleMinuteSelect = (minute: number) => {\n if (value === undefined) {\n setInternalMinutes(minute)\n }\n handleTimeChange(currentHours, minute)\n }\n\n const handlePeriodSelect = (period: \"AM\" | \"PM\") => {\n if (value === undefined) {\n setInternalPeriod(period)\n }\n const hour12 = timeUse12Hour\n ? currentHours % 12 || 12\n : to12Hour(currentHours).hour12\n const newHours = to24Hour(hour12, period)\n if (value === undefined) {\n setInternalHours(newHours)\n }\n handleTimeChange(newHours, currentMinutes)\n }\n\n const handleOpenChange = (isOpen: boolean) => {\n // Don't open if readOnly\n if (readOnly && isOpen) return\n\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n\n const handleClear = (event: React.MouseEvent) => {\n event.stopPropagation()\n if (value === undefined) {\n setInternalDate(undefined)\n }\n onChange?.()\n onClear?.()\n }\n\n // Format display value with time if showTimePicker is enabled\n const displayValue = React.useMemo(() => {\n if (!selectedDate) return null\n\n const dateStr = formatDate(selectedDate, format, locale ? { locale } : undefined)\n\n if (showTimePicker) {\n const timeStr = timeUse12Hour\n ? `${String(to12Hour(currentHours).hour12)}:${currentMinutes.toString().padStart(2, \"0\")} ${currentPeriod}`\n : `${currentHours.toString().padStart(2, \"0\")}:${currentMinutes.toString().padStart(2, \"0\")}`\n return `${dateStr} ${timeStr}`\n }\n\n return dateStr\n }, [selectedDate, format, locale, showTimePicker, timeUse12Hour, currentHours, currentMinutes, currentPeriod])\n\n // Memoize time options\n const hourOptions = React.useMemo(() => getHourOptions(timeUse12Hour), [timeUse12Hour])\n const minuteOptions = React.useMemo(() => getMinuteOptions(timeMinuteStep), [timeMinuteStep])\n\n // Calculate display hour for matching in 12h mode\n const displayHour = timeUse12Hour\n ? to12Hour(currentHours).hour12\n : currentHours\n\n const showClearButton = clearable && selectedDate && !disabled && !readOnly\n\n // Combined date disabled check\n const isDateDisabled = React.useCallback(\n (date: Date): boolean => {\n const normalizedDate = startOfDay(date)\n if (minDate && isBefore(normalizedDate, startOfDay(minDate))) return true\n if (maxDate && isAfter(normalizedDate, startOfDay(maxDate))) return true\n if (disabledDates?.(date)) return true\n return false\n },\n [minDate, maxDate, disabledDates]\n )\n\n // Check if today is disabled\n const isTodayDisabled = React.useMemo(() => {\n return isDateDisabled(new Date())\n }, [isDateDisabled])\n\n // Handle selecting today\n const handleSelectToday = () => {\n const today = startOfDay(new Date())\n if (!isDateDisabled(today)) {\n handleSelect(today)\n }\n }\n\n return (\n <div className={cn(\"relative\", className)} data-slot=\"date-picker\" {...props}>\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <button\n ref={ref}\n className={cn(\n datePickerTriggerVariants({ size, variant }),\n !displayValue && \"text-muted-foreground\"\n )}\n aria-describedby={ariaDescribedby}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-invalid={invalid}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={readOnly}\n aria-required={required}\n data-readonly={readOnly || undefined}\n data-size={size}\n data-slot=\"date-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={variant}\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n >\n <span className=\"flex-1 truncate\">\n {displayValue ?? placeholder}\n </span>\n <span className=\"flex shrink-0 items-center gap-1\">\n {showClearButton && (\n <span\n aria-label=\"Clear date\"\n className=\"rounded-sm opacity-50 hover:opacity-100 focus:outline-none\"\n data-slot=\"date-picker-clear\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClear}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleClear(e as unknown as React.MouseEvent)\n }\n }}\n >\n <XIcon className=\"size-4\" />\n </span>\n )}\n <CalendarIcon className=\"size-4 opacity-50\" />\n </span>\n </button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-auto p-0\"\n data-slot=\"date-picker-calendar\"\n >\n <Calendar\n autoFocus\n footer={\n showToday ? (\n <div className=\"border-t border-border p-2\" data-slot=\"date-picker-footer\">\n <Button\n className=\"w-full\"\n disabled={isTodayDisabled}\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleSelectToday}\n >\n {todayLabel}\n </Button>\n </div>\n ) : undefined\n }\n defaultMonth={defaultMonth}\n disabled={isDateDisabled}\n locale={locale}\n mode=\"single\"\n selected={selectedDate}\n onSelect={handleSelect}\n {...calendarProps}\n />\n\n {/* Time Picker Section */}\n {showTimePicker && (\n <div\n className=\"border-t border-border\"\n data-slot=\"date-picker-time\"\n >\n <div className=\"px-3 py-2 text-xs font-medium text-muted-foreground\">\n {timeLabel}\n </div>\n <div\n aria-label=\"Time selection\"\n className=\"flex divide-x border-t border-border\"\n role=\"listbox\"\n >\n {/* Hours Column */}\n <div className=\"flex flex-col\">\n <div className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground text-center border-b\">\n {timeUse12Hour ? \"Hour\" : \"Hours\"}\n </div>\n <ScrollArea className=\"h-36\">\n <div\n ref={hourListRef}\n aria-label=\"Hours\"\n className=\"flex flex-col items-stretch p-1\"\n role=\"group\"\n >\n {hourOptions.map((hour) => {\n const isSelected = displayHour === hour\n return (\n <button\n key={hour}\n className={cn(\n \"flex h-8 w-12 items-center justify-center rounded-sm text-sm\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n isSelected && \"bg-primary text-primary-foreground\"\n )}\n aria-selected={isSelected}\n data-selected={isSelected}\n role=\"option\"\n type=\"button\"\n onClick={() => { handleHourSelect(hour); }}\n >\n {timeUse12Hour ? hour : hour.toString().padStart(2, \"0\")}\n </button>\n )\n })}\n </div>\n </ScrollArea>\n </div>\n\n {/* Minutes Column */}\n <div className=\"flex flex-col\">\n <div className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground text-center border-b\">\n Min\n </div>\n <ScrollArea className=\"h-36\">\n <div\n ref={minuteListRef}\n aria-label=\"Minutes\"\n className=\"flex flex-col items-stretch p-1\"\n role=\"group\"\n >\n {minuteOptions.map((minute) => {\n const isSelected = currentMinutes === minute\n return (\n <button\n key={minute}\n className={cn(\n \"flex h-8 w-12 items-center justify-center rounded-sm text-sm\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n isSelected && \"bg-primary text-primary-foreground\"\n )}\n aria-selected={isSelected}\n data-selected={isSelected}\n role=\"option\"\n type=\"button\"\n onClick={() => { handleMinuteSelect(minute); }}\n >\n {minute.toString().padStart(2, \"0\")}\n </button>\n )\n })}\n </div>\n </ScrollArea>\n </div>\n\n {/* AM/PM Column (12-hour mode only) */}\n {timeUse12Hour && (\n <div className=\"flex flex-col\">\n <div className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground text-center border-b\">\n \n </div>\n <div\n aria-label=\"Period\"\n className=\"flex flex-col items-stretch p-1\"\n role=\"group\"\n >\n {([\"AM\", \"PM\"] as const).map((period) => {\n const isSelected = currentPeriod === period\n return (\n <button\n key={period}\n className={cn(\n \"flex h-8 w-12 items-center justify-center rounded-sm text-sm\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n isSelected && \"bg-primary text-primary-foreground\"\n )}\n aria-selected={isSelected}\n data-selected={isSelected}\n role=\"option\"\n type=\"button\"\n onClick={() => { handlePeriodSelect(period); }}\n >\n {period}\n </button>\n )\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n )}\n </PopoverContent>\n </Popover>\n {name && (\n <input\n name={name}\n type=\"hidden\"\n value={selectedDate?.toISOString() ?? \"\"}\n />\n )}\n </div>\n )\n}\n\nexport { DatePicker }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/Panel/Panel.variants.ts","../src/components/layout/Panel/Panel.tsx"],"names":[],"mappings":"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","file":"chunk-XXFKDEFH.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Panel variant styles\n * Layout container for sidebars, inspectors, and section panels\n */\nexport const panelVariants = cva(\n [\"flex flex-col rounded-[var(--panel-root-radius)]\"],\n {\n variants: {\n /**\n * Visual variant of the panel\n * - default: Background with subtle border\n * - subtle: Muted background, no border\n * - outlined: Border only, no background\n * - elevated: With light shadow\n * - inset: Inner shadow effect\n */\n variant: {\n default: \"bg-[color:var(--panel-variant-default-bg)] border border-[color:var(--panel-root-border-color)]\",\n subtle: \"bg-[color:var(--panel-variant-subtle-bg)]\",\n outlined: \"border border-[color:var(--panel-root-border-color)] bg-transparent\",\n elevated: \"bg-[color:var(--panel-variant-elevated-bg)] shadow-[var(--panel-root-shadow)]\",\n inset: \"bg-[color:var(--panel-variant-subtle-bg)] shadow-inner\",\n },\n /**\n * Width of the panel\n * - xs: 240px (compact sidebar)\n * - sm: 280px (standard sidebar)\n * - md: 320px (medium panel)\n * - lg: 400px (wide panel)\n * - xl: 480px (extra wide panel)\n * - auto: Content width\n * - full: 100% width\n */\n size: {\n xs: \"w-[var(--panel-size-xs)]\",\n sm: \"w-[var(--panel-size-sm)]\",\n md: \"w-[var(--panel-size-md)]\",\n lg: \"w-[var(--panel-size-lg)]\",\n xl: \"w-[var(--panel-size-xl)]\",\n auto: \"w-auto\",\n full: \"w-full\",\n },\n /**\n * Position variant for styling based on panel placement\n * - left: Left-positioned panel (sidebar)\n * - right: Right-positioned panel (inspector)\n * - top: Top-positioned panel\n * - bottom: Bottom-positioned panel\n * - center: Centered panel\n */\n position: {\n left: \"border-r\",\n right: \"border-l\",\n top: \"border-b\",\n bottom: \"border-t\",\n center: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"auto\",\n },\n})\n\n/**\n * PanelHeader variant styles\n * Header section with padding and shrink behavior\n */\nexport const panelHeaderVariants = cva([\n \"px-[var(--panel-header-padding-x)] py-[var(--panel-header-padding-y)] shrink-0\",\n])\n\n/**\n * PanelContent variant styles\n * Main content area with flex-grow\n */\nexport const panelContentVariants = cva([\"flex-1\"], {\n variants: {\n scrollable: {\n true: \"overflow-auto\",\n false: \"\",\n },\n },\n defaultVariants: {\n scrollable: false,\n },\n})\n\n/**\n * PanelFooter variant styles\n * Footer section with padding and shrink behavior\n */\nexport const panelFooterVariants = cva([\n \"px-[var(--panel-footer-padding-x)] py-[var(--panel-footer-padding-y)] shrink-0\",\n])\n\nexport type PanelVariantProps = VariantProps<typeof panelVariants>\nexport type PanelContentVariantProps = VariantProps<typeof panelContentVariants>\n","import type {\n PanelContentProps,\n PanelFooterProps,\n PanelHeaderProps,\n PanelProps,\n} from \"./Panel.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n panelContentVariants,\n panelFooterVariants,\n panelHeaderVariants,\n panelVariants,\n} from \"./Panel.variants\"\n\nfunction Panel({\n as: Component = \"div\",\n variant,\n size,\n position,\n collapsible,\n collapsed,\n onCollapse: _onCollapse,\n className,\n ...props\n}: PanelProps) {\n return (\n <Component\n className={cn(panelVariants({ variant, size, position }), className)}\n data-collapsed={collapsed ?? undefined}\n data-collapsible={collapsible ?? undefined}\n data-slot=\"panel\"\n data-state={collapsible ? (collapsed ? \"collapsed\" : \"expanded\") : undefined}\n {...props}\n />\n )\n}\n\nfunction PanelHeader({ className, ...props }: PanelHeaderProps) {\n return (\n <div\n className={cn(panelHeaderVariants(), className)}\n data-slot=\"panel-header\"\n {...props}\n />\n )\n}\n\nfunction PanelContent({\n scrollable = false,\n className,\n ...props\n}: PanelContentProps) {\n return (\n <div\n className={cn(panelContentVariants({ scrollable }), className)}\n data-slot=\"panel-content\"\n {...props}\n />\n )\n}\n\nfunction PanelFooter({ className, ...props }: PanelFooterProps) {\n return (\n <div\n className={cn(panelFooterVariants(), className)}\n data-slot=\"panel-footer\"\n {...props}\n />\n )\n}\n\nexport { Panel, PanelContent, PanelFooter, PanelHeader }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/DateRangePicker/DateRangePicker.variants.ts","../src/components/forms/DateRangePicker/DateRangePresets.tsx","../src/components/forms/DateRangePicker/presets.ts","../src/components/forms/DateRangePicker/DateRangePicker.tsx","../src/components/forms/DateRangePicker/DateRangeInput.tsx"],"names":["format","startOfMonth","formatDate","startOfDay","jsx","React2","jsxs"],"mappings":"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","file":"chunk-ZS2WS5NJ.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * DateRangePicker trigger variant styles using CVA\n */\nexport const dateRangePickerTriggerVariants = cva(\n // Base styles\n [\n \"inline-flex w-full items-center justify-between gap-2 rounded-[var(--date-picker-trigger-radius)] border bg-transparent font-normal transition-[color,box-shadow] outline-none\",\n \"text-left\",\n \"placeholder:text-muted-foreground\",\n \"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]\",\n \"min-w-[var(--date-range-picker-trigger-width)]\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--date-picker-trigger-height-sm)] px-[var(--date-picker-trigger-padding-x-sm)] py-[var(--date-picker-trigger-padding-y-sm)] text-[length:var(--date-picker-trigger-text-sm)]\",\n md: \"h-[var(--date-picker-trigger-height-md)] px-[var(--date-picker-trigger-padding-x-md)] py-[var(--date-picker-trigger-padding-y-md)] text-[length:var(--date-picker-trigger-text-md)]\",\n lg: \"h-[var(--date-picker-trigger-height-lg)] px-[var(--date-picker-trigger-padding-x-lg)] py-[var(--date-picker-trigger-padding-y-lg)] text-[length:var(--date-picker-trigger-text-lg)]\",\n },\n variant: {\n default: \"border-input shadow-xs dark:bg-input/30\",\n outline: \"border-input bg-transparent\",\n ghost: \"border-transparent hover:bg-accent\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\nexport type DateRangePickerTriggerVariantProps = VariantProps<typeof dateRangePickerTriggerVariants>\n\n/**\n * Preset item styles - horizontal scrollable tabs on mobile, vertical list on desktop\n */\nexport const dateRangePresetVariants = cva(\n [\n // Base - works for both orientations\n \"text-sm rounded-md transition-colors whitespace-nowrap\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n \"data-[selected=true]:bg-primary/10 data-[selected=true]:text-primary data-[selected=true]:font-medium\",\n // Mobile: pill-like compact tabs\n \"px-3 py-1.5 flex-shrink-0\",\n // Desktop (sm+): full-width list items\n \"sm:w-full sm:text-left sm:py-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport type DateRangePresetVariantProps = VariantProps<typeof dateRangePresetVariants>\n\n/**\n * Presets container styles - horizontal scrollable on mobile, vertical sidebar on desktop\n */\nexport const dateRangePresetsContainerVariants = cva(\n [\n // Mobile: horizontal scrollable tabs\n \"flex flex-row gap-1 p-2 overflow-x-auto\",\n \"border-b border-border\",\n \"-webkit-overflow-scrolling-touch scrollbar-hide\",\n // Desktop (sm+): vertical sidebar\n \"sm:flex-col sm:overflow-x-visible sm:border-b-0 sm:border-r\",\n \"sm:min-w-[var(--date-picker-preset-min-width)]\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * Footer container styles (for Apply/Cancel buttons)\n */\nexport const dateRangePickerFooterVariants = cva(\n [\n \"flex items-center justify-end gap-2 border-t border-border\",\n \"p-[var(--date-picker-footer-padding)]\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * Range input container styles\n */\nexport const dateRangeInputContainerVariants = cva(\n [\n \"flex items-center gap-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * Range input field styles\n */\nexport const dateRangeInputFieldVariants = cva(\n [\n \"flex-1 min-w-0 rounded-md border border-input bg-transparent px-2 py-1 text-sm\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {\n size: {\n sm: \"h-7 text-xs\",\n md: \"h-8 text-sm\",\n lg: \"h-9 text-base\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type DateRangeInputFieldVariantProps = VariantProps<typeof dateRangeInputFieldVariants>\n","import type { DateRangePresetsProps } from \"./DateRangePicker.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n dateRangePresetsContainerVariants,\n dateRangePresetVariants,\n} from \"./DateRangePicker.variants\"\n\n/**\n * DateRangePresets component displays a list of quick-select preset date ranges\n */\nfunction DateRangePresets({\n presets,\n selectedPreset,\n onSelect,\n}: DateRangePresetsProps) {\n return (\n <div\n aria-label=\"Date range presets\"\n className={cn(dateRangePresetsContainerVariants())}\n data-slot=\"date-range-presets\"\n role=\"listbox\"\n >\n {presets.map((preset) => {\n const isSelected = selectedPreset === preset.label\n return (\n <button\n key={preset.label}\n aria-selected={isSelected}\n className={cn(dateRangePresetVariants())}\n data-selected={isSelected || undefined}\n role=\"option\"\n type=\"button\"\n onClick={() => { onSelect(preset.getValue(), preset.label); }}\n >\n {preset.label}\n </button>\n )\n })}\n </div>\n )\n}\n\nexport { DateRangePresets }\n","import type { DateRangePreset } from \"./DateRangePicker.types\"\n\nimport {\n endOfDay,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfDay,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subDays,\n subMonths,\n subYears,\n} from \"date-fns\"\n\n/**\n * Default preset options for quick date range selection\n */\nexport const defaultPresets: DateRangePreset[] = [\n {\n label: \"Today\",\n getValue: () => {\n const today = startOfDay(new Date())\n return { from: today, to: endOfDay(today) }\n },\n },\n {\n label: \"Yesterday\",\n getValue: () => {\n const yesterday = subDays(new Date(), 1)\n return { from: startOfDay(yesterday), to: endOfDay(yesterday) }\n },\n },\n {\n label: \"This week\",\n getValue: () => ({\n from: startOfWeek(new Date(), { weekStartsOn: 0 }),\n to: endOfWeek(new Date(), { weekStartsOn: 0 }),\n }),\n },\n {\n label: \"Last 7 days\",\n getValue: () => ({\n from: startOfDay(subDays(new Date(), 6)),\n to: endOfDay(new Date()),\n }),\n },\n {\n label: \"Last 14 days\",\n getValue: () => ({\n from: startOfDay(subDays(new Date(), 13)),\n to: endOfDay(new Date()),\n }),\n },\n {\n label: \"Last 30 days\",\n getValue: () => ({\n from: startOfDay(subDays(new Date(), 29)),\n to: endOfDay(new Date()),\n }),\n },\n {\n label: \"This month\",\n getValue: () => ({\n from: startOfMonth(new Date()),\n to: endOfMonth(new Date()),\n }),\n },\n {\n label: \"Last month\",\n getValue: () => {\n const lastMonth = subMonths(new Date(), 1)\n return {\n from: startOfMonth(lastMonth),\n to: endOfMonth(lastMonth),\n }\n },\n },\n {\n label: \"This year\",\n getValue: () => ({\n from: startOfYear(new Date()),\n to: endOfYear(new Date()),\n }),\n },\n {\n label: \"Last year\",\n getValue: () => {\n const lastYear = subYears(new Date(), 1)\n return {\n from: startOfYear(lastYear),\n to: endOfYear(lastYear),\n }\n },\n },\n {\n label: \"All time\",\n getValue: () => ({\n from: undefined,\n to: undefined,\n }),\n },\n]\n","import type { DateRange } from \"../../advanced/Calendar\"\nimport type { DateRangePickerProps } from \"./DateRangePicker.types\"\n\nimport { format as formatDate, isAfter, isBefore, startOfDay, startOfMonth } from \"date-fns\"\nimport { CalendarIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Calendar } from \"../../advanced/Calendar\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"../../feedback/Dialog\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"../../feedback/Popover\"\nimport { Button } from \"../../primitives/Button\"\nimport {\n dateRangePickerFooterVariants,\n dateRangePickerTriggerVariants,\n} from \"./DateRangePicker.variants\"\nimport { DateRangePresets } from \"./DateRangePresets\"\nimport { defaultPresets } from \"./presets\"\n\n/**\n * DateRangePicker component for selecting a date range with optional presets\n */\nfunction DateRangePicker({\n ref,\n className,\n value,\n defaultValue,\n placeholder = \"Select date range\",\n disabled = false,\n disabledDates,\n readOnly = false,\n minDate,\n maxDate,\n format = \"PP\",\n locale,\n onChange,\n onOpenChange,\n onClear,\n size = \"md\",\n variant = \"default\",\n displayMode = \"popover\",\n modalTitle = \"Select Date Range\",\n required = false,\n invalid = false,\n clearable = false,\n numberOfMonths = 2,\n presets = defaultPresets,\n showPresets = true,\n requireConfirmation = false,\n showTodayButton = true,\n activeDates,\n calendarProps,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n \"aria-describedby\": ariaDescribedby,\n ...props\n}: DateRangePickerProps) {\n const [open, setOpen] = React.useState(false)\n const [internalRange, setInternalRange] = React.useState<DateRange | undefined>(defaultValue)\n const [pendingRange, setPendingRange] = React.useState<DateRange | undefined>()\n const [selectedPreset, setSelectedPreset] = React.useState<string>()\n const [month, setMonth] = React.useState<Date | undefined>()\n\n // Use controlled value if provided, otherwise use internal state\n const selectedRange = value ?? internalRange\n\n // For confirmation mode, show pending changes until applied\n const displayRange = requireConfirmation && open ? (pendingRange ?? selectedRange) : selectedRange\n\n // Initialize pending range when opening in confirmation mode\n /* eslint-disable @eslint-react/hooks-extra/no-direct-set-state-in-use-effect, react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-event-handler */\n React.useEffect(() => {\n if (open && requireConfirmation) {\n setPendingRange(selectedRange)\n }\n }, [open, requireConfirmation, selectedRange])\n /* eslint-enable @eslint-react/hooks-extra/no-direct-set-state-in-use-effect, react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-event-handler */\n\n const handleRangeSelect = (range: DateRange | undefined) => {\n // Clear preset selection when manually selecting\n setSelectedPreset(undefined)\n\n if (requireConfirmation) {\n setPendingRange(range)\n } else {\n if (value === undefined) {\n setInternalRange(range)\n }\n onChange?.(range)\n }\n }\n\n const handlePresetSelect = (range: DateRange, label: string) => {\n setSelectedPreset(label)\n\n if (requireConfirmation) {\n setPendingRange(range)\n } else {\n if (value === undefined) {\n setInternalRange(range)\n }\n onChange?.(range)\n setOpen(false)\n }\n }\n\n const handleApply = () => {\n if (pendingRange) {\n if (value === undefined) {\n setInternalRange(pendingRange)\n }\n onChange?.(pendingRange)\n }\n setPendingRange(undefined)\n setOpen(false)\n }\n\n const handleCancel = () => {\n setPendingRange(undefined)\n setSelectedPreset(undefined)\n setOpen(false)\n }\n\n const handleOpenChange = (isOpen: boolean) => {\n // Don't open if readOnly\n if (readOnly && isOpen) return\n\n if (!isOpen && requireConfirmation) {\n // Cancel pending changes when closing without applying\n setPendingRange(undefined)\n setSelectedPreset(undefined)\n }\n\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n\n const handleClear = (event: React.MouseEvent) => {\n event.stopPropagation()\n if (value === undefined) {\n setInternalRange(undefined)\n }\n onChange?.()\n setSelectedPreset(undefined)\n onClear?.()\n }\n\n const handleTodayClick = () => {\n setMonth(startOfMonth(new Date()))\n }\n\n // Format display value\n const formatRange = (range: DateRange | undefined): null | string => {\n if (!range?.from) return null\n\n const formatOptions = locale ? { locale } : undefined\n const formattedFrom = formatDate(range.from, format, formatOptions)\n\n if (!range.to) {\n return formattedFrom\n }\n\n const formattedTo = formatDate(range.to, format, formatOptions)\n return `${formattedFrom} - ${formattedTo}`\n }\n\n const displayValue = formatRange(selectedRange)\n const showClearButton = clearable && selectedRange?.from && !disabled && !readOnly\n\n // Combined date disabled check\n const isDateDisabled = React.useCallback(\n (date: Date): boolean => {\n const normalizedDate = startOfDay(date)\n if (minDate && isBefore(normalizedDate, startOfDay(minDate))) return true\n if (maxDate && isAfter(normalizedDate, startOfDay(maxDate))) return true\n if (disabledDates?.(date)) return true\n return false\n },\n [minDate, maxDate, disabledDates]\n )\n\n // Compute displayed month for calendar (controlled or derived from selection)\n const calendarMonth = month ?? displayRange?.from ?? minDate\n\n // Shared calendar content for both popover and modal modes\n const calendarContent = (\n <div className=\"flex flex-col sm:flex-row\">\n {showPresets && presets.length > 0 && (\n <DateRangePresets\n presets={presets}\n selectedPreset={selectedPreset}\n onSelect={handlePresetSelect}\n />\n )}\n <div className=\"flex flex-col\">\n {showTodayButton && (\n <div className=\"flex justify-end border-b px-3 py-2\" data-slot=\"date-range-picker-header\">\n <Button\n className=\"h-[var(--date-range-picker-today-button-height)] text-[length:var(--date-range-picker-today-button-text-size)]\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={handleTodayClick}\n >\n Today\n </Button>\n </div>\n )}\n <Calendar\n autoFocus\n activeDates={activeDates}\n className=\"gap-[var(--date-range-picker-calendar-gap)]\"\n disabled={isDateDisabled}\n locale={locale}\n mode=\"range\"\n month={calendarMonth}\n numberOfMonths={numberOfMonths}\n selected={displayRange}\n onMonthChange={setMonth}\n onSelect={handleRangeSelect as (range: DateRange | undefined) => void}\n {...calendarProps}\n />\n {requireConfirmation && (\n <div className={cn(dateRangePickerFooterVariants())} data-slot=\"date-range-picker-footer\">\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={handleCancel}\n >\n Cancel\n </Button>\n <Button\n disabled={!pendingRange?.from}\n size=\"sm\"\n onClick={handleApply}\n >\n Apply\n </Button>\n </div>\n )}\n </div>\n </div>\n )\n\n // Trigger button shared between modes\n const triggerButton = (\n <button\n ref={ref}\n className={cn(\n dateRangePickerTriggerVariants({ size, variant }),\n !displayValue && \"text-muted-foreground\"\n )}\n aria-describedby={ariaDescribedby}\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n aria-invalid={invalid}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-readonly={readOnly}\n aria-required={required}\n data-readonly={readOnly || undefined}\n data-size={size}\n data-slot=\"date-range-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n data-variant={variant}\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n onClick={displayMode === \"modal\" ? () => { handleOpenChange(true); } : undefined}\n >\n <span className=\"flex-1 truncate\">\n {displayValue ?? placeholder}\n </span>\n <span className=\"flex shrink-0 items-center gap-1\">\n {showClearButton && (\n <span\n aria-label=\"Clear date range\"\n className=\"rounded-sm opacity-50 hover:opacity-100 focus:outline-none\"\n data-slot=\"date-range-picker-clear\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClear}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n handleClear(e as unknown as React.MouseEvent)\n }\n }}\n >\n <XIcon className=\"size-4\" />\n </span>\n )}\n <CalendarIcon className=\"size-4 opacity-50\" />\n </span>\n </button>\n )\n\n // Hidden inputs for form submission\n const hiddenInputs = (\n <>\n {name && (\n <input\n name={`${name}-from`}\n type=\"hidden\"\n value={selectedRange?.from?.toISOString() ?? \"\"}\n />\n )}\n {name && (\n <input\n name={`${name}-to`}\n type=\"hidden\"\n value={selectedRange?.to?.toISOString() ?? \"\"}\n />\n )}\n </>\n )\n\n // Modal mode\n if (displayMode === \"modal\") {\n return (\n <div className={cn(\"relative\", className)} data-mode=\"modal\" data-slot=\"date-range-picker\" {...props}>\n {triggerButton}\n <Dialog open={open} onOpenChange={handleOpenChange}>\n <DialogContent\n className=\"max-w-fit p-0\"\n data-slot=\"date-range-picker-content\"\n >\n <DialogHeader className=\"border-b px-4 py-3\">\n <DialogTitle>{modalTitle}</DialogTitle>\n <DialogDescription className=\"sr-only\">\n Use the calendar to select a start and end date for your range\n </DialogDescription>\n </DialogHeader>\n <div className=\"p-0\">\n {calendarContent}\n </div>\n </DialogContent>\n </Dialog>\n {hiddenInputs}\n </div>\n )\n }\n\n // Popover mode (default)\n return (\n <div className={cn(\"relative\", className)} data-mode=\"popover\" data-slot=\"date-range-picker\" {...props}>\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n {triggerButton}\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-auto p-0\"\n data-slot=\"date-range-picker-content\"\n >\n {calendarContent}\n </PopoverContent>\n </Popover>\n {hiddenInputs}\n </div>\n )\n}\n\nexport { DateRangePicker }\n","import type { DateRangeInputProps } from \"./DateRangePicker.types\"\n\nimport { format as formatDate, isValid, parse } from \"date-fns\"\nimport { ArrowRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n dateRangeInputContainerVariants,\n dateRangeInputFieldVariants,\n} from \"./DateRangePicker.variants\"\n\n/**\n * DateRangeInput component provides editable text inputs for date range entry\n */\nfunction DateRangeInput({\n value,\n format,\n locale,\n onChange,\n disabled = false,\n readOnly = false,\n startPlaceholder = \"Start date\",\n endPlaceholder = \"End date\",\n}: DateRangeInputProps) {\n const [startInput, setStartInput] = React.useState(\"\")\n const [endInput, setEndInput] = React.useState(\"\")\n\n // Sync input values with prop value\n /* eslint-disable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect -- Intentional: controlled input sync requires useEffect to maintain input state separate from date state for partial input handling */\n React.useEffect(() => {\n if (value?.from) {\n setStartInput(formatDate(value.from, format, locale ? { locale } : undefined))\n } else {\n setStartInput(\"\")\n }\n if (value?.to) {\n setEndInput(formatDate(value.to, format, locale ? { locale } : undefined))\n } else {\n setEndInput(\"\")\n }\n }, [value, format, locale])\n /* eslint-enable react-you-might-not-need-an-effect/no-derived-state, react-you-might-not-need-an-effect/no-adjust-state-on-prop-change, @eslint-react/hooks-extra/no-direct-set-state-in-use-effect */\n\n const parseDate = (input: string): Date | undefined => {\n if (!input.trim()) return undefined\n try {\n const parsed = parse(input, format, new Date(), locale ? { locale } : undefined)\n return isValid(parsed) ? parsed : undefined\n } catch {\n return undefined\n }\n }\n\n const handleStartBlur = () => {\n const parsedStart = parseDate(startInput)\n const currentEnd = value?.to\n\n if (parsedStart || !startInput.trim()) {\n onChange({\n from: parsedStart,\n to: currentEnd,\n })\n } else {\n // Reset to previous value if invalid\n if (value?.from) {\n setStartInput(formatDate(value.from, format, locale ? { locale } : undefined))\n } else {\n setStartInput(\"\")\n }\n }\n }\n\n const handleEndBlur = () => {\n const parsedEnd = parseDate(endInput)\n const currentStart = value?.from\n\n if (parsedEnd || !endInput.trim()) {\n onChange({\n from: currentStart,\n to: parsedEnd,\n })\n } else {\n // Reset to previous value if invalid\n if (value?.to) {\n setEndInput(formatDate(value.to, format, locale ? { locale } : undefined))\n } else {\n setEndInput(\"\")\n }\n }\n }\n\n const handleStartKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n handleStartBlur()\n }\n }\n\n const handleEndKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n handleEndBlur()\n }\n }\n\n return (\n <div\n className={cn(dateRangeInputContainerVariants())}\n data-slot=\"date-range-input\"\n >\n <input\n aria-label=\"Start date\"\n className={cn(dateRangeInputFieldVariants())}\n data-slot=\"date-range-input-start\"\n disabled={disabled}\n placeholder={startPlaceholder}\n readOnly={readOnly}\n type=\"text\"\n value={startInput}\n onBlur={handleStartBlur}\n onChange={(e) => { setStartInput(e.target.value); }}\n onKeyDown={handleStartKeyDown}\n />\n <ArrowRightIcon aria-hidden=\"true\" className=\"size-4 text-muted-foreground shrink-0\" />\n <input\n aria-label=\"End date\"\n className={cn(dateRangeInputFieldVariants())}\n data-slot=\"date-range-input-end\"\n disabled={disabled}\n placeholder={endPlaceholder}\n readOnly={readOnly}\n type=\"text\"\n value={endInput}\n onBlur={handleEndBlur}\n onChange={(e) => { setEndInput(e.target.value); }}\n onKeyDown={handleEndKeyDown}\n />\n </div>\n )\n}\n\nexport { DateRangeInput }\n"]}
|