@mdigital_ui/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +296 -0
- package/dist/accordion/index.js +5 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/badge/index.js +5 -0
- package/dist/badge/index.js.map +1 -0
- package/dist/button/index.js +6 -0
- package/dist/button/index.js.map +1 -0
- package/dist/card/index.js +4 -0
- package/dist/card/index.js.map +1 -0
- package/dist/carousel/index.js +3 -0
- package/dist/carousel/index.js.map +1 -0
- package/dist/cascader/index.js +4 -0
- package/dist/cascader/index.js.map +1 -0
- package/dist/chart/index.js +4 -0
- package/dist/chart/index.js.map +1 -0
- package/dist/checkbox/index.js +5 -0
- package/dist/checkbox/index.js.map +1 -0
- package/dist/checkbox-group/index.js +4 -0
- package/dist/checkbox-group/index.js.map +1 -0
- package/dist/chunk-2JGAYDZR.js +181 -0
- package/dist/chunk-2JGAYDZR.js.map +1 -0
- package/dist/chunk-3PFA3YG6.js +228 -0
- package/dist/chunk-3PFA3YG6.js.map +1 -0
- package/dist/chunk-4OMLQCUV.js +96 -0
- package/dist/chunk-4OMLQCUV.js.map +1 -0
- package/dist/chunk-4P5EMRFI.js +298 -0
- package/dist/chunk-4P5EMRFI.js.map +1 -0
- package/dist/chunk-5UEWVFF6.js +212 -0
- package/dist/chunk-5UEWVFF6.js.map +1 -0
- package/dist/chunk-5VCGW53O.js +332 -0
- package/dist/chunk-5VCGW53O.js.map +1 -0
- package/dist/chunk-75XESYGN.js +49 -0
- package/dist/chunk-75XESYGN.js.map +1 -0
- package/dist/chunk-7AEGBABZ.js +1102 -0
- package/dist/chunk-7AEGBABZ.js.map +1 -0
- package/dist/chunk-AOITJRSV.js +134 -0
- package/dist/chunk-AOITJRSV.js.map +1 -0
- package/dist/chunk-AWPKZYHT.js +152 -0
- package/dist/chunk-AWPKZYHT.js.map +1 -0
- package/dist/chunk-BNILRB4T.js +37 -0
- package/dist/chunk-BNILRB4T.js.map +1 -0
- package/dist/chunk-BP434VYV.js +448 -0
- package/dist/chunk-BP434VYV.js.map +1 -0
- package/dist/chunk-C7SXY3ZV.js +65 -0
- package/dist/chunk-C7SXY3ZV.js.map +1 -0
- package/dist/chunk-CLLQDCDR.js +560 -0
- package/dist/chunk-CLLQDCDR.js.map +1 -0
- package/dist/chunk-CWHFK7ZC.js +128 -0
- package/dist/chunk-CWHFK7ZC.js.map +1 -0
- package/dist/chunk-D3JWPGCA.js +123 -0
- package/dist/chunk-D3JWPGCA.js.map +1 -0
- package/dist/chunk-DOKTHDG3.js +55 -0
- package/dist/chunk-DOKTHDG3.js.map +1 -0
- package/dist/chunk-DPOSWW22.js +126 -0
- package/dist/chunk-DPOSWW22.js.map +1 -0
- package/dist/chunk-E2CYDDYC.js +39 -0
- package/dist/chunk-E2CYDDYC.js.map +1 -0
- package/dist/chunk-EYTOKUBM.js +401 -0
- package/dist/chunk-EYTOKUBM.js.map +1 -0
- package/dist/chunk-FGWSUPVW.js +356 -0
- package/dist/chunk-FGWSUPVW.js.map +1 -0
- package/dist/chunk-FPOXTCYV.js +166 -0
- package/dist/chunk-FPOXTCYV.js.map +1 -0
- package/dist/chunk-FTJOSVTY.js +104 -0
- package/dist/chunk-FTJOSVTY.js.map +1 -0
- package/dist/chunk-FYHQDFKE.js +164 -0
- package/dist/chunk-FYHQDFKE.js.map +1 -0
- package/dist/chunk-H2HIBD5Y.js +158 -0
- package/dist/chunk-H2HIBD5Y.js.map +1 -0
- package/dist/chunk-J3G5WWGR.js +53 -0
- package/dist/chunk-J3G5WWGR.js.map +1 -0
- package/dist/chunk-JZCHZ4B3.js +487 -0
- package/dist/chunk-JZCHZ4B3.js.map +1 -0
- package/dist/chunk-KBCBVH7B.js +51 -0
- package/dist/chunk-KBCBVH7B.js.map +1 -0
- package/dist/chunk-KNQ7UQ2W.js +143 -0
- package/dist/chunk-KNQ7UQ2W.js.map +1 -0
- package/dist/chunk-KTBPIEP2.js +102 -0
- package/dist/chunk-KTBPIEP2.js.map +1 -0
- package/dist/chunk-L3SP7GHC.js +1023 -0
- package/dist/chunk-L3SP7GHC.js.map +1 -0
- package/dist/chunk-LBJG2UWT.js +100 -0
- package/dist/chunk-LBJG2UWT.js.map +1 -0
- package/dist/chunk-MLDX3Z67.js +470 -0
- package/dist/chunk-MLDX3Z67.js.map +1 -0
- package/dist/chunk-NNSS366W.js +331 -0
- package/dist/chunk-NNSS366W.js.map +1 -0
- package/dist/chunk-OQANRZPV.js +197 -0
- package/dist/chunk-OQANRZPV.js.map +1 -0
- package/dist/chunk-OW5A5IIF.js +175 -0
- package/dist/chunk-OW5A5IIF.js.map +1 -0
- package/dist/chunk-R225A5II.js +187 -0
- package/dist/chunk-R225A5II.js.map +1 -0
- package/dist/chunk-ROR4E6IE.js +119 -0
- package/dist/chunk-ROR4E6IE.js.map +1 -0
- package/dist/chunk-RPAQAZTI.js +54 -0
- package/dist/chunk-RPAQAZTI.js.map +1 -0
- package/dist/chunk-RQBXZKTH.js +452 -0
- package/dist/chunk-RQBXZKTH.js.map +1 -0
- package/dist/chunk-S5XJXU52.js +178 -0
- package/dist/chunk-S5XJXU52.js.map +1 -0
- package/dist/chunk-SAVE5ACL.js +324 -0
- package/dist/chunk-SAVE5ACL.js.map +1 -0
- package/dist/chunk-SERJ3TZE.js +640 -0
- package/dist/chunk-SERJ3TZE.js.map +1 -0
- package/dist/chunk-SK5ECBBK.js +175 -0
- package/dist/chunk-SK5ECBBK.js.map +1 -0
- package/dist/chunk-SOV4PE3P.js +218 -0
- package/dist/chunk-SOV4PE3P.js.map +1 -0
- package/dist/chunk-W7BQYIXF.js +687 -0
- package/dist/chunk-W7BQYIXF.js.map +1 -0
- package/dist/chunk-XMAH5PDW.js +59 -0
- package/dist/chunk-XMAH5PDW.js.map +1 -0
- package/dist/chunk-XOBGEMQY.js +94 -0
- package/dist/chunk-XOBGEMQY.js.map +1 -0
- package/dist/chunk-YNNAOXU5.js +57 -0
- package/dist/chunk-YNNAOXU5.js.map +1 -0
- package/dist/chunk-YZVSDRJD.js +253 -0
- package/dist/chunk-YZVSDRJD.js.map +1 -0
- package/dist/collapse/index.js +4 -0
- package/dist/collapse/index.js.map +1 -0
- package/dist/command/index.js +5 -0
- package/dist/command/index.js.map +1 -0
- package/dist/date-picker/index.js +5 -0
- package/dist/date-picker/index.js.map +1 -0
- package/dist/descriptions/index.js +4 -0
- package/dist/descriptions/index.js.map +1 -0
- package/dist/drawer/index.js +4 -0
- package/dist/drawer/index.js.map +1 -0
- package/dist/dropdown/index.js +5 -0
- package/dist/dropdown/index.js.map +1 -0
- package/dist/empty/index.js +4 -0
- package/dist/empty/index.js.map +1 -0
- package/dist/fetching-overlay/index.js +5 -0
- package/dist/fetching-overlay/index.js.map +1 -0
- package/dist/image/index.js +4 -0
- package/dist/image/index.js.map +1 -0
- package/dist/index.d.ts +2672 -0
- package/dist/index.js +976 -0
- package/dist/index.js.map +1 -0
- package/dist/input/index.js +5 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input-group/index.js +4 -0
- package/dist/input-group/index.js.map +1 -0
- package/dist/input-otp/index.js +4 -0
- package/dist/input-otp/index.js.map +1 -0
- package/dist/input-password/index.js +6 -0
- package/dist/input-password/index.js.map +1 -0
- package/dist/kbd/index.js +4 -0
- package/dist/kbd/index.js.map +1 -0
- package/dist/modal/index.js +4 -0
- package/dist/modal/index.js.map +1 -0
- package/dist/multi-select/index.js +5 -0
- package/dist/multi-select/index.js.map +1 -0
- package/dist/notification/index.js +4 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/pagination/index.js +4 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/popover/index.js +4 -0
- package/dist/popover/index.js.map +1 -0
- package/dist/progress/index.js +4 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/radio/index.js +4 -0
- package/dist/radio/index.js.map +1 -0
- package/dist/radio-group/index.js +4 -0
- package/dist/radio-group/index.js.map +1 -0
- package/dist/rating/index.js +4 -0
- package/dist/rating/index.js.map +1 -0
- package/dist/ribbon/index.js +4 -0
- package/dist/ribbon/index.js.map +1 -0
- package/dist/select/index.js +6 -0
- package/dist/select/index.js.map +1 -0
- package/dist/skeleton/index.js +4 -0
- package/dist/skeleton/index.js.map +1 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/index.js.map +1 -0
- package/dist/spinner/index.js +4 -0
- package/dist/spinner/index.js.map +1 -0
- package/dist/stepper/index.js +4 -0
- package/dist/stepper/index.js.map +1 -0
- package/dist/styles/base.css +161 -0
- package/dist/styles/global.css +633 -0
- package/dist/styles/themes/dark.css +84 -0
- package/dist/styles/themes/light.css +84 -0
- package/dist/switch/index.js +4 -0
- package/dist/switch/index.js.map +1 -0
- package/dist/table/index.js +12 -0
- package/dist/table/index.js.map +1 -0
- package/dist/tabs/index.js +5 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/textarea/index.js +4 -0
- package/dist/textarea/index.js.map +1 -0
- package/dist/toggle/index.js +4 -0
- package/dist/toggle/index.js.map +1 -0
- package/dist/toggle-group/index.js +4 -0
- package/dist/toggle-group/index.js.map +1 -0
- package/dist/tooltip/index.js +4 -0
- package/dist/tooltip/index.js.map +1 -0
- package/dist/transfer/index.js +6 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/tree/index.js +4 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree-select/index.js +6 -0
- package/dist/tree-select/index.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cascader/index.tsx"],"names":["selectedPath"],"mappings":"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","file":"chunk-SERJ3TZE.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { Check, ChevronDown, ChevronRight, Loader2, X } from 'lucide-react'\nimport React from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport type { CascaderOption, CascaderProps } from './types'\n\nconst cascaderTriggerVariants = cva(\n 'flex items-center justify-between gap-2 rounded-md border transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none',\n {\n variants: {\n variant: {\n default: 'bg-background border-border hover:border-primary',\n primary: 'bg-background border-primary',\n secondary: 'bg-background border-secondary',\n accent: 'bg-background border-accent',\n success: 'bg-background border-success',\n error: 'bg-background border-error',\n warning: 'bg-background border-warning',\n info: 'bg-background border-info',\n },\n size: {\n xs: 'h-8 px-1.5 text-xs',\n sm: 'h-[var(--input-height-sm)] px-2.5 text-sm',\n md: 'h-[var(--input-height-md)] px-3 text-base',\n lg: 'h-[var(--input-height-lg)] px-3 text-lg',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\nconst cascaderMenuVariants = cva(\n 'overflow-auto rounded-md border bg-background w-[200px] max-h-[300px]',\n {\n variants: {\n color: {\n default: 'border-border',\n primary: 'border-primary',\n secondary: 'border-secondary',\n accent: 'border-accent',\n success: 'border-success',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n },\n },\n defaultVariants: {\n color: 'default',\n },\n },\n)\n\nconst cascaderItemVariants = cva(\n 'relative cursor-pointer select-none text-text-primary transition-colors flex items-center gap-2 w-full',\n {\n variants: {\n size: {\n xs: 'px-2 py-1 text-xs min-h-[28px]',\n sm: 'px-3 py-1.5 text-sm min-h-[32px]',\n md: 'px-4 py-2 text-base min-h-[40px]',\n lg: 'px-5 py-2.5 text-lg min-h-[48px]',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'hover:bg-surface',\n },\n active: {\n true: 'bg-surface',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n active: false,\n },\n },\n)\n\nconst Cascader = React.memo<CascaderProps>(\n ({\n options,\n value,\n defaultValue,\n onChange,\n placeholder = 'Please select',\n label,\n helperText,\n messagePosition = 'bottom',\n color = 'default',\n size = 'md',\n position = 'left',\n disabled = false,\n loading = false,\n error,\n warning,\n info,\n success,\n fullWidth = true,\n hover = true,\n multiple = false,\n maxChipsVisible = 3,\n displayRender,\n className,\n required,\n }) => {\n const [isOpen, setIsOpen] = React.useState(false)\n const [internalValue, setInternalValue] = React.useState<\n string[] | string[][]\n >(defaultValue || (multiple ? [] : []))\n const [activeMenus, setActiveMenus] = React.useState<CascaderOption[][]>([\n options,\n ])\n const [hoveredPath, setHoveredPath] = React.useState<number[]>([])\n const [selectedPath, setSelectedPath] = React.useState<string[]>([])\n const [visibleChipsCount, setVisibleChipsCount] =\n React.useState(maxChipsVisible)\n\n const containerRef = React.useRef<HTMLDivElement>(null)\n const triggerRef = React.useRef<HTMLDivElement>(null)\n\n const currentValue = value !== undefined ? value : internalValue\n\n const normalizedValue: string[][] = React.useMemo(() => {\n if (multiple) {\n return Array.isArray(currentValue[0])\n ? (currentValue as string[][])\n : []\n }\n return Array.isArray(currentValue) &&\n currentValue.length > 0 &&\n !Array.isArray(currentValue[0])\n ? [currentValue as string[]]\n : []\n }, [currentValue, multiple])\n\n let variant:\n | 'default'\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'success'\n | 'error'\n | 'warning'\n | 'info' = color\n\n if (error) {\n variant = 'error'\n } else if (warning) {\n variant = 'warning'\n } else if (success) {\n variant = 'success'\n } else if (info) {\n variant = 'info'\n }\n\n const handleToggle = React.useCallback(() => {\n if (!disabled && !loading) {\n setIsOpen((prev) => {\n if (!prev && normalizedValue.length > 0 && !multiple) {\n // When opening, set selectedPath to the current value for single mode\n setSelectedPath(normalizedValue[0] || [])\n } else if (!prev) {\n setSelectedPath([])\n }\n return !prev\n })\n }\n }, [disabled, loading, normalizedValue, multiple])\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false)\n setActiveMenus([options])\n setHoveredPath([])\n }, [options])\n\n const getSelectedOptions = React.useCallback(\n (path: string[]): CascaderOption[] => {\n const selected: CascaderOption[] = []\n let currentOptions = options\n\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val)\n if (option) {\n selected.push(option)\n currentOptions = option.children || []\n }\n }\n\n return selected\n },\n [options],\n )\n\n const isPathSelected = React.useCallback(\n (path: string[]): boolean => {\n return normalizedValue.some(\n (selectedPath) =>\n selectedPath.length === path.length &&\n selectedPath.every((val, idx) => val === path[idx]),\n )\n },\n [normalizedValue],\n )\n\n const getAllLeafPaths = React.useCallback(\n (option: CascaderOption, currentPath: string[]): string[][] => {\n const paths: string[][] = []\n const fullPath = [...currentPath, option.value]\n\n if (!option.children || option.children.length === 0) {\n // This is a leaf node\n paths.push(fullPath)\n } else {\n // This is a parent node, get all leaf paths from children\n option.children.forEach((child) => {\n paths.push(...getAllLeafPaths(child, fullPath))\n })\n }\n\n return paths\n },\n [],\n )\n\n const getNodeSelectionState = React.useCallback(\n (\n option: CascaderOption,\n currentPath: string[],\n ): {\n checked: boolean\n indeterminate: boolean\n } => {\n if (!option.children || option.children.length === 0) {\n // Leaf node\n const fullPath = [...currentPath, option.value]\n return {\n checked: isPathSelected(fullPath),\n indeterminate: false,\n }\n }\n\n // Parent node - check all leaf descendants\n const leafPaths = getAllLeafPaths(option, currentPath)\n const selectedCount = leafPaths.filter((path) =>\n isPathSelected(path),\n ).length\n\n return {\n checked: selectedCount === leafPaths.length && leafPaths.length > 0,\n indeterminate: selectedCount > 0 && selectedCount < leafPaths.length,\n }\n },\n [isPathSelected, getAllLeafPaths],\n )\n\n const handleItemClick = React.useCallback(\n (option: CascaderOption, level: number) => {\n if (option.disabled) return\n\n // Update the selected path\n const newPath = [...selectedPath.slice(0, level), option.value]\n setSelectedPath(newPath)\n\n if (option.children && option.children.length > 0 && !multiple) {\n // Has children and single mode - just expand\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ])\n } else if (option.children && option.children.length > 0 && multiple) {\n // Has children and multiple mode - toggle all leaf descendants\n const leafPaths = getAllLeafPaths(\n option,\n selectedPath.slice(0, level),\n )\n const allSelected = leafPaths.every((path) => isPathSelected(path))\n\n let newValue: string[][]\n\n if (allSelected) {\n // Deselect all leaf descendants\n newValue = normalizedValue.filter(\n (selectedPath) =>\n !leafPaths.some(\n (leafPath) =>\n leafPath.length === selectedPath.length &&\n leafPath.every((val, idx) => val === selectedPath[idx]),\n ),\n )\n } else {\n // Select all leaf descendants\n const pathsToAdd = leafPaths.filter((path) => !isPathSelected(path))\n newValue = [...normalizedValue, ...pathsToAdd]\n }\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n )\n\n if (value === undefined) setInternalValue(newValue)\n onChange?.(newValue, newSelectedOptions)\n\n // Also expand the node\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ])\n } else {\n // Leaf node\n if (multiple) {\n // Multiple mode - toggle selection\n let newValue: string[][]\n\n if (isPathSelected(newPath)) {\n // Remove from selection\n newValue = normalizedValue.filter(\n (path) =>\n !(\n path.length === newPath.length &&\n path.every((val, idx) => val === newPath[idx])\n ),\n )\n } else {\n // Add to selection\n newValue = [...normalizedValue, newPath]\n }\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n )\n\n if (value === undefined) setInternalValue(newValue)\n onChange?.(newValue, newSelectedOptions)\n } else {\n // Single mode - update value and close\n const selectedOptions = getSelectedOptions(newPath)\n\n if (value === undefined) setInternalValue(newPath)\n onChange?.(newPath, selectedOptions)\n handleClose()\n }\n }\n },\n [\n selectedPath,\n value,\n onChange,\n handleClose,\n getSelectedOptions,\n multiple,\n isPathSelected,\n normalizedValue,\n getAllLeafPaths,\n ],\n )\n\n const handleItemHover = React.useCallback(\n (option: CascaderOption, level: number, index: number) => {\n if (hover && !option.disabled) {\n setHoveredPath((prev) => [...prev.slice(0, level), index])\n\n if (option.children && option.children.length > 0) {\n setActiveMenus((prev) => [\n ...prev.slice(0, level + 1),\n option.children!,\n ])\n } else {\n setActiveMenus((prev) => prev.slice(0, level + 1))\n }\n }\n },\n [hover],\n )\n\n const handleClear = React.useCallback(() => {\n const emptyValue = multiple ? [] : []\n if (value === undefined) setInternalValue(emptyValue)\n onChange?.(emptyValue, multiple ? [] : [])\n }, [value, onChange, multiple])\n\n const removeSelection = React.useCallback(\n (pathToRemove: string[]) => {\n if (!multiple) return\n\n const newValue = normalizedValue.filter(\n (path) =>\n !(\n path.length === pathToRemove.length &&\n path.every((val, idx) => val === pathToRemove[idx])\n ),\n )\n\n const newSelectedOptions = newValue.map((path) =>\n getSelectedOptions(path),\n )\n\n if (value === undefined) setInternalValue(newValue)\n onChange?.(newValue, newSelectedOptions)\n },\n [multiple, normalizedValue, value, onChange, getSelectedOptions],\n )\n\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(event.target as Node)\n ) {\n handleClose()\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen, handleClose])\n\n React.useEffect(() => {\n if (!multiple || normalizedValue.length === 0 || !triggerRef.current) {\n setVisibleChipsCount(maxChipsVisible)\n return\n }\n\n const calculateVisibleChips = () => {\n const container = triggerRef.current\n if (!container) return\n\n const hiddenChips = container.querySelectorAll('[data-hidden-chip]')\n if (hiddenChips.length === 0) return\n\n const containerWidth = container.offsetWidth\n const padding =\n size === 'xs' ? 8 : size === 'sm' ? 12 : size === 'md' ? 16 : 20\n const chevronWidth = 32\n const gap = 4\n const plusIndicatorWidth = 50\n\n const availableWidth = containerWidth - padding * 2 - chevronWidth\n let totalWidth = 0\n let visibleCount = 0\n\n for (let i = 0; i < hiddenChips.length; i++) {\n const chipWidth = hiddenChips[i]?.getBoundingClientRect().width || 0\n const requiredSpace =\n totalWidth + chipWidth + (visibleCount > 0 ? gap : 0)\n\n const needsPlusIndicator = i < hiddenChips.length - 1\n const spaceWithIndicator =\n requiredSpace + (needsPlusIndicator ? gap + plusIndicatorWidth : 0)\n\n if (spaceWithIndicator <= availableWidth) {\n totalWidth = requiredSpace\n visibleCount++\n } else {\n break\n }\n }\n\n setVisibleChipsCount(Math.max(1, visibleCount))\n }\n\n const timeoutId = setTimeout(calculateVisibleChips, 0)\n\n const resizeObserver = new ResizeObserver(() => {\n calculateVisibleChips()\n })\n\n if (triggerRef.current) {\n resizeObserver.observe(triggerRef.current)\n }\n\n return () => {\n clearTimeout(timeoutId)\n resizeObserver.disconnect()\n }\n }, [normalizedValue, size, maxChipsVisible, multiple])\n\n const displayValue = React.useMemo(() => {\n if (normalizedValue.length === 0) return null\n\n if (displayRender) {\n if (multiple) {\n const allLabels = normalizedValue.map((path) =>\n getSelectedOptions(path).map((opt) => opt.label),\n )\n return displayRender(allLabels)\n } else {\n const labels = getSelectedOptions(normalizedValue[0] || []).map(\n (opt) => opt.label,\n )\n return displayRender(labels)\n }\n }\n\n if (!multiple) {\n const labels = getSelectedOptions(normalizedValue[0] || []).map(\n (opt) => opt.label,\n )\n return labels.length > 0 ? labels.join(' / ') : null\n }\n\n return null // For multiple, we show chips instead\n }, [normalizedValue, displayRender, getSelectedOptions, multiple])\n\n const showClear =\n normalizedValue.length > 0 &&\n !!normalizedValue[0]?.[0] &&\n !disabled &&\n !loading\n\n let status: 'default' | 'error' | 'warning' | 'info' | 'success' = 'default'\n const helperMessage = error || warning || info || success || helperText\n\n if (error) {\n status = 'error'\n } else if (warning) {\n status = 'warning'\n } else if (success) {\n status = 'success'\n } else if (info) {\n status = 'info'\n }\n\n const renderCascaderMenus = () => (\n <div className=\"flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none\">\n {activeMenus.map((menu, level) => (\n <div\n key={level}\n className={cn(cascaderMenuVariants({ color }))}\n >\n {menu.map((option, index) => {\n const isActive =\n selectedPath[level] === option.value ||\n (hover && hoveredPath[level] === index)\n const currentPath = selectedPath.slice(0, level)\n const selectionState = multiple\n ? getNodeSelectionState(option, currentPath)\n : { checked: false, indeterminate: false }\n\n return (\n <div\n key={option.value}\n className={cascaderItemVariants({\n size,\n disabled: !!option.disabled,\n active: isActive,\n })}\n onClick={() => handleItemClick(option, level)}\n onMouseEnter={() => handleItemHover(option, level, index)}\n >\n {multiple && (\n <div\n className={cn(\n 'w-4 h-4 border rounded flex items-center justify-center shrink-0',\n selectionState.checked\n ? 'bg-primary border-primary'\n : 'border-border',\n )}\n >\n {selectionState.checked && (\n <Check className=\"h-3 w-3 text-background\" />\n )}\n {selectionState.indeterminate &&\n !selectionState.checked && (\n <div className=\"w-2 h-0.5 bg-primary\" />\n )}\n </div>\n )}\n <span className=\"flex-1 truncate\">{option.label}</span>\n <span className={cn('shrink-0', iconSizes[size])}>\n {option.children && option.children.length > 0 && (\n <ChevronRight className={iconSizes[size]} />\n )}\n </span>\n </div>\n )\n })}\n </div>\n ))}\n </div>\n )\n\n const triggerButton = (\n <div\n ref={triggerRef}\n onClick={handleToggle}\n className={cn(\n cascaderTriggerVariants({ variant, size, fullWidth }),\n className,\n )}\n >\n <div className=\"flex-1 flex flex-wrap gap-1 items-center min-h-0\">\n {multiple && normalizedValue.length > 0 ? (\n <>\n {normalizedValue.slice(0, visibleChipsCount).map((path, idx) => {\n const labels = getSelectedOptions(path).map((opt) => opt.label)\n const lastLabel = labels[labels.length - 1]\n return (\n <span\n key={idx}\n className=\"inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary rounded text-sm whitespace-nowrap\"\n >\n {lastLabel}\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n removeSelection(path)\n }}\n className=\"hover:text-error\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </span>\n )\n })}\n {normalizedValue.length > visibleChipsCount && (\n <span className=\"inline-flex items-center px-2 py-0.5 bg-surface text-text-secondary rounded text-sm whitespace-nowrap\">\n +{normalizedValue.length - visibleChipsCount}\n </span>\n )}\n <div\n className=\"absolute opacity-0 pointer-events-none whitespace-nowrap\"\n aria-hidden=\"true\"\n >\n {normalizedValue.map((path, idx) => {\n const labels = getSelectedOptions(path).map(\n (opt) => opt.label,\n )\n const lastLabel = labels[labels.length - 1]\n return (\n <span\n key={idx}\n data-hidden-chip\n className=\"inline-flex items-center gap-1 bg-surface text-text-primary px-2 py-0.5 rounded text-sm whitespace-nowrap\"\n >\n {lastLabel}\n <X className=\"h-3 w-3\" />\n </span>\n )\n })}\n </div>\n </>\n ) : (\n <span\n className={cn(\n 'truncate text-text-primary',\n !displayValue && 'text-text-muted',\n )}\n >\n {displayValue || placeholder}\n </span>\n )}\n </div>\n <div className=\"flex items-center gap-1 text-text-secondary shrink-0\">\n {loading && (\n <Loader2\n className={cn('animate-spin text-text-muted', iconSizes[size])}\n />\n )}\n {!loading && showClear && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n handleClear()\n }}\n className=\"hover:text-text-primary\"\n aria-label=\"Clear selection\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {!loading && (\n <ChevronDown\n className={cn(\n 'transition-transform',\n iconSizes[size],\n isOpen && 'rotate-180',\n )}\n />\n )}\n </div>\n </div>\n )\n\n const cascaderElement = (\n <div\n ref={containerRef}\n className={cn('relative', fullWidth ? 'w-full' : 'inline-block')}\n >\n {triggerButton}\n {isOpen && (\n <div\n className={cn(\n 'absolute z-50 mt-1',\n position === 'left' ? 'left-0' : 'right-0',\n )}\n >\n {renderCascaderMenus()}\n </div>\n )}\n </div>\n )\n\n if (!label && !helperMessage) return cascaderElement\n\n return (\n <div\n className={cn(\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n )}\n >\n <div className=\"flex gap-2 items-center relative mb-0.5\">\n {label && (\n <p className=\"text-sm font-medium text-text-secondary\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </p>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={`cascader-helper-${status}`}\n className={cn(\n 'text-xs',\n status === 'error' && 'text-error',\n status === 'warning' && 'text-warning',\n status === 'info' && 'text-info',\n status === 'success' && 'text-success',\n status === 'default' && 'text-text-secondary',\n )}\n >\n {helperMessage}\n </p>\n )}\n </div>\n {cascaderElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={`cascader-helper-${status}`}\n className={cn(\n 'text-xs mt-0.5',\n status === 'error' && 'text-error',\n status === 'warning' && 'text-warning',\n status === 'info' && 'text-info',\n status === 'success' && 'text-success',\n status === 'default' && 'text-text-secondary',\n )}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nCascader.displayName = 'Cascader'\n\nexport type * from './types'\nexport default Cascader\n"]}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { cn } from './chunk-YNNAOXU5.js';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var toggleGroupVariants = cva(
|
|
7
|
+
"inline-flex border rounded-md overflow-hidden",
|
|
8
|
+
{
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
xs: "gap-0",
|
|
12
|
+
sm: "gap-0",
|
|
13
|
+
md: "gap-0",
|
|
14
|
+
lg: "gap-0"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
size: "md"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
var toggleItemVariants = cva(
|
|
23
|
+
"font-medium transition-colors cursor-pointer border-r last:border-r-0",
|
|
24
|
+
{
|
|
25
|
+
variants: {
|
|
26
|
+
size: {
|
|
27
|
+
xs: "text-xs px-2 py-1",
|
|
28
|
+
sm: "text-sm px-3 py-1.5",
|
|
29
|
+
md: "text-base px-4 py-2",
|
|
30
|
+
lg: "text-lg px-5 py-2.5"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
defaultVariants: {
|
|
34
|
+
size: "md"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
var inactiveHoverClasses = {
|
|
39
|
+
default: "text-text-secondary hover:text-text-primary hover:bg-surface",
|
|
40
|
+
primary: "text-text-secondary hover:text-primary hover:bg-primary/10",
|
|
41
|
+
secondary: "text-text-secondary hover:text-secondary hover:bg-secondary/10",
|
|
42
|
+
accent: "text-text-secondary hover:text-accent hover:bg-accent/10",
|
|
43
|
+
success: "text-text-secondary hover:text-success hover:bg-success/10",
|
|
44
|
+
error: "text-text-secondary hover:text-error hover:bg-error/10",
|
|
45
|
+
warning: "text-text-secondary hover:text-warning hover:bg-warning/10",
|
|
46
|
+
info: "text-text-secondary hover:text-info hover:bg-info/10"
|
|
47
|
+
};
|
|
48
|
+
var activeSolidClasses = {
|
|
49
|
+
default: "bg-border text-text-primary",
|
|
50
|
+
primary: "bg-primary text-background",
|
|
51
|
+
secondary: "bg-secondary text-background",
|
|
52
|
+
accent: "bg-accent text-background",
|
|
53
|
+
success: "bg-success text-background",
|
|
54
|
+
error: "bg-error text-background",
|
|
55
|
+
warning: "bg-warning text-background",
|
|
56
|
+
info: "bg-info text-background"
|
|
57
|
+
};
|
|
58
|
+
var activeSoftClasses = {
|
|
59
|
+
default: "bg-border/20 text-text-primary",
|
|
60
|
+
primary: "bg-primary/20 text-primary",
|
|
61
|
+
secondary: "bg-secondary/20 text-secondary",
|
|
62
|
+
accent: "bg-accent/20 text-accent",
|
|
63
|
+
success: "bg-success/20 text-success",
|
|
64
|
+
error: "bg-error/20 text-error",
|
|
65
|
+
warning: "bg-warning/20 text-warning",
|
|
66
|
+
info: "bg-info/20 text-info"
|
|
67
|
+
};
|
|
68
|
+
var activeDefaultClasses = {
|
|
69
|
+
default: "bg-surface text-text-primary",
|
|
70
|
+
primary: "border-primary bg-primary/10 text-primary",
|
|
71
|
+
secondary: "border-secondary bg-secondary/10 text-secondary",
|
|
72
|
+
accent: "border-accent bg-accent/10 text-accent",
|
|
73
|
+
success: "border-success bg-success/10 text-success",
|
|
74
|
+
error: "border-error bg-error/10 text-error",
|
|
75
|
+
warning: "border-warning bg-warning/10 text-warning",
|
|
76
|
+
info: "border-info bg-info/10 text-info"
|
|
77
|
+
};
|
|
78
|
+
var getToggleClasses = (color, variant, isActive) => {
|
|
79
|
+
const toggleColor = color;
|
|
80
|
+
if (!isActive) {
|
|
81
|
+
return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default;
|
|
82
|
+
}
|
|
83
|
+
if (variant === "solid") {
|
|
84
|
+
return activeSolidClasses[toggleColor] || activeSolidClasses.default;
|
|
85
|
+
}
|
|
86
|
+
if (variant === "soft") {
|
|
87
|
+
return activeSoftClasses[toggleColor] || activeSoftClasses.default;
|
|
88
|
+
}
|
|
89
|
+
return activeDefaultClasses[toggleColor] || activeDefaultClasses.default;
|
|
90
|
+
};
|
|
91
|
+
var ToggleGroup = React.memo(
|
|
92
|
+
({
|
|
93
|
+
options,
|
|
94
|
+
value: controlledValue,
|
|
95
|
+
defaultValue,
|
|
96
|
+
multiple = false,
|
|
97
|
+
color = "primary",
|
|
98
|
+
size = "md",
|
|
99
|
+
variant = "default",
|
|
100
|
+
onChange,
|
|
101
|
+
fullWidth = false,
|
|
102
|
+
disabled = false,
|
|
103
|
+
className,
|
|
104
|
+
centered = false
|
|
105
|
+
}) => {
|
|
106
|
+
const [internalValue, setInternalValue] = useState(
|
|
107
|
+
defaultValue || (multiple ? [] : options[0]?.value || "")
|
|
108
|
+
);
|
|
109
|
+
const value = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
110
|
+
const handleToggleClick = (optionValue, optionDisabled) => {
|
|
111
|
+
if (disabled || optionDisabled) return;
|
|
112
|
+
let newValue;
|
|
113
|
+
if (multiple) {
|
|
114
|
+
const currentValues = Array.isArray(value) ? value : [];
|
|
115
|
+
if (currentValues.includes(optionValue)) {
|
|
116
|
+
newValue = currentValues.filter((v) => v !== optionValue);
|
|
117
|
+
} else {
|
|
118
|
+
newValue = [...currentValues, optionValue];
|
|
119
|
+
}
|
|
120
|
+
} else {
|
|
121
|
+
newValue = optionValue;
|
|
122
|
+
}
|
|
123
|
+
if (controlledValue === void 0) {
|
|
124
|
+
setInternalValue(newValue);
|
|
125
|
+
}
|
|
126
|
+
onChange?.(newValue);
|
|
127
|
+
};
|
|
128
|
+
const isActive = (optionValue) => {
|
|
129
|
+
if (multiple && Array.isArray(value)) {
|
|
130
|
+
return value.includes(optionValue);
|
|
131
|
+
}
|
|
132
|
+
return optionValue === value;
|
|
133
|
+
};
|
|
134
|
+
return /* @__PURE__ */ jsx(
|
|
135
|
+
"div",
|
|
136
|
+
{
|
|
137
|
+
className: cn(
|
|
138
|
+
toggleGroupVariants({ size }),
|
|
139
|
+
"border-border bg-background",
|
|
140
|
+
className,
|
|
141
|
+
fullWidth && `grid w-full grid-cols-${options.length}`
|
|
142
|
+
),
|
|
143
|
+
children: options.map((option) => {
|
|
144
|
+
const active = isActive(option.value);
|
|
145
|
+
const isDisabled = disabled || option.disabled;
|
|
146
|
+
return /* @__PURE__ */ jsx(
|
|
147
|
+
"button",
|
|
148
|
+
{
|
|
149
|
+
className: cn(
|
|
150
|
+
toggleItemVariants({ size }),
|
|
151
|
+
getToggleClasses(color, variant, active),
|
|
152
|
+
"border-border flex items-center justify-center",
|
|
153
|
+
isDisabled && "opacity-50 cursor-not-allowed",
|
|
154
|
+
centered && "text-center"
|
|
155
|
+
),
|
|
156
|
+
onClick: () => handleToggleClick(option.value, option.disabled),
|
|
157
|
+
disabled: isDisabled,
|
|
158
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
159
|
+
option.icon,
|
|
160
|
+
option.label
|
|
161
|
+
] })
|
|
162
|
+
},
|
|
163
|
+
option.value
|
|
164
|
+
);
|
|
165
|
+
})
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
);
|
|
170
|
+
ToggleGroup.displayName = "ToggleGroup";
|
|
171
|
+
var toggle_group_default = ToggleGroup;
|
|
172
|
+
|
|
173
|
+
export { ToggleGroup, toggle_group_default };
|
|
174
|
+
//# sourceMappingURL=chunk-SK5ECBBK.js.map
|
|
175
|
+
//# sourceMappingURL=chunk-SK5ECBBK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/toggle-group/index.tsx"],"names":[],"mappings":"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","file":"chunk-SK5ECBBK.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React, { useState } from 'react'\n\nimport { cn } from '../utils'\nimport type { ToggleGroupProps } from './types'\n\nconst toggleGroupVariants = cva(\n 'inline-flex border rounded-md overflow-hidden',\n {\n variants: {\n size: {\n xs: 'gap-0',\n sm: 'gap-0',\n md: 'gap-0',\n lg: 'gap-0',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst toggleItemVariants = cva(\n 'font-medium transition-colors cursor-pointer border-r last:border-r-0',\n {\n variants: {\n size: {\n xs: 'text-xs px-2 py-1',\n sm: 'text-sm px-3 py-1.5',\n md: 'text-base px-4 py-2',\n lg: 'text-lg px-5 py-2.5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\n// Inactive hover states for each color\nconst inactiveHoverClasses = {\n default: 'text-text-secondary hover:text-text-primary hover:bg-surface',\n primary: 'text-text-secondary hover:text-primary hover:bg-primary/10',\n secondary: 'text-text-secondary hover:text-secondary hover:bg-secondary/10',\n accent: 'text-text-secondary hover:text-accent hover:bg-accent/10',\n success: 'text-text-secondary hover:text-success hover:bg-success/10',\n error: 'text-text-secondary hover:text-error hover:bg-error/10',\n warning: 'text-text-secondary hover:text-warning hover:bg-warning/10',\n info: 'text-text-secondary hover:text-info hover:bg-info/10',\n} as const\n\n// Active solid variant classes\nconst activeSolidClasses = {\n default: 'bg-border text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\n// Active soft variant classes\nconst activeSoftClasses = {\n default: 'bg-border/20 text-text-primary',\n primary: 'bg-primary/20 text-primary',\n secondary: 'bg-secondary/20 text-secondary',\n accent: 'bg-accent/20 text-accent',\n success: 'bg-success/20 text-success',\n error: 'bg-error/20 text-error',\n warning: 'bg-warning/20 text-warning',\n info: 'bg-info/20 text-info',\n} as const\n\n// Active default variant classes\nconst activeDefaultClasses = {\n default: 'bg-surface text-text-primary',\n primary: 'border-primary bg-primary/10 text-primary',\n secondary: 'border-secondary bg-secondary/10 text-secondary',\n accent: 'border-accent bg-accent/10 text-accent',\n success: 'border-success bg-success/10 text-success',\n error: 'border-error bg-error/10 text-error',\n warning: 'border-warning bg-warning/10 text-warning',\n info: 'border-info bg-info/10 text-info',\n} as const\n\ntype ToggleColor = keyof typeof inactiveHoverClasses\n\nconst getToggleClasses = (\n color: string,\n variant: string,\n isActive: boolean,\n) => {\n const toggleColor = color as ToggleColor\n\n if (!isActive) {\n return inactiveHoverClasses[toggleColor] || inactiveHoverClasses.default\n }\n\n // Active state\n if (variant === 'solid') {\n return activeSolidClasses[toggleColor] || activeSolidClasses.default\n }\n if (variant === 'soft') {\n return activeSoftClasses[toggleColor] || activeSoftClasses.default\n }\n return activeDefaultClasses[toggleColor] || activeDefaultClasses.default\n}\n\nexport const ToggleGroup = React.memo<ToggleGroupProps>(\n ({\n options,\n value: controlledValue,\n defaultValue,\n multiple = false,\n color = 'primary',\n size = 'md',\n variant = 'default',\n onChange,\n fullWidth = false,\n disabled = false,\n className,\n centered = false,\n }) => {\n const [internalValue, setInternalValue] = useState<string | string[]>(\n defaultValue || (multiple ? [] : options[0]?.value || ''),\n )\n\n const value =\n controlledValue !== undefined ? controlledValue : internalValue\n\n const handleToggleClick = (\n optionValue: string,\n optionDisabled?: boolean,\n ) => {\n if (disabled || optionDisabled) return\n\n let newValue: string | string[]\n\n if (multiple) {\n const currentValues = Array.isArray(value) ? value : []\n if (currentValues.includes(optionValue)) {\n newValue = currentValues.filter((v) => v !== optionValue)\n } else {\n newValue = [...currentValues, optionValue]\n }\n } else {\n newValue = optionValue\n }\n\n if (controlledValue === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n }\n\n const isActive = (optionValue: string) => {\n if (multiple && Array.isArray(value)) {\n return value.includes(optionValue)\n }\n return optionValue === value\n }\n\n return (\n <div\n className={cn(\n toggleGroupVariants({ size }),\n 'border-border bg-background',\n className,\n fullWidth && `grid w-full grid-cols-${options.length}`,\n )}\n >\n {options.map((option) => {\n const active = isActive(option.value)\n const isDisabled = disabled || option.disabled\n\n return (\n <button\n key={option.value}\n className={cn(\n toggleItemVariants({ size }),\n getToggleClasses(color, variant, active),\n\n 'border-border flex items-center justify-center',\n isDisabled && 'opacity-50 cursor-not-allowed',\n centered && 'text-center',\n )}\n onClick={() => handleToggleClick(option.value, option.disabled)}\n disabled={isDisabled}\n >\n <div className=\"flex items-center gap-2\">\n {option.icon}\n {option.label}\n </div>\n </button>\n )\n })}\n </div>\n )\n },\n)\n\nToggleGroup.displayName = 'ToggleGroup'\n\nexport type * from './types'\nexport default ToggleGroup\n"]}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { cn, iconSizes } from './chunk-YNNAOXU5.js';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { ChevronDown } from 'lucide-react';
|
|
4
|
+
import React, { useState } from 'react';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var collapseVariants = cva(
|
|
8
|
+
"w-full border rounded-md transition-all overflow-hidden",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
size: {
|
|
12
|
+
xs: "",
|
|
13
|
+
sm: "",
|
|
14
|
+
md: "",
|
|
15
|
+
lg: ""
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
size: "md"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
var collapseHeaderVariants = cva(
|
|
24
|
+
"w-full flex items-center justify-between cursor-pointer transition-colors font-medium",
|
|
25
|
+
{
|
|
26
|
+
variants: {
|
|
27
|
+
size: {
|
|
28
|
+
xs: "px-2 py-1.5 text-xs",
|
|
29
|
+
sm: "px-3 py-2 text-sm",
|
|
30
|
+
md: "px-4 py-3 text-base",
|
|
31
|
+
lg: "px-5 py-4 text-lg"
|
|
32
|
+
},
|
|
33
|
+
disabled: {
|
|
34
|
+
true: "opacity-50 cursor-not-allowed",
|
|
35
|
+
false: ""
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
size: "md",
|
|
40
|
+
disabled: false
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
var collapseContentVariants = cva("transition-all", {
|
|
45
|
+
variants: {
|
|
46
|
+
size: {
|
|
47
|
+
xs: "px-2 pb-2 text-xs",
|
|
48
|
+
sm: "px-3 pb-3 text-sm",
|
|
49
|
+
md: "px-4 pb-4 text-base",
|
|
50
|
+
lg: "px-5 pb-5 text-lg"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
defaultVariants: {
|
|
54
|
+
size: "md"
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
var colorStyles = {
|
|
58
|
+
default: {
|
|
59
|
+
default: "border-border bg-background text-text-primary",
|
|
60
|
+
solid: "border-border bg-surface text-text-primary",
|
|
61
|
+
soft: "border-border bg-surface/50 text-text-primary"
|
|
62
|
+
},
|
|
63
|
+
primary: {
|
|
64
|
+
default: "border-primary bg-background text-text-primary",
|
|
65
|
+
solid: "border-primary bg-primary text-background",
|
|
66
|
+
soft: "border-primary/30 bg-primary/10 text-text-primary"
|
|
67
|
+
},
|
|
68
|
+
secondary: {
|
|
69
|
+
default: "border-secondary bg-background text-text-primary",
|
|
70
|
+
solid: "border-secondary bg-secondary text-background",
|
|
71
|
+
soft: "border-secondary/30 bg-secondary/10 text-text-primary"
|
|
72
|
+
},
|
|
73
|
+
accent: {
|
|
74
|
+
default: "border-accent bg-background text-text-primary",
|
|
75
|
+
solid: "border-accent bg-accent text-background",
|
|
76
|
+
soft: "border-accent/30 bg-accent/10 text-text-primary"
|
|
77
|
+
},
|
|
78
|
+
success: {
|
|
79
|
+
default: "border-success bg-background text-text-primary",
|
|
80
|
+
solid: "border-success bg-success text-background",
|
|
81
|
+
soft: "border-success/30 bg-success/10 text-text-primary"
|
|
82
|
+
},
|
|
83
|
+
error: {
|
|
84
|
+
default: "border-error bg-background text-text-primary",
|
|
85
|
+
solid: "border-error bg-error text-background",
|
|
86
|
+
soft: "border-error/30 bg-error/10 text-text-primary"
|
|
87
|
+
},
|
|
88
|
+
warning: {
|
|
89
|
+
default: "border-warning bg-background text-text-primary",
|
|
90
|
+
solid: "border-warning bg-warning text-background",
|
|
91
|
+
soft: "border-warning/30 bg-warning/10 text-text-primary"
|
|
92
|
+
},
|
|
93
|
+
info: {
|
|
94
|
+
default: "border-info bg-background text-text-primary",
|
|
95
|
+
solid: "border-info bg-info text-background",
|
|
96
|
+
soft: "border-info/30 bg-info/10 text-text-primary"
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
var headerColorStyles = {
|
|
100
|
+
default: {
|
|
101
|
+
default: "text-text-primary hover:bg-surface",
|
|
102
|
+
solid: "text-text-primary hover:bg-surface/80",
|
|
103
|
+
soft: "text-text-primary hover:bg-surface/80"
|
|
104
|
+
},
|
|
105
|
+
primary: {
|
|
106
|
+
default: "text-primary hover:bg-primary/10",
|
|
107
|
+
solid: "hover:bg-primary/90",
|
|
108
|
+
soft: "text-primary hover:bg-primary/20"
|
|
109
|
+
},
|
|
110
|
+
secondary: {
|
|
111
|
+
default: "text-secondary hover:bg-secondary/10",
|
|
112
|
+
solid: "hover:bg-secondary/90",
|
|
113
|
+
soft: "text-secondary hover:bg-secondary/20"
|
|
114
|
+
},
|
|
115
|
+
accent: {
|
|
116
|
+
default: "text-accent hover:bg-accent/10",
|
|
117
|
+
solid: "hover:bg-accent/90",
|
|
118
|
+
soft: "text-accent hover:bg-accent/20"
|
|
119
|
+
},
|
|
120
|
+
success: {
|
|
121
|
+
default: "text-success hover:bg-success/10",
|
|
122
|
+
solid: "hover:bg-success/90",
|
|
123
|
+
soft: "text-success hover:bg-success/20"
|
|
124
|
+
},
|
|
125
|
+
error: {
|
|
126
|
+
default: "text-error hover:bg-error/10",
|
|
127
|
+
solid: "hover:bg-error/90",
|
|
128
|
+
soft: "text-error hover:bg-error/20"
|
|
129
|
+
},
|
|
130
|
+
warning: {
|
|
131
|
+
default: "text-warning hover:bg-warning/10",
|
|
132
|
+
solid: "hover:bg-warning/90",
|
|
133
|
+
soft: "text-warning hover:bg-warning/20"
|
|
134
|
+
},
|
|
135
|
+
info: {
|
|
136
|
+
default: "text-info hover:bg-info/10",
|
|
137
|
+
solid: "hover:bg-info/90",
|
|
138
|
+
soft: "text-info hover:bg-info/20"
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
var Collapse = React.memo(
|
|
142
|
+
({
|
|
143
|
+
title,
|
|
144
|
+
children,
|
|
145
|
+
color = "default",
|
|
146
|
+
size = "md",
|
|
147
|
+
variant = "default",
|
|
148
|
+
defaultOpen = false,
|
|
149
|
+
open: controlledOpen,
|
|
150
|
+
onChange,
|
|
151
|
+
disabled = false,
|
|
152
|
+
className
|
|
153
|
+
}) => {
|
|
154
|
+
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
155
|
+
const isOpen = controlledOpen !== void 0 ? controlledOpen : internalOpen;
|
|
156
|
+
const handleToggle = () => {
|
|
157
|
+
if (disabled) return;
|
|
158
|
+
const newOpen = !isOpen;
|
|
159
|
+
if (controlledOpen === void 0) {
|
|
160
|
+
setInternalOpen(newOpen);
|
|
161
|
+
}
|
|
162
|
+
onChange?.(newOpen);
|
|
163
|
+
};
|
|
164
|
+
return /* @__PURE__ */ jsxs(
|
|
165
|
+
"div",
|
|
166
|
+
{
|
|
167
|
+
className: cn(
|
|
168
|
+
collapseVariants({ size }),
|
|
169
|
+
colorStyles[color][variant],
|
|
170
|
+
className
|
|
171
|
+
),
|
|
172
|
+
children: [
|
|
173
|
+
/* @__PURE__ */ jsxs(
|
|
174
|
+
"button",
|
|
175
|
+
{
|
|
176
|
+
type: "button",
|
|
177
|
+
onClick: handleToggle,
|
|
178
|
+
disabled,
|
|
179
|
+
className: cn(
|
|
180
|
+
collapseHeaderVariants({ size, disabled }),
|
|
181
|
+
headerColorStyles[color][variant]
|
|
182
|
+
),
|
|
183
|
+
children: [
|
|
184
|
+
/* @__PURE__ */ jsx("span", { children: title }),
|
|
185
|
+
/* @__PURE__ */ jsx(
|
|
186
|
+
ChevronDown,
|
|
187
|
+
{
|
|
188
|
+
className: cn(
|
|
189
|
+
iconSizes[size],
|
|
190
|
+
"transition-transform duration-300 ease-out flex-shrink-0",
|
|
191
|
+
isOpen && "rotate-180"
|
|
192
|
+
)
|
|
193
|
+
}
|
|
194
|
+
)
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
),
|
|
198
|
+
/* @__PURE__ */ jsx(
|
|
199
|
+
"div",
|
|
200
|
+
{
|
|
201
|
+
className: cn(
|
|
202
|
+
"grid transition-[grid-template-rows] duration-300 ease-out",
|
|
203
|
+
isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
204
|
+
),
|
|
205
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: collapseContentVariants({ size }), children }) })
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
);
|
|
213
|
+
Collapse.displayName = "Collapse";
|
|
214
|
+
var collapse_default = Collapse;
|
|
215
|
+
|
|
216
|
+
export { collapse_default };
|
|
217
|
+
//# sourceMappingURL=chunk-SOV4PE3P.js.map
|
|
218
|
+
//# sourceMappingURL=chunk-SOV4PE3P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/collapse/index.tsx"],"names":[],"mappings":"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","file":"chunk-SOV4PE3P.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport { ChevronDown } from 'lucide-react'\nimport React, { useState } from 'react'\n\nimport { cn, iconSizes } from '../utils'\nimport type { CollapseProps } from './types'\n\nconst collapseVariants = cva(\n 'w-full border rounded-md transition-all overflow-hidden',\n {\n variants: {\n size: {\n xs: '',\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst collapseHeaderVariants = cva(\n 'w-full flex items-center justify-between cursor-pointer transition-colors font-medium',\n {\n variants: {\n size: {\n xs: 'px-2 py-1.5 text-xs',\n sm: 'px-3 py-2 text-sm',\n md: 'px-4 py-3 text-base',\n lg: 'px-5 py-4 text-lg',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n disabled: false,\n },\n },\n)\n\nconst collapseContentVariants = cva('transition-all', {\n variants: {\n size: {\n xs: 'px-2 pb-2 text-xs',\n sm: 'px-3 pb-3 text-sm',\n md: 'px-4 pb-4 text-base',\n lg: 'px-5 pb-5 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst colorStyles = {\n default: {\n default: 'border-border bg-background text-text-primary',\n solid: 'border-border bg-surface text-text-primary',\n soft: 'border-border bg-surface/50 text-text-primary',\n },\n primary: {\n default: 'border-primary bg-background text-text-primary',\n solid: 'border-primary bg-primary text-background',\n soft: 'border-primary/30 bg-primary/10 text-text-primary',\n },\n secondary: {\n default: 'border-secondary bg-background text-text-primary',\n solid: 'border-secondary bg-secondary text-background',\n soft: 'border-secondary/30 bg-secondary/10 text-text-primary',\n },\n accent: {\n default: 'border-accent bg-background text-text-primary',\n solid: 'border-accent bg-accent text-background',\n soft: 'border-accent/30 bg-accent/10 text-text-primary',\n },\n success: {\n default: 'border-success bg-background text-text-primary',\n solid: 'border-success bg-success text-background',\n soft: 'border-success/30 bg-success/10 text-text-primary',\n },\n error: {\n default: 'border-error bg-background text-text-primary',\n solid: 'border-error bg-error text-background',\n soft: 'border-error/30 bg-error/10 text-text-primary',\n },\n warning: {\n default: 'border-warning bg-background text-text-primary',\n solid: 'border-warning bg-warning text-background',\n soft: 'border-warning/30 bg-warning/10 text-text-primary',\n },\n info: {\n default: 'border-info bg-background text-text-primary',\n solid: 'border-info bg-info text-background',\n soft: 'border-info/30 bg-info/10 text-text-primary',\n },\n}\n\nconst headerColorStyles = {\n default: {\n default: 'text-text-primary hover:bg-surface',\n solid: 'text-text-primary hover:bg-surface/80',\n soft: 'text-text-primary hover:bg-surface/80',\n },\n primary: {\n default: 'text-primary hover:bg-primary/10',\n solid: 'hover:bg-primary/90',\n soft: 'text-primary hover:bg-primary/20',\n },\n secondary: {\n default: 'text-secondary hover:bg-secondary/10',\n solid: 'hover:bg-secondary/90',\n soft: 'text-secondary hover:bg-secondary/20',\n },\n accent: {\n default: 'text-accent hover:bg-accent/10',\n solid: 'hover:bg-accent/90',\n soft: 'text-accent hover:bg-accent/20',\n },\n success: {\n default: 'text-success hover:bg-success/10',\n solid: 'hover:bg-success/90',\n soft: 'text-success hover:bg-success/20',\n },\n error: {\n default: 'text-error hover:bg-error/10',\n solid: 'hover:bg-error/90',\n soft: 'text-error hover:bg-error/20',\n },\n warning: {\n default: 'text-warning hover:bg-warning/10',\n solid: 'hover:bg-warning/90',\n soft: 'text-warning hover:bg-warning/20',\n },\n info: {\n default: 'text-info hover:bg-info/10',\n solid: 'hover:bg-info/90',\n soft: 'text-info hover:bg-info/20',\n },\n}\n\nconst Collapse = React.memo<CollapseProps>(\n ({\n title,\n children,\n color = 'default',\n size = 'md',\n variant = 'default',\n defaultOpen = false,\n open: controlledOpen,\n onChange,\n disabled = false,\n className,\n }) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen\n\n const handleToggle = () => {\n if (disabled) return\n\n const newOpen = !isOpen\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onChange?.(newOpen)\n }\n\n return (\n <div\n className={cn(\n collapseVariants({ size }),\n colorStyles[color][variant],\n className,\n )}\n >\n <button\n type=\"button\"\n onClick={handleToggle}\n disabled={disabled}\n className={cn(\n collapseHeaderVariants({ size, disabled }),\n headerColorStyles[color][variant],\n )}\n >\n <span>{title}</span>\n <ChevronDown\n className={cn(\n iconSizes[size],\n 'transition-transform duration-300 ease-out flex-shrink-0',\n isOpen && 'rotate-180',\n )}\n />\n </button>\n <div\n className={cn(\n 'grid transition-[grid-template-rows] duration-300 ease-out',\n isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',\n )}\n >\n <div className=\"overflow-hidden\">\n <div className={collapseContentVariants({ size })}>{children}</div>\n </div>\n </div>\n </div>\n )\n },\n)\n\nCollapse.displayName = 'Collapse'\n\nexport type * from './types'\nexport default Collapse\n"]}
|