@mdigital_ui/ui 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button/index.js +1 -1
- package/dist/cascader/index.js +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/{chunk-W7BQYIXF.js → chunk-267WNY3E.js} +6 -6
- package/dist/chunk-267WNY3E.js.map +1 -0
- package/dist/{chunk-H2HIBD5Y.js → chunk-4XXDRVFM.js} +3 -3
- package/dist/chunk-4XXDRVFM.js.map +1 -0
- package/dist/{chunk-E2CYDDYC.js → chunk-6V5I5HJ2.js} +3 -3
- package/dist/{chunk-E2CYDDYC.js.map → chunk-6V5I5HJ2.js.map} +1 -1
- package/dist/{chunk-L3SP7GHC.js → chunk-77DW6PAW.js} +5 -5
- package/dist/{chunk-L3SP7GHC.js.map → chunk-77DW6PAW.js.map} +1 -1
- package/dist/{chunk-JZCHZ4B3.js → chunk-ASW7TEAN.js} +3 -3
- package/dist/chunk-ASW7TEAN.js.map +1 -0
- package/dist/{chunk-EYTOKUBM.js → chunk-BH4DXQC4.js} +3 -3
- package/dist/{chunk-EYTOKUBM.js.map → chunk-BH4DXQC4.js.map} +1 -1
- package/dist/{chunk-SERJ3TZE.js → chunk-G6TAVRTJ.js} +3 -3
- package/dist/chunk-G6TAVRTJ.js.map +1 -0
- package/dist/{chunk-KTBPIEP2.js → chunk-GEWR5ROK.js} +3 -3
- package/dist/chunk-GEWR5ROK.js.map +1 -0
- package/dist/{chunk-RQBXZKTH.js → chunk-JLTDJ3VZ.js} +6 -6
- package/dist/{chunk-RQBXZKTH.js.map → chunk-JLTDJ3VZ.js.map} +1 -1
- package/dist/{chunk-LBJG2UWT.js → chunk-KTAIRCOL.js} +3 -3
- package/dist/{chunk-LBJG2UWT.js.map → chunk-KTAIRCOL.js.map} +1 -1
- package/dist/{chunk-52M2PO3O.js → chunk-QPJL66S7.js} +3 -3
- package/dist/chunk-QPJL66S7.js.map +1 -0
- package/dist/{chunk-CLLQDCDR.js → chunk-UAMFKX6L.js} +6 -6
- package/dist/chunk-UAMFKX6L.js.map +1 -0
- package/dist/{chunk-2JGAYDZR.js → chunk-XMKNYG7I.js} +6 -6
- package/dist/{chunk-2JGAYDZR.js.map → chunk-XMKNYG7I.js.map} +1 -1
- package/dist/{chunk-AOITJRSV.js → chunk-YZ6V6BQ7.js} +3 -3
- package/dist/chunk-YZ6V6BQ7.js.map +1 -0
- package/dist/date-picker/index.js +1 -1
- package/dist/index.js +19 -19
- package/dist/input/index.js +1 -1
- package/dist/input-password/index.js +2 -2
- package/dist/multi-select/index.js +1 -1
- package/dist/progress/index.js +1 -1
- package/dist/radio/index.js +1 -1
- package/dist/select/index.js +1 -1
- package/dist/styles/base.css +1923 -182
- package/dist/styles/global.css +241 -175
- package/dist/styles/themes/dark.css +44 -40
- package/dist/styles/themes/light.css +12 -9
- package/dist/switch/index.js +1 -1
- package/dist/table/index.js +4 -4
- package/dist/transfer/index.js +2 -2
- package/dist/tree-select/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-52M2PO3O.js.map +0 -1
- package/dist/chunk-AOITJRSV.js.map +0 -1
- package/dist/chunk-CLLQDCDR.js.map +0 -1
- package/dist/chunk-H2HIBD5Y.js.map +0 -1
- package/dist/chunk-JZCHZ4B3.js.map +0 -1
- package/dist/chunk-KTBPIEP2.js.map +0 -1
- package/dist/chunk-SERJ3TZE.js.map +0 -1
- package/dist/chunk-W7BQYIXF.js.map +0 -1
- package/examples/README.md +0 -166
- package/examples/custom-theme.css +0 -189
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transfer/utils.ts","../src/transfer/index.tsx"],"names":[],"mappings":"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","file":"chunk-EYTOKUBM.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const transferHeaderVariants = cva(\n 'flex items-center justify-between px-4 py-2 border-b border-border bg-surface',\n)\n\nexport const transferBodyVariants = cva('overflow-y-auto')\n\nexport const transferItemVariants = cva(\n 'flex items-center gap-2 px-4 py-2 cursor-pointer transition-colors hover:bg-surface',\n {\n variants: {\n selected: {\n true: 'bg-primary/10',\n false: '',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed hover:bg-transparent',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nexport const transferButtonVariants = cva('flex flex-col gap-2')\n\nexport const transferActionButtonVariants = cva(\n 'flex items-center justify-center p-2 rounded-md border border-border bg-background text-text-muted hover:bg-primary hover:text-white hover:border-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background disabled:hover:text-text-muted disabled:hover:border-border',\n)\n\nexport const filterItems = (items: any[], searchValue: string): any[] => {\n if (!searchValue) return items\n\n const lowerSearch = searchValue.toLowerCase()\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(lowerSearch) ||\n item.description?.toLowerCase().includes(lowerSearch),\n )\n}\n\nexport const getItemsByKeys = (items: any[], keys: string[]): any[] => {\n return items.filter((item) => keys.includes(item.key))\n}\n\nexport const getEnabledItems = (items: any[]): any[] => {\n return items.filter((item) => !item.disabled)\n}\n","import {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n Search,\n} from 'lucide-react'\nimport React from 'react'\n\nimport Checkbox from '../checkbox'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { TransferItem, TransferListProps, TransferProps } from './types'\nimport {\n filterItems,\n getEnabledItems,\n getItemsByKeys,\n transferActionButtonVariants,\n transferBodyVariants,\n transferButtonVariants,\n transferHeaderVariants,\n transferItemVariants,\n} from './utils'\n\nconst TransferList = React.memo<TransferListProps>(\n ({\n title,\n dataSource,\n selectedKeys,\n disabled = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n onItemSelect,\n onItemSelectAll,\n onSearch,\n render,\n footer,\n }) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const filteredData = React.useMemo(\n () => filterItems(dataSource, searchValue),\n [dataSource, searchValue],\n )\n\n const enabledItems = React.useMemo(\n () => getEnabledItems(filteredData),\n [filteredData],\n )\n\n const selectedCount = React.useMemo(\n () =>\n filteredData.filter((item) => selectedKeys.includes(item.key)).length,\n [filteredData, selectedKeys],\n )\n\n const allChecked =\n enabledItems.length > 0 && selectedCount === enabledItems.length\n const indeterminate =\n selectedCount > 0 && selectedCount < enabledItems.length\n\n const handleSearchChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n onSearch?.(value)\n },\n [onSearch],\n )\n\n const handleSelectAll = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const keys = enabledItems.map((item) => item.key)\n onItemSelectAll(keys, checked)\n },\n [enabledItems, onItemSelectAll],\n )\n\n const handleItemSelect = React.useCallback(\n (item: TransferItem) => {\n if (item.disabled) return\n const checked = !selectedKeys.includes(item.key)\n onItemSelect(item.key, checked)\n },\n [selectedKeys, onItemSelect],\n )\n\n return (\n <div className=\"flex flex-col border border-border rounded-lg bg-card overflow-hidden min-w-72\">\n {/* Header */}\n <div className={transferHeaderVariants()}>\n <div className=\"flex items-center gap-2 flex-1\">\n {showSelectAll && (\n <Checkbox\n checked={allChecked}\n indeterminate={indeterminate}\n onChange={handleSelectAll}\n disabled={disabled || enabledItems.length === 0}\n size=\"sm\"\n />\n )}\n <span className=\"text-sm font-medium text-text-primary\">\n {title}\n <span className=\"text-text-muted ml-1\">\n ({selectedCount}/{filteredData.length})\n </span>\n </span>\n </div>\n </div>\n\n {/* Search */}\n {showSearch && (\n <div className=\"p-2 border-b border-border\">\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted\" />\n <input\n type=\"text\"\n className=\"w-full pl-8 pr-3 py-1.5 text-sm bg-background border border-border rounded-md outline-none focus:border-primary transition-colors\"\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearchChange}\n disabled={disabled}\n />\n </div>\n </div>\n )}\n\n {/* Body */}\n <div\n className={transferBodyVariants()}\n style={{ height: listHeight }}\n >\n {filteredData.length === 0 ? (\n <div className=\"flex items-center justify-center h-full text-sm text-text-muted\">\n No data\n </div>\n ) : (\n filteredData.map((item) => (\n <div\n key={item.key}\n className={cn(\n transferItemVariants({\n selected: selectedKeys.includes(item.key),\n disabled: !!item.disabled || disabled,\n }),\n )}\n onClick={() => handleItemSelect(item)}\n >\n <Checkbox\n checked={selectedKeys.includes(item.key)}\n disabled={!!item.disabled || disabled}\n size=\"sm\"\n onChange={() => {}} // Handled by parent click\n />\n {render ? (\n render(item)\n ) : (\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-text-primary truncate\">\n {item.label}\n </div>\n {item.description && (\n <div className=\"text-xs text-text-muted truncate\">\n {item.description}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-4 py-2 border-t border-border bg-surface text-sm text-text-muted\">\n {footer}\n </div>\n )}\n </div>\n )\n },\n)\n\nTransferList.displayName = 'TransferList'\n\nexport const Transfer = React.memo<TransferProps>(\n ({\n dataSource = [],\n targetKeys,\n defaultTargetKeys = [],\n titles = ['Source', 'Target'],\n size = 'md',\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n oneWay = false,\n disabled = false,\n render,\n footer,\n onChange,\n onSelectChange,\n onSearch,\n label,\n helperText,\n error,\n warning,\n info,\n success,\n className,\n ref,\n }) => {\n const [internalTargetKeys, setInternalTargetKeys] =\n React.useState<string[]>(defaultTargetKeys)\n const [leftSelectedKeys, setLeftSelectedKeys] = React.useState<string[]>([])\n const [rightSelectedKeys, setRightSelectedKeys] = React.useState<string[]>(\n [],\n )\n\n const currentTargetKeys =\n targetKeys !== undefined ? targetKeys : internalTargetKeys\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n // Split data into source and target\n const leftDataSource = React.useMemo(\n () => dataSource.filter((item) => !currentTargetKeys.includes(item.key)),\n [dataSource, currentTargetKeys],\n )\n\n const rightDataSource = React.useMemo(\n () => getItemsByKeys(dataSource, currentTargetKeys),\n [dataSource, currentTargetKeys],\n )\n\n const handleLeftItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...leftSelectedKeys, key]\n : leftSelectedKeys.filter((k) => k !== key)\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleRightItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...rightSelectedKeys, key]\n : rightSelectedKeys.filter((k) => k !== key)\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleLeftSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [rightSelectedKeys, onSelectChange],\n )\n\n const handleRightSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, onSelectChange],\n )\n\n const moveToRight = React.useCallback(() => {\n const newTargetKeys = [...currentTargetKeys, ...leftSelectedKeys]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', leftSelectedKeys)\n setLeftSelectedKeys([])\n }, [currentTargetKeys, leftSelectedKeys, targetKeys, onChange])\n\n const moveToLeft = React.useCallback(() => {\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !rightSelectedKeys.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', rightSelectedKeys)\n setRightSelectedKeys([])\n }, [currentTargetKeys, rightSelectedKeys, targetKeys, onChange])\n\n const moveAllToRight = React.useCallback(() => {\n const enabledLeftItems = getEnabledItems(leftDataSource)\n const keysToMove = enabledLeftItems.map((item) => item.key)\n const newTargetKeys = [...currentTargetKeys, ...keysToMove]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', keysToMove)\n setLeftSelectedKeys([])\n }, [leftDataSource, currentTargetKeys, targetKeys, onChange])\n\n const moveAllToLeft = React.useCallback(() => {\n const enabledRightItems = getEnabledItems(rightDataSource)\n const keysToMove = enabledRightItems.map((item) => item.key)\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !keysToMove.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', keysToMove)\n setRightSelectedKeys([])\n }, [rightDataSource, currentTargetKeys, targetKeys, onChange])\n\n const leftFooter = footer?.({ direction: 'left' })\n const rightFooter = footer?.({ direction: 'right' })\n\n return (\n <div ref={ref}>\n {label && (\n <label className=\"block mb-2\">\n <span className=\"text-sm font-medium text-text-muted\">{label}</span>\n </label>\n )}\n\n <div className={cn('flex items-center gap-4', className)}>\n {/* Left List */}\n <TransferList\n title={titles[0]}\n dataSource={leftDataSource}\n selectedKeys={leftSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"left\"\n onItemSelect={handleLeftItemSelect}\n onItemSelectAll={handleLeftSelectAll}\n onSearch={(value) => onSearch?.('left', value)}\n render={render}\n footer={leftFooter}\n size={size}\n />\n\n {/* Action Buttons */}\n <div className={transferButtonVariants()}>\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToRight}\n disabled={disabled || leftSelectedKeys.length === 0}\n title=\"Move selected to right\"\n >\n <ChevronRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToLeft}\n disabled={disabled || rightSelectedKeys.length === 0}\n title=\"Move selected to left\"\n >\n <ChevronLeft className={iconSizes[size]} />\n </button>\n )}\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToRight}\n disabled={disabled || leftDataSource.length === 0}\n title=\"Move all to right\"\n >\n <ChevronsRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToLeft}\n disabled={disabled || rightDataSource.length === 0}\n title=\"Move all to left\"\n >\n <ChevronsLeft className={iconSizes[size]} />\n </button>\n )}\n </div>\n\n {/* Right List */}\n <TransferList\n title={titles[1]}\n dataSource={rightDataSource}\n selectedKeys={rightSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"right\"\n onItemSelect={handleRightItemSelect}\n onItemSelectAll={handleRightSelectAll}\n onSearch={(value) => onSearch?.('right', value)}\n render={render}\n footer={rightFooter}\n size={size}\n />\n </div>\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTransfer.displayName = 'Transfer'\n\nexport type * from './types'\nexport type * from './types'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/transfer/utils.ts","../src/transfer/index.tsx"],"names":[],"mappings":"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","file":"chunk-BH4DXQC4.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const transferHeaderVariants = cva(\n 'flex items-center justify-between px-4 py-2 border-b border-border bg-surface',\n)\n\nexport const transferBodyVariants = cva('overflow-y-auto')\n\nexport const transferItemVariants = cva(\n 'flex items-center gap-2 px-4 py-2 cursor-pointer transition-colors hover:bg-surface',\n {\n variants: {\n selected: {\n true: 'bg-primary/10',\n false: '',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed hover:bg-transparent',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nexport const transferButtonVariants = cva('flex flex-col gap-2')\n\nexport const transferActionButtonVariants = cva(\n 'flex items-center justify-center p-2 rounded-md border border-border bg-background text-text-muted hover:bg-primary hover:text-white hover:border-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-background disabled:hover:text-text-muted disabled:hover:border-border',\n)\n\nexport const filterItems = (items: any[], searchValue: string): any[] => {\n if (!searchValue) return items\n\n const lowerSearch = searchValue.toLowerCase()\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(lowerSearch) ||\n item.description?.toLowerCase().includes(lowerSearch),\n )\n}\n\nexport const getItemsByKeys = (items: any[], keys: string[]): any[] => {\n return items.filter((item) => keys.includes(item.key))\n}\n\nexport const getEnabledItems = (items: any[]): any[] => {\n return items.filter((item) => !item.disabled)\n}\n","import {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n Search,\n} from 'lucide-react'\nimport React from 'react'\n\nimport Checkbox from '../checkbox'\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from '../utils'\nimport type { TransferItem, TransferListProps, TransferProps } from './types'\nimport {\n filterItems,\n getEnabledItems,\n getItemsByKeys,\n transferActionButtonVariants,\n transferBodyVariants,\n transferButtonVariants,\n transferHeaderVariants,\n transferItemVariants,\n} from './utils'\n\nconst TransferList = React.memo<TransferListProps>(\n ({\n title,\n dataSource,\n selectedKeys,\n disabled = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n onItemSelect,\n onItemSelectAll,\n onSearch,\n render,\n footer,\n }) => {\n const [searchValue, setSearchValue] = React.useState('')\n\n const filteredData = React.useMemo(\n () => filterItems(dataSource, searchValue),\n [dataSource, searchValue],\n )\n\n const enabledItems = React.useMemo(\n () => getEnabledItems(filteredData),\n [filteredData],\n )\n\n const selectedCount = React.useMemo(\n () =>\n filteredData.filter((item) => selectedKeys.includes(item.key)).length,\n [filteredData, selectedKeys],\n )\n\n const allChecked =\n enabledItems.length > 0 && selectedCount === enabledItems.length\n const indeterminate =\n selectedCount > 0 && selectedCount < enabledItems.length\n\n const handleSearchChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value\n setSearchValue(value)\n onSearch?.(value)\n },\n [onSearch],\n )\n\n const handleSelectAll = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.checked\n const keys = enabledItems.map((item) => item.key)\n onItemSelectAll(keys, checked)\n },\n [enabledItems, onItemSelectAll],\n )\n\n const handleItemSelect = React.useCallback(\n (item: TransferItem) => {\n if (item.disabled) return\n const checked = !selectedKeys.includes(item.key)\n onItemSelect(item.key, checked)\n },\n [selectedKeys, onItemSelect],\n )\n\n return (\n <div className=\"flex flex-col border border-border rounded-lg bg-card overflow-hidden min-w-72\">\n {/* Header */}\n <div className={transferHeaderVariants()}>\n <div className=\"flex items-center gap-2 flex-1\">\n {showSelectAll && (\n <Checkbox\n checked={allChecked}\n indeterminate={indeterminate}\n onChange={handleSelectAll}\n disabled={disabled || enabledItems.length === 0}\n size=\"sm\"\n />\n )}\n <span className=\"text-sm font-medium text-text-primary\">\n {title}\n <span className=\"text-text-muted ml-1\">\n ({selectedCount}/{filteredData.length})\n </span>\n </span>\n </div>\n </div>\n\n {/* Search */}\n {showSearch && (\n <div className=\"p-2 border-b border-border\">\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted\" />\n <input\n type=\"text\"\n className=\"w-full pl-8 pr-3 py-1.5 text-sm bg-background border border-border rounded-md outline-none focus:border-primary transition-colors\"\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearchChange}\n disabled={disabled}\n />\n </div>\n </div>\n )}\n\n {/* Body */}\n <div\n className={transferBodyVariants()}\n style={{ height: listHeight }}\n >\n {filteredData.length === 0 ? (\n <div className=\"flex items-center justify-center h-full text-sm text-text-muted\">\n No data\n </div>\n ) : (\n filteredData.map((item) => (\n <div\n key={item.key}\n className={cn(\n transferItemVariants({\n selected: selectedKeys.includes(item.key),\n disabled: !!item.disabled || disabled,\n }),\n )}\n onClick={() => handleItemSelect(item)}\n >\n <Checkbox\n checked={selectedKeys.includes(item.key)}\n disabled={!!item.disabled || disabled}\n size=\"sm\"\n onChange={() => {}} // Handled by parent click\n />\n {render ? (\n render(item)\n ) : (\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-text-primary truncate\">\n {item.label}\n </div>\n {item.description && (\n <div className=\"text-xs text-text-muted truncate\">\n {item.description}\n </div>\n )}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-4 py-2 border-t border-border bg-surface text-sm text-text-muted\">\n {footer}\n </div>\n )}\n </div>\n )\n },\n)\n\nTransferList.displayName = 'TransferList'\n\nexport const Transfer = React.memo<TransferProps>(\n ({\n dataSource = [],\n targetKeys,\n defaultTargetKeys = [],\n titles = ['Source', 'Target'],\n size = 'md',\n showSearch = false,\n searchPlaceholder = 'Search...',\n listHeight = 300,\n showSelectAll = true,\n oneWay = false,\n disabled = false,\n render,\n footer,\n onChange,\n onSelectChange,\n onSearch,\n label,\n helperText,\n error,\n warning,\n info,\n success,\n className,\n ref,\n }) => {\n const [internalTargetKeys, setInternalTargetKeys] =\n React.useState<string[]>(defaultTargetKeys)\n const [leftSelectedKeys, setLeftSelectedKeys] = React.useState<string[]>([])\n const [rightSelectedKeys, setRightSelectedKeys] = React.useState<string[]>(\n [],\n )\n\n const currentTargetKeys =\n targetKeys !== undefined ? targetKeys : internalTargetKeys\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n })\n\n // Split data into source and target\n const leftDataSource = React.useMemo(\n () => dataSource.filter((item) => !currentTargetKeys.includes(item.key)),\n [dataSource, currentTargetKeys],\n )\n\n const rightDataSource = React.useMemo(\n () => getItemsByKeys(dataSource, currentTargetKeys),\n [dataSource, currentTargetKeys],\n )\n\n const handleLeftItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...leftSelectedKeys, key]\n : leftSelectedKeys.filter((k) => k !== key)\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleRightItemSelect = React.useCallback(\n (key: string, checked: boolean) => {\n const newKeys = checked\n ? [...rightSelectedKeys, key]\n : rightSelectedKeys.filter((k) => k !== key)\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, rightSelectedKeys, onSelectChange],\n )\n\n const handleLeftSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setLeftSelectedKeys(newKeys)\n onSelectChange?.(newKeys, rightSelectedKeys)\n },\n [rightSelectedKeys, onSelectChange],\n )\n\n const handleRightSelectAll = React.useCallback(\n (keys: string[], checked: boolean) => {\n const newKeys = checked ? keys : []\n setRightSelectedKeys(newKeys)\n onSelectChange?.(leftSelectedKeys, newKeys)\n },\n [leftSelectedKeys, onSelectChange],\n )\n\n const moveToRight = React.useCallback(() => {\n const newTargetKeys = [...currentTargetKeys, ...leftSelectedKeys]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', leftSelectedKeys)\n setLeftSelectedKeys([])\n }, [currentTargetKeys, leftSelectedKeys, targetKeys, onChange])\n\n const moveToLeft = React.useCallback(() => {\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !rightSelectedKeys.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', rightSelectedKeys)\n setRightSelectedKeys([])\n }, [currentTargetKeys, rightSelectedKeys, targetKeys, onChange])\n\n const moveAllToRight = React.useCallback(() => {\n const enabledLeftItems = getEnabledItems(leftDataSource)\n const keysToMove = enabledLeftItems.map((item) => item.key)\n const newTargetKeys = [...currentTargetKeys, ...keysToMove]\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'right', keysToMove)\n setLeftSelectedKeys([])\n }, [leftDataSource, currentTargetKeys, targetKeys, onChange])\n\n const moveAllToLeft = React.useCallback(() => {\n const enabledRightItems = getEnabledItems(rightDataSource)\n const keysToMove = enabledRightItems.map((item) => item.key)\n const newTargetKeys = currentTargetKeys.filter(\n (key) => !keysToMove.includes(key),\n )\n\n if (targetKeys === undefined) {\n setInternalTargetKeys(newTargetKeys)\n }\n\n onChange?.(newTargetKeys, 'left', keysToMove)\n setRightSelectedKeys([])\n }, [rightDataSource, currentTargetKeys, targetKeys, onChange])\n\n const leftFooter = footer?.({ direction: 'left' })\n const rightFooter = footer?.({ direction: 'right' })\n\n return (\n <div ref={ref}>\n {label && (\n <label className=\"block mb-2\">\n <span className=\"text-sm font-medium text-text-muted\">{label}</span>\n </label>\n )}\n\n <div className={cn('flex items-center gap-4', className)}>\n {/* Left List */}\n <TransferList\n title={titles[0]}\n dataSource={leftDataSource}\n selectedKeys={leftSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"left\"\n onItemSelect={handleLeftItemSelect}\n onItemSelectAll={handleLeftSelectAll}\n onSearch={(value) => onSearch?.('left', value)}\n render={render}\n footer={leftFooter}\n size={size}\n />\n\n {/* Action Buttons */}\n <div className={transferButtonVariants()}>\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToRight}\n disabled={disabled || leftSelectedKeys.length === 0}\n title=\"Move selected to right\"\n >\n <ChevronRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveToLeft}\n disabled={disabled || rightSelectedKeys.length === 0}\n title=\"Move selected to left\"\n >\n <ChevronLeft className={iconSizes[size]} />\n </button>\n )}\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToRight}\n disabled={disabled || leftDataSource.length === 0}\n title=\"Move all to right\"\n >\n <ChevronsRight className={iconSizes[size]} />\n </button>\n {!oneWay && (\n <button\n type=\"button\"\n className={transferActionButtonVariants()}\n onClick={moveAllToLeft}\n disabled={disabled || rightDataSource.length === 0}\n title=\"Move all to left\"\n >\n <ChevronsLeft className={iconSizes[size]} />\n </button>\n )}\n </div>\n\n {/* Right List */}\n <TransferList\n title={titles[1]}\n dataSource={rightDataSource}\n selectedKeys={rightSelectedKeys}\n disabled={disabled}\n showSearch={showSearch}\n searchPlaceholder={searchPlaceholder}\n listHeight={listHeight}\n showSelectAll={showSelectAll}\n direction=\"right\"\n onItemSelect={handleRightItemSelect}\n onItemSelectAll={handleRightSelectAll}\n onSearch={(value) => onSearch?.('right', value)}\n render={render}\n footer={rightFooter}\n size={size}\n />\n </div>\n\n {helperMessage && (\n <p className={cn(statusMessageVariants({ status }), 'mt-1')}>\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTransfer.displayName = 'Transfer'\n\nexport type * from './types'\nexport type * from './types'\n"]}
|
|
@@ -19,7 +19,7 @@ var cascaderTriggerVariants = cva(
|
|
|
19
19
|
info: "bg-background border-info"
|
|
20
20
|
},
|
|
21
21
|
size: {
|
|
22
|
-
xs: "h-
|
|
22
|
+
xs: "h-[var(--select-height-xs)] px-[var(--select-padding-x-xs)] text-xs",
|
|
23
23
|
sm: "h-[var(--input-height-sm)] px-2.5 text-sm",
|
|
24
24
|
md: "h-[var(--input-height-md)] px-3 text-base",
|
|
25
25
|
lg: "h-[var(--input-height-lg)] px-3 text-lg"
|
|
@@ -636,5 +636,5 @@ Cascader.displayName = "Cascader";
|
|
|
636
636
|
var cascader_default = Cascader;
|
|
637
637
|
|
|
638
638
|
export { cascader_default };
|
|
639
|
-
//# sourceMappingURL=chunk-
|
|
640
|
-
//# sourceMappingURL=chunk-
|
|
639
|
+
//# sourceMappingURL=chunk-G6TAVRTJ.js.map
|
|
640
|
+
//# sourceMappingURL=chunk-G6TAVRTJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cascader/index.tsx"],"names":["selectedPath"],"mappings":"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","file":"chunk-G6TAVRTJ.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-[var(--select-height-xs)] px-[var(--select-padding-x-xs)] 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"]}
|
|
@@ -17,7 +17,7 @@ var radioVariants = cva(
|
|
|
17
17
|
info: "checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]"
|
|
18
18
|
},
|
|
19
19
|
size: {
|
|
20
|
-
xs: "w-
|
|
20
|
+
xs: "w-[var(--checkbox-size-xs)] h-[var(--checkbox-size-xs)]",
|
|
21
21
|
sm: "w-[var(--checkbox-size-sm)] h-[var(--checkbox-size-sm)]",
|
|
22
22
|
md: "w-[var(--checkbox-size-md)] h-[var(--checkbox-size-md)]",
|
|
23
23
|
lg: "w-[var(--checkbox-size-lg)] h-[var(--checkbox-size-lg)]"
|
|
@@ -98,5 +98,5 @@ Radio.displayName = "Radio";
|
|
|
98
98
|
var radio_default = Radio;
|
|
99
99
|
|
|
100
100
|
export { radio_default };
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-GEWR5ROK.js.map
|
|
102
|
+
//# sourceMappingURL=chunk-GEWR5ROK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/radio/index.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,6IAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO;AAAA,QACL,OAAA,EACE,uHAAA;AAAA,QACF,SAAA,EACE,2HAAA;AAAA,QACF,MAAA,EACE,qHAAA;AAAA,QACF,OAAA,EACE,uHAAA;AAAA,QACF,KAAA,EACE,mHAAA;AAAA,QACF,OAAA,EACE,uHAAA;AAAA,QACF,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,yDAAA;AAAA,QACJ,EAAA,EAAI,yDAAA;AAAA,QACJ,EAAA,EAAI,yDAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,mCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,EAClB,CAAC;AAAA,IACC,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,KAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,aAAA,CAAc,EAAE,KAAA,EAAO,IAAA,EAAM,OAAO,CAAC,CAAC,OAAO,CAAA;AAAA,UAC7C;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,UAAA,IAAc,CAAC,OAAO,OAAO,YAAA;AAE5C,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,yBAAA;AAAA,YACA,CAAC,MAAM,QAAA,IAAY;AAAA,WACrB;AAAA,UAEC,QAAA,EAAA;AAAA,YAAA,YAAA;AAAA,YACA,KAAA,oBACC,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,yCAAA;AAAA,kBACA,KAAA,IAAS,YAAA;AAAA,kBACT,MAAM,QAAA,IAAY;AAAA,iBACpB;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,OAEJ;AAAA,MAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,mBAAA;AAAA,YACA,QAAQ,YAAA,GAAe;AAAA,WACzB;AAAA,UAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA;AACZ,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAO,aAAA,GAAQ","file":"chunk-GEWR5ROK.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { RadioProps } from './types'\n\nconst radioVariants = cva(\n 'appearance-none rounded-full border-border border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none',\n {\n variants: {\n color: {\n primary:\n 'checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]',\n secondary:\n 'checked:border-secondary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-secondary)]',\n accent:\n 'checked:border-accent checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-accent)]',\n success:\n 'checked:border-success checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-success)]',\n error:\n 'checked:border-error checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-error)]',\n warning:\n 'checked:border-warning checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-warning)]',\n info: 'checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]',\n },\n size: {\n xs: 'w-[var(--checkbox-size-xs)] h-[var(--checkbox-size-xs)]',\n sm: 'w-[var(--checkbox-size-sm)] h-[var(--checkbox-size-sm)]',\n md: 'w-[var(--checkbox-size-md)] h-[var(--checkbox-size-md)]',\n lg: 'w-[var(--checkbox-size-lg)] h-[var(--checkbox-size-lg)]',\n },\n error: {\n true: 'border-error checked:border-error',\n false: '',\n },\n },\n defaultVariants: {\n color: 'primary',\n size: 'md',\n },\n },\n)\n\nconst Radio = React.memo<RadioProps>(\n ({\n color = 'primary',\n size = 'md',\n label,\n helperText,\n error,\n className,\n ref,\n ...props\n }) => {\n const radioElement = (\n <input\n ref={ref}\n type=\"radio\"\n className={cn(\n radioVariants({ color, size, error: !!error }),\n className,\n )}\n {...props}\n />\n )\n\n if (!label && !helperText && !error) return radioElement\n\n return (\n <div className=\"w-full\">\n <label\n className={cn(\n 'flex items-center gap-2',\n !props.disabled && 'cursor-pointer',\n )}\n >\n {radioElement}\n {label && (\n <span\n className={cn(\n 'text-sm text-text-secondary select-none',\n error && 'text-error',\n props.disabled && 'opacity-50',\n )}\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n className={cn(\n 'mt-1 ml-0 text-xs',\n error ? 'text-error' : 'text-text-secondary',\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nRadio.displayName = 'Radio'\n\nexport type * from './types'\nexport default Radio\n"]}
|
|
@@ -317,7 +317,7 @@ var Progress = React.memo(
|
|
|
317
317
|
),
|
|
318
318
|
style: {
|
|
319
319
|
...striped && isCompleted && {
|
|
320
|
-
backgroundImage: "linear-gradient(45deg,
|
|
320
|
+
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
321
321
|
backgroundSize: "1rem 1rem"
|
|
322
322
|
}
|
|
323
323
|
}
|
|
@@ -357,7 +357,7 @@ var Progress = React.memo(
|
|
|
357
357
|
),
|
|
358
358
|
style: {
|
|
359
359
|
...striped && isCompleted && {
|
|
360
|
-
backgroundImage: "linear-gradient(45deg,
|
|
360
|
+
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
361
361
|
backgroundSize: "1rem 1rem"
|
|
362
362
|
}
|
|
363
363
|
}
|
|
@@ -397,7 +397,7 @@ var Progress = React.memo(
|
|
|
397
397
|
style: {
|
|
398
398
|
height: `${clampedValue}%`,
|
|
399
399
|
...striped && {
|
|
400
|
-
backgroundImage: "linear-gradient(45deg,
|
|
400
|
+
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
401
401
|
backgroundSize: "1rem 1rem"
|
|
402
402
|
}
|
|
403
403
|
}
|
|
@@ -433,7 +433,7 @@ var Progress = React.memo(
|
|
|
433
433
|
style: {
|
|
434
434
|
width: `${clampedValue}%`,
|
|
435
435
|
...striped && {
|
|
436
|
-
backgroundImage: "linear-gradient(45deg,
|
|
436
|
+
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
437
437
|
backgroundSize: "1rem 1rem"
|
|
438
438
|
}
|
|
439
439
|
}
|
|
@@ -448,5 +448,5 @@ Progress.displayName = "Progress";
|
|
|
448
448
|
var progress_default = Progress;
|
|
449
449
|
|
|
450
450
|
export { progress_default };
|
|
451
|
-
//# sourceMappingURL=chunk-
|
|
452
|
-
//# sourceMappingURL=chunk-
|
|
451
|
+
//# sourceMappingURL=chunk-JLTDJ3VZ.js.map
|
|
452
|
+
//# sourceMappingURL=chunk-JLTDJ3VZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/progress/index.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,EAAE,IAAA,EAAM,EAAA,EAAI,aAAa,CAAA,EAAE;AAAA,EAC/B,EAAA,EAAI,EAAE,IAAA,EAAM,EAAA,EAAI,aAAa,CAAA,EAAE;AAAA,EAC/B,EAAA,EAAI,EAAE,IAAA,EAAM,GAAA,EAAK,aAAa,CAAA,EAAE;AAAA,EAChC,EAAA,EAAI,EAAE,IAAA,EAAM,GAAA,EAAK,aAAa,EAAA;AAChC,CAAA;AAEA,IAAM,yBAAA,GAA4B,IAAI,qCAAA,EAAuC;AAAA,EAC3E,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,mBAAA,GAAsB,GAAA;AAAA,EAC1B,6DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,qBAAA,GAAwB;AAAA,EAC5B,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,cAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,aAAA;AAAA,IACT,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,cAAA,GAAiB;AAAA,EACrB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,iCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,yCAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,mCAAA;AAAA,IACT,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,iCAAA;AAAA,IACT,KAAA,EAAO,UAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,+BAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,kBAAA,GAAqB;AAAA,EACzB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,kBAAA;AAAA,IACT,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,cAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,aAAA;AAAA,IACT,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,iBAAA,GAAoB;AAAA,EACxB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,qBAAA;AAAA,IACT,KAAA,EAAO,qBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,kBAAA;AAAA,IACT,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,iBAAA;AAAA,IACT,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,WAAW,KAAA,CAAM,IAAA;AAAA,EACrB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,MAAA;AAAA,IACP,WAAA,GAAc,YAAA;AAAA,IACd,YAAA,GAAe,KAAA;AAAA,IACf,KAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA,GAAa;AAAA,GACf,KAAM;AACJ,IAAA,MAAM,YAAA,GAAe,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,CAAC,GAAG,GAAG,CAAA;AAErD,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAY,WAAA,EAAY,GAAI,YAAY,IAAI,CAAA;AAC1D,MAAA,MAAM,MAAA,GAAA,CAAU,aAAa,WAAA,IAAe,CAAA;AAC5C,MAAA,MAAM,aAAA,GAAgB,CAAA,GAAI,IAAA,CAAK,EAAA,GAAK,MAAA;AACpC,MAAA,MAAM,MAAA,GAAS,aAAA,GAAiB,YAAA,GAAe,GAAA,GAAO,aAAA;AAEtD,MAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA,EAC/D,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,UAAA;AAAA,UACV,KAAA,EAAO,EAAE,KAAA,EAAO,UAAA,EAAY,QAAQ,UAAA,EAAW;AAAA,UAE/C,QAAA,EAAA;AAAA,4BAAA,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO,UAAA;AAAA,gBACP,MAAA,EAAQ,UAAA;AAAA,gBACR,SAAA,EAAU,sBAAA;AAAA,gBAGV,QAAA,EAAA;AAAA,kCAAA,GAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,CAAA,EAAG,MAAA;AAAA,sBACH,IAAA,EAAK,MAAA;AAAA,sBACL,WAAA;AAAA,sBACA,SAAA,EAAW,iBAAA,CAAkB,KAAK,CAAA,CAAE,OAAO;AAAA;AAAA,mBAC7C;AAAA,kCACA,GAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,CAAA,EAAG,MAAA;AAAA,sBACH,IAAA,EAAK,MAAA;AAAA,sBACL,WAAA;AAAA,sBACA,eAAA,EAAiB,aAAA;AAAA,sBACjB,gBAAA,EAAkB,MAAA;AAAA,sBAClB,aAAA,EAAc,OAAA;AAAA,sBACd,SAAA,EAAW,EAAA;AAAA,wBACT,kBAAA,CAAmB,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,wBACjC;AAAA;AACF;AAAA;AACF;AAAA;AAAA,aACF;AAAA,4BAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4DAAA,EACZ,QAAA,EAAA,KAAA,uBACE,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAA,KAAA,EAAM,CAAA,mBAE5C,IAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,iCAAA;AAAA,gBACV,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,GAAa,CAAA,EAAE;AAAA,gBAEjC,QAAA,EAAA;AAAA,kBAAA,YAAA;AAAA,kBAAa;AAAA;AAAA;AAAA,aAChB,EAEJ;AAAA;AAAA;AAAA,OACF,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,IAAA,CAAM,YAAA,GAAe,MAAO,UAAU,CAAA;AAE/D,MAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,QAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EACjD,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,YAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,cAAA,YAAA;AAAA,cAAa;AAAA,aAAA,EAAC;AAAA,WAAA,EAEjD,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,iEAAA;AAAA,gBACA,IAAA,KAAS,OACL,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA;AAAA,eACV;AAAA,cAEC,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,YAAW,EAAG,CAAC,GAAG,KAAA,KAAU;AAChD,gBAAA,MAAM,aAAa,KAAA,GAAQ,CAAA;AAC3B,gBAAA,MAAM,cAAc,UAAA,IAAc,WAAA;AAElC,gBAAA,uBACE,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBAEC,SAAA,EAAW,EAAA;AAAA,sBACT,2CAAA;AAAA,sBACA,WAAA,GACI,eAAe,KAAK,CAAA,CAAE,OAAO,CAAA,GAC7B,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,sBACxC,YAAY,OAAA,IAAW;AAAA,qBACzB;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,GAAI,WACF,WAAA,IAAe;AAAA,wBACb,eAAA,EACE,qLAAA;AAAA,wBACF,cAAA,EAAgB;AAAA;AAClB;AACJ,mBAAA;AAAA,kBAfK;AAAA,iBAgBP;AAAA,cAEJ,CAAC;AAAA;AAAA;AACH,SAAA,EACF,CAAA;AAAA,MAEJ;AAGA,MAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EACnC,QAAA,EAAA;AAAA,QAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,UAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,YAAA,YAAA;AAAA,YAAa;AAAA,WAAA,EAAC;AAAA,SAAA,EAEjD,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,gDAAA;AAAA,cACA,yBAAA,CAA0B,EAAE,IAAA,EAAM;AAAA,aACpC;AAAA,YAEC,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,YAAW,EAAG,CAAC,GAAG,KAAA,KAAU;AAChD,cAAA,MAAM,aAAa,KAAA,GAAQ,CAAA;AAC3B,cAAA,MAAM,cAAc,UAAA,IAAc,WAAA;AAElC,cAAA,uBACE,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAW,EAAA;AAAA,oBACT,2CAAA;AAAA,oBACA,WAAA,GACI,eAAe,KAAK,CAAA,CAAE,OAAO,CAAA,GAC7B,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,oBACxC,YAAY,OAAA,IAAW;AAAA,mBACzB;AAAA,kBACA,KAAA,EAAO;AAAA,oBACL,GAAI,WACF,WAAA,IAAe;AAAA,sBACb,eAAA,EACE,qLAAA;AAAA,sBACF,cAAA,EAAgB;AAAA;AAClB;AACJ,iBAAA;AAAA,gBAfK;AAAA,eAgBP;AAAA,YAEJ,CAAC;AAAA;AAAA;AACH,OAAA,EACF,CAAA;AAAA,IAEJ;AAGA,IAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,MAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EACjD,QAAA,EAAA;AAAA,QAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,UAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,YAAA,YAAA;AAAA,YAAa;AAAA,WAAA,EAAC;AAAA,SAAA,EAEjD,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,+DAAA;AAAA,cACA,IAAA,KAAS,OACL,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA,KAAA;AAAA,cACR,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO;AAAA,aACtC;AAAA,YAEA,QAAA,kBAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,6DAAA;AAAA,kBACA,cAAA,CAAe,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,kBAC7B,YAAY,OAAA,IAAW;AAAA,iBACzB;AAAA,gBACA,KAAA,EAAO;AAAA,kBACL,MAAA,EAAQ,GAAG,YAAY,CAAA,CAAA,CAAA;AAAA,kBACvB,GAAI,OAAA,IAAW;AAAA,oBACb,eAAA,EACE,qLAAA;AAAA,oBACF,cAAA,EAAgB;AAAA;AAClB;AACF;AAAA;AACF;AAAA;AACF,OAAA,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EACnC,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,QAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UAAa;AAAA,SAAA,EAAC;AAAA,OAAA,EAEjD,CAAA;AAAA,sBAEF,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,yBAAA,CAA0B,EAAE,IAAA,EAAM,CAAA;AAAA,YAClC,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO;AAAA,WACtC;AAAA,UAEA,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAA;AAAA,gBAC5B,cAAA,CAAe,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,gBAC7B,YAAY,OAAA,IAAW;AAAA,eACzB;AAAA,cACA,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO,GAAG,YAAY,CAAA,CAAA,CAAA;AAAA,gBACtB,GAAI,OAAA,IAAW;AAAA,kBACb,eAAA,EACE,qLAAA;AAAA,kBACF,cAAA,EAAgB;AAAA;AAClB;AACF;AAAA;AACF;AAAA;AACF,KAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAGvB,IAAO,gBAAA,GAAQ","file":"chunk-RQBXZKTH.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { ProgressProps } from './types'\n\nconst circleSizes = {\n xs: { size: 60, strokeWidth: 4 },\n sm: { size: 80, strokeWidth: 6 },\n md: { size: 120, strokeWidth: 8 },\n lg: { size: 160, strokeWidth: 10 },\n}\n\nconst progressContainerVariants = cva('w-full rounded-full overflow-hidden', {\n variants: {\n size: {\n xs: 'h-1',\n sm: 'h-2',\n md: 'h-3',\n lg: 'h-4',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst progressBarVariants = cva(\n 'h-full transition-all duration-300 ease-in-out rounded-full',\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 backgroundColorStyles = {\n default: {\n default: 'bg-surface',\n solid: 'bg-surface',\n soft: 'bg-surface/50',\n },\n primary: {\n default: 'bg-primary/10',\n solid: 'bg-primary/20',\n soft: 'bg-primary/10',\n },\n secondary: {\n default: 'bg-secondary/10',\n solid: 'bg-secondary/20',\n soft: 'bg-secondary/10',\n },\n accent: {\n default: 'bg-accent/10',\n solid: 'bg-accent/20',\n soft: 'bg-accent/10',\n },\n success: {\n default: 'bg-success/10',\n solid: 'bg-success/20',\n soft: 'bg-success/10',\n },\n error: {\n default: 'bg-error/10',\n solid: 'bg-error/20',\n soft: 'bg-error/10',\n },\n warning: {\n default: 'bg-warning/10',\n solid: 'bg-warning/20',\n soft: 'bg-warning/10',\n },\n info: {\n default: 'bg-info/10',\n solid: 'bg-info/20',\n soft: 'bg-info/10',\n },\n}\n\nconst barColorStyles = {\n default: {\n default: 'bg-surface border border-border',\n solid: 'bg-surface',\n soft: 'bg-surface/80',\n },\n primary: {\n default: 'bg-primary/20 border border-primary',\n solid: 'bg-primary',\n soft: 'bg-primary/60',\n },\n secondary: {\n default: 'bg-secondary/20 border border-secondary',\n solid: 'bg-secondary',\n soft: 'bg-secondary/60',\n },\n accent: {\n default: 'bg-accent/20 border border-accent',\n solid: 'bg-accent',\n soft: 'bg-accent/60',\n },\n success: {\n default: 'bg-success/20 border border-success',\n solid: 'bg-success',\n soft: 'bg-success/60',\n },\n error: {\n default: 'bg-error/20 border border-error',\n solid: 'bg-error',\n soft: 'bg-error/60',\n },\n warning: {\n default: 'bg-warning/20 border border-warning',\n solid: 'bg-warning',\n soft: 'bg-warning/60',\n },\n info: {\n default: 'bg-info/20 border border-info',\n solid: 'bg-info',\n soft: 'bg-info/60',\n },\n}\n\nconst circleStrokeColors = {\n default: {\n default: 'stroke-surface',\n solid: 'stroke-surface',\n soft: 'stroke-surface/80',\n },\n primary: {\n default: 'stroke-primary',\n solid: 'stroke-primary',\n soft: 'stroke-primary/60',\n },\n secondary: {\n default: 'stroke-secondary',\n solid: 'stroke-secondary',\n soft: 'stroke-secondary/60',\n },\n accent: {\n default: 'stroke-accent',\n solid: 'stroke-accent',\n soft: 'stroke-accent/60',\n },\n success: {\n default: 'stroke-success',\n solid: 'stroke-success',\n soft: 'stroke-success/60',\n },\n error: {\n default: 'stroke-error',\n solid: 'stroke-error',\n soft: 'stroke-error/60',\n },\n warning: {\n default: 'stroke-warning',\n solid: 'stroke-warning',\n soft: 'stroke-warning/60',\n },\n info: {\n default: 'stroke-info',\n solid: 'stroke-info',\n soft: 'stroke-info/60',\n },\n}\n\nconst circleTrailColors = {\n default: {\n default: 'stroke-surface',\n solid: 'stroke-surface',\n soft: 'stroke-surface/50',\n },\n primary: {\n default: 'stroke-primary/10',\n solid: 'stroke-primary/20',\n soft: 'stroke-primary/10',\n },\n secondary: {\n default: 'stroke-secondary/10',\n solid: 'stroke-secondary/20',\n soft: 'stroke-secondary/10',\n },\n accent: {\n default: 'stroke-accent/10',\n solid: 'stroke-accent/20',\n soft: 'stroke-accent/10',\n },\n success: {\n default: 'stroke-success/10',\n solid: 'stroke-success/20',\n soft: 'stroke-success/10',\n },\n error: {\n default: 'stroke-error/10',\n solid: 'stroke-error/20',\n soft: 'stroke-error/10',\n },\n warning: {\n default: 'stroke-warning/10',\n solid: 'stroke-warning/20',\n soft: 'stroke-warning/10',\n },\n info: {\n default: 'stroke-info/10',\n solid: 'stroke-info/20',\n soft: 'stroke-info/10',\n },\n}\n\nconst Progress = React.memo<ProgressProps>(\n ({\n value,\n color = 'primary',\n size = 'md',\n variant = 'default',\n type = 'line',\n orientation = 'horizontal',\n showProgress = false,\n label,\n striped = false,\n animated = false,\n className,\n totalSteps = 5,\n }) => {\n const clampedValue = Math.min(Math.max(value, 0), 100)\n\n if (type === 'circle') {\n const { size: circleSize, strokeWidth } = circleSizes[size]\n const radius = (circleSize - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const offset = circumference - (clampedValue / 100) * circumference\n\n return (\n <div className={cn('inline-flex flex-col items-center', className)}>\n <div\n className=\"relative\"\n style={{ width: circleSize, height: circleSize }}\n >\n <svg\n width={circleSize}\n height={circleSize}\n className=\"transform -rotate-90\"\n >\n {/* Background circle */}\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n className={circleTrailColors[color][variant]}\n />\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className={cn(\n circleStrokeColors[color][variant],\n 'transition-all duration-300 ease-in-out',\n )}\n />\n </svg>\n {/* Center text */}\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n {label ? (\n <div className=\"p-2 text-text-muted\">{label}</div>\n ) : (\n <span\n className=\"text-text-primary font-semibold\"\n style={{ fontSize: circleSize / 7 }}\n >\n {clampedValue}%\n </span>\n )}\n </div>\n </div>\n </div>\n )\n }\n\n if (type === 'step') {\n const currentStep = Math.ceil((clampedValue / 100) * totalSteps)\n\n if (orientation === 'vertical') {\n return (\n <div className={cn('h-full flex flex-col', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex-1 rounded-full overflow-hidden flex flex-col-reverse gap-1',\n size === 'xs'\n ? 'w-1'\n : size === 'sm'\n ? 'w-2'\n : size === 'md'\n ? 'w-3'\n : 'w-4',\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1\n const isCompleted = stepNumber <= currentStep\n\n return (\n <div\n key={index}\n className={cn(\n 'w-full rounded-full transition-all flex-1',\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n ...(striped &&\n isCompleted && {\n backgroundImage:\n 'linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n )\n })}\n </div>\n </div>\n )\n }\n\n // Horizontal step progress\n return (\n <div className={cn('w-full', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'w-full rounded-full overflow-hidden flex gap-1',\n progressContainerVariants({ size }),\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1\n const isCompleted = stepNumber <= currentStep\n\n return (\n <div\n key={index}\n className={cn(\n 'h-full rounded-full transition-all flex-1',\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n ...(striped &&\n isCompleted && {\n backgroundImage:\n 'linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n )\n })}\n </div>\n </div>\n )\n }\n\n // Line progress (horizontal or vertical)\n if (orientation === 'vertical') {\n return (\n <div className={cn('h-full flex flex-col', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex-1 rounded-full overflow-hidden flex flex-col justify-end',\n size === 'xs'\n ? 'w-1'\n : size === 'sm'\n ? 'w-2'\n : size === 'md'\n ? 'w-3'\n : 'w-4',\n backgroundColorStyles[color][variant],\n )}\n >\n <div\n className={cn(\n 'w-full transition-all duration-300 ease-in-out rounded-full',\n barColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n height: `${clampedValue}%`,\n ...(striped && {\n backgroundImage:\n 'linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n </div>\n </div>\n )\n }\n\n return (\n <div className={cn('w-full', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n progressContainerVariants({ size }),\n backgroundColorStyles[color][variant],\n )}\n >\n <div\n className={cn(\n progressBarVariants({ size }),\n barColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n width: `${clampedValue}%`,\n ...(striped && {\n backgroundImage:\n 'linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n </div>\n </div>\n )\n },\n)\n\nProgress.displayName = 'Progress'\n\nexport type * from './types'\nexport default Progress\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/progress/index.tsx"],"names":[],"mappings":"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","file":"chunk-JLTDJ3VZ.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { ProgressProps } from './types'\n\nconst circleSizes = {\n xs: { size: 60, strokeWidth: 4 },\n sm: { size: 80, strokeWidth: 6 },\n md: { size: 120, strokeWidth: 8 },\n lg: { size: 160, strokeWidth: 10 },\n}\n\nconst progressContainerVariants = cva('w-full rounded-full overflow-hidden', {\n variants: {\n size: {\n xs: 'h-1',\n sm: 'h-2',\n md: 'h-3',\n lg: 'h-4',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst progressBarVariants = cva(\n 'h-full transition-all duration-300 ease-in-out rounded-full',\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 backgroundColorStyles = {\n default: {\n default: 'bg-surface',\n solid: 'bg-surface',\n soft: 'bg-surface/50',\n },\n primary: {\n default: 'bg-primary/10',\n solid: 'bg-primary/20',\n soft: 'bg-primary/10',\n },\n secondary: {\n default: 'bg-secondary/10',\n solid: 'bg-secondary/20',\n soft: 'bg-secondary/10',\n },\n accent: {\n default: 'bg-accent/10',\n solid: 'bg-accent/20',\n soft: 'bg-accent/10',\n },\n success: {\n default: 'bg-success/10',\n solid: 'bg-success/20',\n soft: 'bg-success/10',\n },\n error: {\n default: 'bg-error/10',\n solid: 'bg-error/20',\n soft: 'bg-error/10',\n },\n warning: {\n default: 'bg-warning/10',\n solid: 'bg-warning/20',\n soft: 'bg-warning/10',\n },\n info: {\n default: 'bg-info/10',\n solid: 'bg-info/20',\n soft: 'bg-info/10',\n },\n}\n\nconst barColorStyles = {\n default: {\n default: 'bg-surface border border-border',\n solid: 'bg-surface',\n soft: 'bg-surface/80',\n },\n primary: {\n default: 'bg-primary/20 border border-primary',\n solid: 'bg-primary',\n soft: 'bg-primary/60',\n },\n secondary: {\n default: 'bg-secondary/20 border border-secondary',\n solid: 'bg-secondary',\n soft: 'bg-secondary/60',\n },\n accent: {\n default: 'bg-accent/20 border border-accent',\n solid: 'bg-accent',\n soft: 'bg-accent/60',\n },\n success: {\n default: 'bg-success/20 border border-success',\n solid: 'bg-success',\n soft: 'bg-success/60',\n },\n error: {\n default: 'bg-error/20 border border-error',\n solid: 'bg-error',\n soft: 'bg-error/60',\n },\n warning: {\n default: 'bg-warning/20 border border-warning',\n solid: 'bg-warning',\n soft: 'bg-warning/60',\n },\n info: {\n default: 'bg-info/20 border border-info',\n solid: 'bg-info',\n soft: 'bg-info/60',\n },\n}\n\nconst circleStrokeColors = {\n default: {\n default: 'stroke-surface',\n solid: 'stroke-surface',\n soft: 'stroke-surface/80',\n },\n primary: {\n default: 'stroke-primary',\n solid: 'stroke-primary',\n soft: 'stroke-primary/60',\n },\n secondary: {\n default: 'stroke-secondary',\n solid: 'stroke-secondary',\n soft: 'stroke-secondary/60',\n },\n accent: {\n default: 'stroke-accent',\n solid: 'stroke-accent',\n soft: 'stroke-accent/60',\n },\n success: {\n default: 'stroke-success',\n solid: 'stroke-success',\n soft: 'stroke-success/60',\n },\n error: {\n default: 'stroke-error',\n solid: 'stroke-error',\n soft: 'stroke-error/60',\n },\n warning: {\n default: 'stroke-warning',\n solid: 'stroke-warning',\n soft: 'stroke-warning/60',\n },\n info: {\n default: 'stroke-info',\n solid: 'stroke-info',\n soft: 'stroke-info/60',\n },\n}\n\nconst circleTrailColors = {\n default: {\n default: 'stroke-surface',\n solid: 'stroke-surface',\n soft: 'stroke-surface/50',\n },\n primary: {\n default: 'stroke-primary/10',\n solid: 'stroke-primary/20',\n soft: 'stroke-primary/10',\n },\n secondary: {\n default: 'stroke-secondary/10',\n solid: 'stroke-secondary/20',\n soft: 'stroke-secondary/10',\n },\n accent: {\n default: 'stroke-accent/10',\n solid: 'stroke-accent/20',\n soft: 'stroke-accent/10',\n },\n success: {\n default: 'stroke-success/10',\n solid: 'stroke-success/20',\n soft: 'stroke-success/10',\n },\n error: {\n default: 'stroke-error/10',\n solid: 'stroke-error/20',\n soft: 'stroke-error/10',\n },\n warning: {\n default: 'stroke-warning/10',\n solid: 'stroke-warning/20',\n soft: 'stroke-warning/10',\n },\n info: {\n default: 'stroke-info/10',\n solid: 'stroke-info/20',\n soft: 'stroke-info/10',\n },\n}\n\nconst Progress = React.memo<ProgressProps>(\n ({\n value,\n color = 'primary',\n size = 'md',\n variant = 'default',\n type = 'line',\n orientation = 'horizontal',\n showProgress = false,\n label,\n striped = false,\n animated = false,\n className,\n totalSteps = 5,\n }) => {\n const clampedValue = Math.min(Math.max(value, 0), 100)\n\n if (type === 'circle') {\n const { size: circleSize, strokeWidth } = circleSizes[size]\n const radius = (circleSize - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const offset = circumference - (clampedValue / 100) * circumference\n\n return (\n <div className={cn('inline-flex flex-col items-center', className)}>\n <div\n className=\"relative\"\n style={{ width: circleSize, height: circleSize }}\n >\n <svg\n width={circleSize}\n height={circleSize}\n className=\"transform -rotate-90\"\n >\n {/* Background circle */}\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n className={circleTrailColors[color][variant]}\n />\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className={cn(\n circleStrokeColors[color][variant],\n 'transition-all duration-300 ease-in-out',\n )}\n />\n </svg>\n {/* Center text */}\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n {label ? (\n <div className=\"p-2 text-text-muted\">{label}</div>\n ) : (\n <span\n className=\"text-text-primary font-semibold\"\n style={{ fontSize: circleSize / 7 }}\n >\n {clampedValue}%\n </span>\n )}\n </div>\n </div>\n </div>\n )\n }\n\n if (type === 'step') {\n const currentStep = Math.ceil((clampedValue / 100) * totalSteps)\n\n if (orientation === 'vertical') {\n return (\n <div className={cn('h-full flex flex-col', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex-1 rounded-full overflow-hidden flex flex-col-reverse gap-1',\n size === 'xs'\n ? 'w-1'\n : size === 'sm'\n ? 'w-2'\n : size === 'md'\n ? 'w-3'\n : 'w-4',\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1\n const isCompleted = stepNumber <= currentStep\n\n return (\n <div\n key={index}\n className={cn(\n 'w-full rounded-full transition-all flex-1',\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n ...(striped &&\n isCompleted && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n )\n })}\n </div>\n </div>\n )\n }\n\n // Horizontal step progress\n return (\n <div className={cn('w-full', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'w-full rounded-full overflow-hidden flex gap-1',\n progressContainerVariants({ size }),\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1\n const isCompleted = stepNumber <= currentStep\n\n return (\n <div\n key={index}\n className={cn(\n 'h-full rounded-full transition-all flex-1',\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n ...(striped &&\n isCompleted && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n )\n })}\n </div>\n </div>\n )\n }\n\n // Line progress (horizontal or vertical)\n if (orientation === 'vertical') {\n return (\n <div className={cn('h-full flex flex-col', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex-1 rounded-full overflow-hidden flex flex-col justify-end',\n size === 'xs'\n ? 'w-1'\n : size === 'sm'\n ? 'w-2'\n : size === 'md'\n ? 'w-3'\n : 'w-4',\n backgroundColorStyles[color][variant],\n )}\n >\n <div\n className={cn(\n 'w-full transition-all duration-300 ease-in-out rounded-full',\n barColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n height: `${clampedValue}%`,\n ...(striped && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n </div>\n </div>\n )\n }\n\n return (\n <div className={cn('w-full', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n progressContainerVariants({ size }),\n backgroundColorStyles[color][variant],\n )}\n >\n <div\n className={cn(\n progressBarVariants({ size }),\n barColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n width: `${clampedValue}%`,\n ...(striped && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n </div>\n </div>\n )\n },\n)\n\nProgress.displayName = 'Progress'\n\nexport type * from './types'\nexport default Progress\n"]}
|
|
@@ -26,7 +26,7 @@ var buttonVariants = cva(
|
|
|
26
26
|
info: "border-info"
|
|
27
27
|
},
|
|
28
28
|
size: {
|
|
29
|
-
xs: "h-
|
|
29
|
+
xs: "h-[var(--button-height-xs)] px-[var(--button-padding-x-xs)] text-xs gap-1.5",
|
|
30
30
|
sm: "h-[var(--button-height-sm)] px-[var(--button-padding-x-sm)] text-sm gap-2",
|
|
31
31
|
md: "h-[var(--button-height-md)] px-[var(--button-padding-x-md)] text-base gap-2",
|
|
32
32
|
lg: "h-[var(--button-height-lg)] px-[var(--button-padding-x-lg)] text-lg gap-2.5"
|
|
@@ -96,5 +96,5 @@ Button.displayName = "Button";
|
|
|
96
96
|
var button_default = Button;
|
|
97
97
|
|
|
98
98
|
export { button_default };
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-KTAIRCOL.js.map
|
|
100
|
+
//# sourceMappingURL=chunk-KTAIRCOL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/button/index.tsx"],"names":[],"mappings":";;;;;;;AAQA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,kLAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,YAAA;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,MAAA,EAAQ,8BAAA;AAAA,QACR,IAAA,EAAM,4CAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,gBAAA;AAAA,QACT,SAAA,EAAW,kBAAA;AAAA,QACX,MAAA,EAAQ,eAAA;AAAA,QACR,OAAA,EAAS,gBAAA;AAAA,QACT,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,
|
|
1
|
+
{"version":3,"sources":["../src/button/index.tsx"],"names":[],"mappings":";;;;;;;AAQA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,kLAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,YAAA;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,MAAA,EAAQ,8BAAA;AAAA,QACR,IAAA,EAAM,4CAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,gBAAA;AAAA,QACT,SAAA,EAAW,kBAAA;AAAA,QACX,MAAA,EAAQ,eAAA;AAAA,QACR,OAAA,EAAS,gBAAA;AAAA,QACT,KAAA,EAAO,cAAA;AAAA,QACP,OAAA,EAAS,gBAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,6EAAA;AAAA,QACJ,EAAA,EAAI,2EAAA;AAAA,QACJ,EAAA,EAAI,6EAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,gBAAA,EAAkB,uBAAuB,YAAA,EAAc;AAAA,MACrD,OAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,IACD,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,OAAA;AAAA,MACT,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM,IAAA;AAAA,MACN,SAAA,EAAW;AAAA;AACb;AAEJ,CAAA;AAEA,IAAM,SAAS,KAAA,CAAM,IAAA;AAAA,EACnB,CAAC;AAAA,IACC,OAAA,GAAU,OAAA;AAAA,IACV,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,KAAA;AAAA,IACV,WAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,SAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,OAAA,GAAU,OAAA,IAAW,WAAA,GAAc,WAAA,GAAc,QAAA;AACvD,IAAA,MAAM,YAAA,GAAe,CAAC,OAAA,IAAW,QAAA;AACjC,IAAA,MAAM,aAAA,GAAgB,CAAC,OAAA,IAAW,SAAA;AAElC,IAAA,uBACE,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,eAAe,EAAE,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,WAAW,CAAA;AAAA,UAClD;AAAA,SACF;AAAA,QACA,UAAU,QAAA,IAAY,OAAA;AAAA,QACtB,WAAA,EAAW,OAAA;AAAA,QACX,iBAAe,QAAA,IAAY,OAAA;AAAA,QAC1B,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,YAAA,oBAAgB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,UACrD,OAAA,oBAAW,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,CAAA;AAAA,UAC9B,OAAA;AAAA,UACA,aAAA,oBAAiB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,YAAY,QAAA,EAAA,SAAA,EAAU;AAAA;AAAA;AAAA,KAC1D;AAAA,EAEJ;AACF,CAAA;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;AAGrB,IAAO,cAAA,GAAQ","file":"chunk-KTAIRCOL.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { Spinner } from '../spinner'\nimport { cn } from '../utils'\nimport { buttonColors, createAllColorVariants } from '../variants'\nimport type { ButtonProps } from './types'\n\nconst buttonVariants = cva(\n 'inline-flex cursor-pointer text-center outline-none font-medium border items-center justify-center rounded-md disabled:opacity-50 disabled:pointer-events-none transition-colors',\n {\n variants: {\n variant: {\n solid: 'text-white',\n outline: 'bg-transparent',\n dashed: 'bg-transparent border-dashed',\n link: 'bg-transparent border-none hover:underline',\n ghost: 'bg-transparent border-none',\n },\n color: {\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 size: {\n xs: 'h-[var(--button-height-xs)] px-[var(--button-padding-x-xs)] text-xs gap-1.5',\n sm: 'h-[var(--button-height-sm)] px-[var(--button-padding-x-sm)] text-sm gap-2',\n md: 'h-[var(--button-height-md)] px-[var(--button-padding-x-md)] text-base gap-2',\n lg: 'h-[var(--button-height-lg)] px-[var(--button-padding-x-lg)] text-lg gap-2.5',\n },\n fullWidth: {\n true: 'w-full',\n false: '',\n },\n },\n compoundVariants: createAllColorVariants(buttonColors, [\n 'solid',\n 'outline',\n 'dashed',\n 'link',\n 'ghost',\n ]),\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'md',\n fullWidth: false,\n },\n },\n)\n\nconst Button = React.memo<ButtonProps>(\n ({\n variant = 'solid',\n color = 'primary',\n size = 'md',\n loading = false,\n loadingText,\n leftIcon,\n rightIcon,\n fullWidth = false,\n className,\n children,\n disabled,\n ref,\n ...props\n }) => {\n const content = loading && loadingText ? loadingText : children\n const showLeftIcon = !loading && leftIcon\n const showRightIcon = !loading && rightIcon\n\n return (\n <button\n ref={ref}\n className={cn(\n buttonVariants({ color, size, variant, fullWidth }),\n className,\n )}\n disabled={disabled || loading}\n aria-busy={loading}\n aria-disabled={disabled || loading}\n {...props}\n >\n {showLeftIcon && <span className=\"shrink-0\">{leftIcon}</span>}\n {loading && <Spinner size=\"sm\" />}\n {content}\n {showRightIcon && <span className=\"shrink-0\">{rightIcon}</span>}\n </button>\n )\n },\n)\n\nButton.displayName = 'Button'\n\nexport type * from './types'\nexport default Button\n"]}
|
|
@@ -22,7 +22,7 @@ var pickerInputVariants = cva(
|
|
|
22
22
|
success: "border-success"
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
|
-
xs: "h-
|
|
25
|
+
xs: "h-[var(--input-height-xs)] px-[var(--input-padding-x-xs)] text-xs",
|
|
26
26
|
sm: "h-[var(--input-height-sm)] px-3 text-sm",
|
|
27
27
|
md: "h-[var(--input-height-md)] px-4 text-base",
|
|
28
28
|
lg: "h-[var(--input-height-lg)] px-5 text-lg"
|
|
@@ -1097,5 +1097,5 @@ var DatePicker = Object.assign(DatePickerComponent, {
|
|
|
1097
1097
|
});
|
|
1098
1098
|
|
|
1099
1099
|
export { DatePicker, RangePickerComponent, TimePickerComponent };
|
|
1100
|
-
//# sourceMappingURL=chunk-
|
|
1101
|
-
//# sourceMappingURL=chunk-
|
|
1100
|
+
//# sourceMappingURL=chunk-QPJL66S7.js.map
|
|
1101
|
+
//# sourceMappingURL=chunk-QPJL66S7.js.map
|