@mdigital_ui/ui 0.4.8 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +279 -247
- package/dist/alert/index.d.ts.map +1 -1
- package/dist/alert/index.js +1 -1
- package/dist/autocomplete/index.d.ts.map +1 -1
- package/dist/autocomplete/index.js +3 -2
- package/dist/avatar/index.d.ts.map +1 -1
- package/dist/avatar/index.js +1 -1
- package/dist/breadcrumbs/index.js +4 -4
- package/dist/button/index.js +2 -2
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +2 -1
- package/dist/cascader/index.d.ts.map +1 -1
- package/dist/cascader/index.js +1 -1
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/checkbox/types.d.ts +2 -0
- package/dist/checkbox/types.d.ts.map +1 -1
- package/dist/{chunk-Z3DIBMBQ.js → chunk-3K4GIXFA.js} +178 -118
- package/dist/chunk-3K4GIXFA.js.map +1 -0
- package/dist/{chunk-SJLH5ZDW.js → chunk-4QLYRAW2.js} +3 -3
- package/dist/{chunk-SJLH5ZDW.js.map → chunk-4QLYRAW2.js.map} +1 -1
- package/dist/{chunk-4TEZWGX7.js → chunk-64OCJYSH.js} +17 -8
- package/dist/chunk-64OCJYSH.js.map +1 -0
- package/dist/{chunk-5YEC6FDN.js → chunk-6CMHCCDO.js} +14 -7
- package/dist/chunk-6CMHCCDO.js.map +1 -0
- package/dist/{chunk-7RT65ZGV.js → chunk-6H2Y3QKP.js} +75 -23
- package/dist/chunk-6H2Y3QKP.js.map +1 -0
- package/dist/{chunk-UFYG3HKL.js → chunk-6K6RGQNL.js} +193 -94
- package/dist/chunk-6K6RGQNL.js.map +1 -0
- package/dist/{chunk-ROQGBDET.js → chunk-6XXAZ6P2.js} +15 -7
- package/dist/chunk-6XXAZ6P2.js.map +1 -0
- package/dist/{chunk-3Z7RLVWD.js → chunk-75T5BISG.js} +7 -13
- package/dist/chunk-75T5BISG.js.map +1 -0
- package/dist/{chunk-XAM5EKOS.js → chunk-7SKAAKBC.js} +13 -12
- package/dist/chunk-7SKAAKBC.js.map +1 -0
- package/dist/{chunk-6RZEJRTC.js → chunk-7ZUIX4NK.js} +3 -3
- package/dist/{chunk-6RZEJRTC.js.map → chunk-7ZUIX4NK.js.map} +1 -1
- package/dist/{chunk-NPK4ESMA.js → chunk-B75ICJCX.js} +9 -16
- package/dist/chunk-B75ICJCX.js.map +1 -0
- package/dist/chunk-CB7YOZWV.js +50 -0
- package/dist/chunk-CB7YOZWV.js.map +1 -0
- package/dist/{chunk-UFC3RGIN.js → chunk-DXAOZB6J.js} +4 -4
- package/dist/chunk-DXAOZB6J.js.map +1 -0
- package/dist/{chunk-75N6T3IS.js → chunk-ECBTSKES.js} +13 -10
- package/dist/chunk-ECBTSKES.js.map +1 -0
- package/dist/{chunk-J2WIZULN.js → chunk-FCIK35OY.js} +3 -3
- package/dist/{chunk-J2WIZULN.js.map → chunk-FCIK35OY.js.map} +1 -1
- package/dist/{chunk-FY2TZ2NT.js → chunk-GP7R3AFC.js} +58 -30
- package/dist/chunk-GP7R3AFC.js.map +1 -0
- package/dist/{chunk-ED4CQZ72.js → chunk-GQM5WLP5.js} +4 -4
- package/dist/{chunk-ED4CQZ72.js.map → chunk-GQM5WLP5.js.map} +1 -1
- package/dist/{chunk-TBKPQOXF.js → chunk-GSLNACUF.js} +3 -3
- package/dist/{chunk-TBKPQOXF.js.map → chunk-GSLNACUF.js.map} +1 -1
- package/dist/{chunk-OJAHIPPP.js → chunk-HGWD63IR.js} +3 -3
- package/dist/{chunk-OJAHIPPP.js.map → chunk-HGWD63IR.js.map} +1 -1
- package/dist/chunk-HKQOAEFY.js +1 -1
- package/dist/{chunk-PD3O6ZH4.js → chunk-JXOLZBXF.js} +19 -8
- package/dist/chunk-JXOLZBXF.js.map +1 -0
- package/dist/{chunk-CUXQZRDI.js → chunk-JZCONCJS.js} +13 -3
- package/dist/chunk-JZCONCJS.js.map +1 -0
- package/dist/{chunk-TDPJYCNI.js → chunk-KBT6UQNA.js} +14 -35
- package/dist/chunk-KBT6UQNA.js.map +1 -0
- package/dist/{chunk-VNH6R5EU.js → chunk-KR3GBSVA.js} +4 -6
- package/dist/chunk-KR3GBSVA.js.map +1 -0
- package/dist/{chunk-JWYBDNC6.js → chunk-KTK7LSKX.js} +7 -8
- package/dist/chunk-KTK7LSKX.js.map +1 -0
- package/dist/{chunk-J4SAIKKZ.js → chunk-L3ZFNHVX.js} +25 -22
- package/dist/chunk-L3ZFNHVX.js.map +1 -0
- package/dist/{chunk-PB5VGXS5.js → chunk-LBOQJHFH.js} +3 -3
- package/dist/{chunk-PB5VGXS5.js.map → chunk-LBOQJHFH.js.map} +1 -1
- package/dist/{chunk-XCK62GVU.js → chunk-LZ2MHSYF.js} +8 -5
- package/dist/chunk-LZ2MHSYF.js.map +1 -0
- package/dist/{chunk-LHZJ2GJU.js → chunk-MHRSK2QC.js} +8 -6
- package/dist/chunk-MHRSK2QC.js.map +1 -0
- package/dist/{chunk-JIXINKUJ.js → chunk-N742SARE.js} +8 -7
- package/dist/chunk-N742SARE.js.map +1 -0
- package/dist/{chunk-3XOHSE3X.js → chunk-NA6EVQ6T.js} +3 -3
- package/dist/{chunk-3XOHSE3X.js.map → chunk-NA6EVQ6T.js.map} +1 -1
- package/dist/{chunk-6ROGWFQ2.js → chunk-NKLKTAUP.js} +3 -3
- package/dist/{chunk-6ROGWFQ2.js.map → chunk-NKLKTAUP.js.map} +1 -1
- package/dist/{chunk-S6HO7HUY.js → chunk-OSD63E6O.js} +15 -19
- package/dist/chunk-OSD63E6O.js.map +1 -0
- package/dist/{chunk-QDJ5PZPP.js → chunk-PHA7SLBY.js} +3 -3
- package/dist/chunk-PHA7SLBY.js.map +1 -0
- package/dist/{chunk-6NXZWLSM.js → chunk-S4BF3Z6O.js} +4 -4
- package/dist/{chunk-6NXZWLSM.js.map → chunk-S4BF3Z6O.js.map} +1 -1
- package/dist/{chunk-C65SCJD6.js → chunk-SK6YMTMA.js} +5 -12
- package/dist/chunk-SK6YMTMA.js.map +1 -0
- package/dist/{chunk-DBPLQZJ2.js → chunk-SSISBOLO.js} +75 -22
- package/dist/chunk-SSISBOLO.js.map +1 -0
- package/dist/{chunk-LWYZCSX4.js → chunk-UBJK5623.js} +12 -11
- package/dist/chunk-UBJK5623.js.map +1 -0
- package/dist/{chunk-74AF6PO2.js → chunk-UEQ3NEVL.js} +48 -12
- package/dist/chunk-UEQ3NEVL.js.map +1 -0
- package/dist/{chunk-A4MYCEGM.js → chunk-UHHCUCEE.js} +19 -8
- package/dist/chunk-UHHCUCEE.js.map +1 -0
- package/dist/{chunk-X7JN7WPF.js → chunk-UIPDAD62.js} +3 -3
- package/dist/chunk-UIPDAD62.js.map +1 -0
- package/dist/{chunk-YUACN5GJ.js → chunk-UPBKLI62.js} +20 -13
- package/dist/chunk-UPBKLI62.js.map +1 -0
- package/dist/{chunk-3B32X5PU.js → chunk-UUXSTLOY.js} +7 -5
- package/dist/chunk-UUXSTLOY.js.map +1 -0
- package/dist/{chunk-HSMO2BR4.js → chunk-VNB7ZHCZ.js} +4 -13
- package/dist/chunk-VNB7ZHCZ.js.map +1 -0
- package/dist/{chunk-TQEMGWZ2.js → chunk-W4RYNHAG.js} +3 -3
- package/dist/{chunk-TQEMGWZ2.js.map → chunk-W4RYNHAG.js.map} +1 -1
- package/dist/{chunk-PRDJLQLB.js → chunk-XNV3YAJK.js} +5 -5
- package/dist/chunk-XNV3YAJK.js.map +1 -0
- package/dist/{chunk-I7HJBHQU.js → chunk-Y3PVWMUN.js} +7 -7
- package/dist/chunk-Y3PVWMUN.js.map +1 -0
- package/dist/clipboard/index.js +2 -2
- package/dist/collapse/index.js +2 -2
- package/dist/color-picker/index.d.ts +3 -3
- package/dist/color-picker/index.d.ts.map +1 -1
- package/dist/color-picker/index.js +3 -2
- package/dist/context-menu/index.d.ts +4 -6
- package/dist/context-menu/index.d.ts.map +1 -1
- package/dist/context-menu/index.js +2 -2
- package/dist/date-picker/PickerWrapper.d.ts +3 -3
- package/dist/date-picker/PickerWrapper.d.ts.map +1 -1
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +3 -2
- package/dist/descriptions/index.js +1 -1
- package/dist/dropdown/index.js +3 -3
- package/dist/hooks/useControllable.d.ts +9 -2
- package/dist/hooks/useControllable.d.ts.map +1 -1
- package/dist/hooks/useRipple.d.ts +0 -6
- package/dist/hooks/useRipple.d.ts.map +1 -1
- package/dist/index.js +46 -46
- package/dist/input/index.js +1 -1
- package/dist/input-password/index.js +2 -2
- package/dist/mentions/index.d.ts.map +1 -1
- package/dist/mentions/index.js +2 -1
- package/dist/menubar/index.js +2 -2
- package/dist/multi-select/index.d.ts.map +1 -1
- package/dist/multi-select/index.js +4 -4
- package/dist/navigation-menu/index.d.ts.map +1 -1
- package/dist/navigation-menu/index.js +1 -1
- package/dist/number-input/index.d.ts.map +1 -1
- package/dist/number-input/index.js +3 -3
- package/dist/pagination/index.js +2 -2
- package/dist/popover/index.d.ts +16 -1
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/qr-code/index.d.ts +3 -3
- package/dist/qr-code/index.d.ts.map +1 -1
- package/dist/qr-code/index.js +1 -1
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/radio/index.js +1 -1
- package/dist/rating/index.js +2 -2
- package/dist/resizable/index.d.ts +4 -3
- package/dist/resizable/index.d.ts.map +1 -1
- package/dist/resizable/index.js +1 -1
- package/dist/result/index.d.ts.map +1 -1
- package/dist/result/index.js +1 -1
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +4 -4
- package/dist/skeleton/index.d.ts +3 -3
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +1 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +8 -8
- package/dist/table/types.d.ts +16 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tags-input/index.d.ts.map +1 -1
- package/dist/tags-input/index.js +2 -1
- package/dist/textarea/index.d.ts +3 -3
- package/dist/textarea/index.d.ts.map +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/theme/ThemeProvider.d.ts +18 -2
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/timeline/index.d.ts.map +1 -1
- package/dist/timeline/index.js +1 -1
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +2 -2
- package/dist/toggle-group/index.d.ts.map +1 -1
- package/dist/toggle-group/index.js +2 -2
- package/dist/tour/index.d.ts.map +1 -1
- package/dist/tour/index.js +1 -1
- package/dist/transfer/index.js +2 -2
- package/dist/tree-select/index.js +2 -2
- package/dist/typography/index.d.ts.map +1 -1
- package/dist/typography/index.js +1 -1
- package/dist/upload/index.d.ts.map +1 -1
- package/dist/upload/index.js +2 -2
- package/package.json +4 -3
- package/styles/datepicker.css +126 -0
- package/styles/global.css +1 -113
- package/dist/chunk-3B32X5PU.js.map +0 -1
- package/dist/chunk-3Z7RLVWD.js.map +0 -1
- package/dist/chunk-4TEZWGX7.js.map +0 -1
- package/dist/chunk-5YEC6FDN.js.map +0 -1
- package/dist/chunk-74AF6PO2.js.map +0 -1
- package/dist/chunk-75N6T3IS.js.map +0 -1
- package/dist/chunk-7RT65ZGV.js.map +0 -1
- package/dist/chunk-A4MYCEGM.js.map +0 -1
- package/dist/chunk-C65SCJD6.js.map +0 -1
- package/dist/chunk-CUXQZRDI.js.map +0 -1
- package/dist/chunk-DBPLQZJ2.js.map +0 -1
- package/dist/chunk-FY2TZ2NT.js.map +0 -1
- package/dist/chunk-HSMO2BR4.js.map +0 -1
- package/dist/chunk-I7HJBHQU.js.map +0 -1
- package/dist/chunk-J4SAIKKZ.js.map +0 -1
- package/dist/chunk-JIXINKUJ.js.map +0 -1
- package/dist/chunk-JWYBDNC6.js.map +0 -1
- package/dist/chunk-LHZJ2GJU.js.map +0 -1
- package/dist/chunk-LWYZCSX4.js.map +0 -1
- package/dist/chunk-NPK4ESMA.js.map +0 -1
- package/dist/chunk-PD3O6ZH4.js.map +0 -1
- package/dist/chunk-PQOIW5CM.js +0 -27
- package/dist/chunk-PQOIW5CM.js.map +0 -1
- package/dist/chunk-PRDJLQLB.js.map +0 -1
- package/dist/chunk-QDJ5PZPP.js.map +0 -1
- package/dist/chunk-ROQGBDET.js.map +0 -1
- package/dist/chunk-S6HO7HUY.js.map +0 -1
- package/dist/chunk-TDPJYCNI.js.map +0 -1
- package/dist/chunk-UFC3RGIN.js.map +0 -1
- package/dist/chunk-UFYG3HKL.js.map +0 -1
- package/dist/chunk-VNH6R5EU.js.map +0 -1
- package/dist/chunk-X7JN7WPF.js.map +0 -1
- package/dist/chunk-XAM5EKOS.js.map +0 -1
- package/dist/chunk-XCK62GVU.js.map +0 -1
- package/dist/chunk-YUACN5GJ.js.map +0 -1
- package/dist/chunk-Z3DIBMBQ.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cascader/CascaderMenu.tsx","../src/cascader/index.tsx"],"names":["cva","jsxs","jsx","Loader2"],"mappings":"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","file":"chunk-LWYZCSX4.js","sourcesContent":["'use client'\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, ChevronRight, Loader2 } from \"lucide-react\";\nimport React from \"react\";\n\nimport type { ComponentColor } from \"../types\";\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { CascaderOption, CascaderSize } from \"./types\";\n\nexport const cascaderMenuVariants = cva(\n \"overflow-auto rounded-md border bg-background w-[200px] max-h-[300px]\",\n {\n variants: {\n size: {\n xs: \"w-[160px]\",\n sm: \"w-[180px]\",\n md: \"w-[200px]\",\n lg: \"w-[220px]\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n\nexport const 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-2.5 py-1.5 text-sm min-h-[32px]\",\n md: \"px-3 py-2 text-base min-h-[36px]\",\n lg: \"px-3.5 py-2.5 text-lg min-h-[44px]\",\n },\n disabled: { true: \"opacity-50 cursor-not-allowed\", false: \"hover:bg-surface\" },\n active: { true: \"bg-surface\", false: \"\" },\n selected: { true: \"font-medium\", false: \"\" },\n },\n defaultVariants: { size: \"md\", disabled: false, active: false, selected: false },\n },\n);\n\nexport interface CascaderMenuProps {\n activeMenus: CascaderOption[][]\n selectedPath: string[]\n hoveredPath: number[]\n focusedIndex: { level: number; index: number } | null\n selectedPathSet: Set<string>\n selectionStateMap: Map<string, { checked: boolean; indeterminate: boolean }> | null\n size: CascaderSize\n color: ComponentColor\n multiple: boolean\n expandTrigger: 'click' | 'hover'\n emptyContent: React.ReactNode\n onItemClick: (option: CascaderOption, level: number) => void\n onItemHover: (option: CascaderOption, level: number, index: number) => void\n classNames?: {\n dropdown?: string\n menu?: string\n option?: string\n }\n menuRefs: React.MutableRefObject<(HTMLDivElement | null)[]>\n}\n\nexport const CascaderMenu = ({\n activeMenus,\n selectedPath,\n hoveredPath,\n focusedIndex,\n selectedPathSet,\n selectionStateMap,\n size,\n color,\n multiple,\n expandTrigger,\n emptyContent,\n onItemClick,\n onItemHover,\n classNames,\n menuRefs,\n}: CascaderMenuProps) => {\n return (\n <div className={cn(\"flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none cascader_dropdown\", colorVars[color], classNames?.dropdown)} data-slot=\"dropdown\">\n {activeMenus.map((menu, level) => (\n <div\n key={level}\n ref={(el) => { menuRefs.current[level] = el }}\n role=\"listbox\"\n className={cn(cascaderMenuVariants({ size }), \"border-border cascader_menu\", classNames?.menu)}\n data-slot=\"menu\"\n >\n {menu.length === 0 ? (\n <div className=\"px-3 py-6 text-center text-text-secondary text-sm\">{emptyContent}</div>\n ) : (\n menu.map((option, index) => {\n const isActive = selectedPath[level] === option.value || (expandTrigger === \"hover\" && hoveredPath[level] === index);\n const isFocused = focusedIndex?.level === level && focusedIndex?.index === index;\n const currentPath = selectedPath.slice(0, level);\n const fullPath = [...currentPath, option.value];\n const selectionState = multiple && selectionStateMap\n ? selectionStateMap.get(fullPath.join('\\0')) ?? { checked: false, indeterminate: false }\n : null;\n const isLeafSelected =\n !multiple &&\n selectedPathSet.has(fullPath.join('\\0')) &&\n (!option.children || option.children.length === 0);\n\n return (\n <div\n key={option.value}\n role=\"option\"\n aria-selected={isLeafSelected || (selectionState?.checked ?? false)}\n aria-disabled={option.disabled}\n className={cn(\n cascaderItemVariants({ size, disabled: !!option.disabled, active: isActive || isFocused, selected: isLeafSelected }),\n isLeafSelected && 'bg-slot-10 text-slot',\n \"cascader_option\",\n classNames?.option,\n )}\n onClick={() => onItemClick(option, level)}\n onMouseEnter={() => onItemHover(option, level, index)}\n data-slot=\"option\"\n >\n {multiple && (\n <div className={cn(\"w-4 h-4 border rounded flex items-center justify-center shrink-0\", selectionState?.checked ? 'bg-slot border-slot' : \"border-border\")}>\n {selectionState?.checked && <Check className=\"h-3 w-3 text-background\" />}\n {selectionState?.indeterminate && !selectionState?.checked && <div className={cn(\"w-2 h-0.5 bg-slot\")} />}\n </div>\n )}\n <span className=\"flex-1 truncate\">{option.label}</span>\n <span className={cn(\"shrink-0 flex items-center\", iconSizes[size])}>\n {option.loading && <Loader2 className={cn(\"animate-spin\", iconSizes[size])} />}\n {!option.loading && option.children && option.children.length > 0 && <ChevronRight className={iconSizes[size]} />}\n {!option.loading && isLeafSelected && <Check className={cn(iconSizes[size], colorVars[color], 'text-slot')} />}\n </span>\n </div>\n );\n })\n )}\n </div>\n ))}\n </div>\n );\n};\n","'use client'\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDown, Loader2, X } from \"lucide-react\";\nimport React from \"react\";\n\n\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { CascaderOption, CascaderProps, CascaderSize } from \"./types\";\nimport { CascaderMenu } from \"./CascaderMenu\";\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 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n status: {\n default: \"bg-background border-border hover:border-primary/50\",\n error: \"border-error\",\n warning: \"border-warning\",\n info: \"border-info\",\n success: \"border-success\",\n },\n size: {\n xs: \"h-(--select-height-xs) px-(--select-padding-x-xs) text-xs\",\n sm: \"h-(--select-height-sm) px-(--select-padding-x-sm) text-sm\",\n md: \"h-(--select-height-md) px-(--select-padding-x-md) text-base\",\n lg: \"h-(--select-height-lg) px-(--select-padding-x-lg) text-lg\",\n },\n fullWidth: { true: \"w-full\", false: \"max-w-full\" },\n },\n defaultVariants: { status: \"default\", size: \"md\", fullWidth: true },\n },\n);\n\nconst tagSizeClasses: Record<CascaderSize, string> = {\n xs: \"text-[10px] px-1 py-0\",\n sm: \"text-xs px-1.5 py-0.5\",\n md: \"text-sm px-2 py-0.5\",\n lg: \"text-sm px-2.5 py-1\",\n};\n\nconst Cascader = React.memo<CascaderProps>(\n ({\n options,\n value,\n defaultValue,\n onChange,\n onSelect,\n placeholder = \"Please select\",\n label,\n helperText,\n messagePosition = \"bottom\",\n color = \"default\",\n size = \"md\",\n placement = \"bottomLeft\",\n disabled = false,\n loading = false,\n error,\n warning,\n info,\n success,\n fullWidth = true,\n expandTrigger = \"hover\",\n multiple = false,\n maxTagCount = 3,\n clearable = true,\n showPath = true,\n pathSeparator = \" / \",\n changeOnSelect = false,\n loadData,\n displayRender,\n tagRender,\n emptyContent = \"No options\",\n className,\n classNames,\n required,\n ref,\n onOpenChange,\n }) => {\n const [isOpen, setIsOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState<string[] | string[][]>(defaultValue || []);\n const currentValue = value !== undefined ? value : internalValue;\n const [activeMenus, setActiveMenus] = React.useState<CascaderOption[][]>([options]);\n const [hoveredPath, setHoveredPath] = React.useState<number[]>([]);\n const [selectedPath, setSelectedPath] = React.useState<string[]>([]);\n const [focusedIndex, setFocusedIndex] = React.useState<{ level: number; index: number } | null>(null);\n\n const containerRef = React.useRef<HTMLDivElement>(null);\n const menuRefs = React.useRef<(HTMLDivElement | null)[]>([]);\n\n const normalizedValue: string[][] = React.useMemo(() => {\n if (multiple) {\n return Array.isArray(currentValue[0]) ? (currentValue as string[][]) : [];\n }\n return Array.isArray(currentValue) && currentValue.length > 0 && !Array.isArray(currentValue[0])\n ? [currentValue as string[]]\n : [];\n }, [currentValue, multiple]);\n\n const selectedPathSet = React.useMemo(() => {\n const set = new Set<string>();\n for (const path of normalizedValue) set.add(path.join('\\0'));\n return set;\n }, [normalizedValue]);\n\n const selectionStateMap = React.useMemo(() => {\n if (!multiple) return null;\n const map = new Map<string, { checked: boolean; indeterminate: boolean }>();\n\n const collectLeafPaths = (option: CascaderOption, basePath: string[]): string[][] => {\n const paths: string[][] = [];\n const fullPath = [...basePath, option.value];\n if (!option.children || option.children.length === 0) {\n paths.push(fullPath);\n } else {\n for (const child of option.children) paths.push(...collectLeafPaths(child, fullPath));\n }\n return paths;\n };\n\n const computeForOption = (option: CascaderOption, basePath: string[]) => {\n const key = [...basePath, option.value].join('\\0');\n if (!option.children || option.children.length === 0) {\n map.set(key, { checked: selectedPathSet.has(key), indeterminate: false });\n } else {\n for (const child of option.children) computeForOption(child, [...basePath, option.value]);\n const leafPaths = collectLeafPaths(option, basePath);\n let selectedCount = 0;\n for (const lp of leafPaths) { if (selectedPathSet.has(lp.join('\\0'))) selectedCount++ }\n map.set(key, { checked: selectedCount === leafPaths.length && leafPaths.length > 0, indeterminate: selectedCount > 0 && selectedCount < leafPaths.length });\n }\n };\n\n for (const option of options) computeForOption(option, []);\n return map;\n }, [normalizedValue, multiple, options, selectedPathSet]);\n\n let status: \"default\" | \"error\" | \"warning\" | \"info\" | \"success\" = \"default\";\n if (error) status = \"error\";\n else if (warning) status = \"warning\";\n else if (success) status = \"success\";\n else if (info) status = \"info\";\n\n const helperMessage = error || warning || info || success || helperText;\n\n const expandToPath = React.useCallback((path: string[]) => {\n const menus: CascaderOption[][] = [options];\n let currentOptions = options;\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val);\n if (option?.children && option.children.length > 0) { menus.push(option.children); currentOptions = option.children }\n }\n setActiveMenus(menus);\n }, [options]);\n\n const handleOpenChange = React.useCallback((open: boolean) => {\n if (disabled || loading) return;\n setIsOpen(open);\n onOpenChange?.(open);\n if (open) {\n setActiveMenus([options]);\n setHoveredPath([]);\n setFocusedIndex(null);\n if (normalizedValue.length > 0 && !multiple) {\n setSelectedPath(normalizedValue[0] || []);\n expandToPath(normalizedValue[0] || []);\n } else {\n setSelectedPath([]);\n }\n }\n }, [disabled, loading, options, normalizedValue, multiple, onOpenChange, expandToPath]);\n\n const getSelectedOptions = React.useCallback((path: string[]): CascaderOption[] => {\n const selected: CascaderOption[] = [];\n let currentOptions = options;\n for (const val of path) {\n const option = currentOptions.find((opt) => opt.value === val);\n if (option) { selected.push(option); currentOptions = option.children || [] }\n }\n return selected;\n }, [options]);\n\n const isPathSelected = React.useCallback((path: string[]): boolean => {\n return normalizedValue.some((sp) => sp.length === path.length && sp.every((val, idx) => val === path[idx]));\n }, [normalizedValue]);\n\n const getAllLeafPaths = React.useCallback((option: CascaderOption, currentPath: string[]): string[][] => {\n const paths: string[][] = [];\n const fullPath = [...currentPath, option.value];\n if (!option.children || option.children.length === 0) { paths.push(fullPath) }\n else { option.children.forEach((child) => { paths.push(...getAllLeafPaths(child, fullPath)) }) }\n return paths;\n }, []);\n\n const handleItemClick = React.useCallback(async (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n const newPath = [...selectedPath.slice(0, level), option.value];\n setSelectedPath(newPath);\n\n if (loadData && !option.children && !option.isLeaf && !option.loading) {\n const selectedOpts = getSelectedOptions(newPath);\n try { await loadData(selectedOpts) } catch { /* consumer handles */ }\n return;\n }\n\n const hasChildren = option.children && option.children.length > 0;\n const isLeaf = !hasChildren;\n\n if (hasChildren && !multiple) {\n setActiveMenus((prev) => [...prev.slice(0, level + 1), option.children!]);\n if (changeOnSelect) {\n const selectedOpts = getSelectedOptions(newPath);\n if (value === undefined) setInternalValue(newPath);\n onChange?.(newPath, selectedOpts);\n }\n } else if (hasChildren && multiple) {\n const leafPaths = getAllLeafPaths(option, selectedPath.slice(0, level));\n const allSelected = leafPaths.every((path) => isPathSelected(path));\n let newValue: string[][];\n if (allSelected) {\n newValue = normalizedValue.filter((sp) => !leafPaths.some((lp) => lp.length === sp.length && lp.every((v, i) => v === sp[i])));\n } else {\n newValue = [...normalizedValue, ...leafPaths.filter((path) => !isPathSelected(path))];\n }\n const newSelectedOptions = newValue.map((path) => getSelectedOptions(path));\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n setActiveMenus((prev) => [...prev.slice(0, level + 1), option.children!]);\n } else if (isLeaf) {\n if (multiple) {\n let newValue: string[][];\n if (isPathSelected(newPath)) {\n newValue = normalizedValue.filter((path) => !(path.length === newPath.length && path.every((val, idx) => val === newPath[idx])));\n } else {\n newValue = [...normalizedValue, newPath];\n }\n const newSelectedOptions = newValue.map((path) => getSelectedOptions(path));\n if (value === undefined) setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n } else {\n const selectedOpts = getSelectedOptions(newPath);\n if (value === undefined) setInternalValue(newPath);\n onChange?.(newPath, selectedOpts);\n onSelect?.(newPath, selectedOpts);\n handleOpenChange(false);\n }\n }\n }, [selectedPath, value, onChange, onSelect, getSelectedOptions, multiple, isPathSelected, normalizedValue, getAllLeafPaths, changeOnSelect, loadData, handleOpenChange]);\n\n const handleItemHover = React.useCallback((option: CascaderOption, level: number, index: number) => {\n if (expandTrigger !== \"hover\" || option.disabled) return;\n setHoveredPath((prev) => [...prev.slice(0, level), index]);\n setSelectedPath((prev) => [...prev.slice(0, level), option.value]);\n if (option.children && option.children.length > 0) {\n setActiveMenus((prev) => [...prev.slice(0, level + 1), option.children!]);\n } else {\n setActiveMenus((prev) => prev.slice(0, level + 1));\n }\n }, [expandTrigger]);\n\n const handleClear = React.useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n const emptyValue = multiple ? [] : [];\n if (value === undefined) setInternalValue(emptyValue);\n onChange?.(emptyValue, []);\n }, [value, onChange, multiple]);\n\n const removeSelection = React.useCallback((pathToRemove: string[], e: React.MouseEvent) => {\n e.stopPropagation();\n if (!multiple) return;\n const newValue = normalizedValue.filter((path) => !(path.length === pathToRemove.length && path.every((val, idx) => val === pathToRemove[idx])));\n const newSelectedOptions = newValue.map((path) => getSelectedOptions(path));\n setInternalValue(newValue);\n onChange?.(newValue, newSelectedOptions);\n }, [multiple, normalizedValue, value, onChange, getSelectedOptions]);\n\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n if (!isOpen) {\n if (e.key === \"Enter\" || e.key === \" \" || e.key === \"ArrowDown\") { e.preventDefault(); handleOpenChange(true) }\n return;\n }\n switch (e.key) {\n case \"Escape\": e.preventDefault(); handleOpenChange(false); break;\n case \"ArrowDown\":\n e.preventDefault();\n if (focusedIndex === null) { setFocusedIndex({ level: 0, index: 0 }) }\n else { const m = activeMenus[focusedIndex.level]; if (m && focusedIndex.index < m.length - 1) setFocusedIndex({ ...focusedIndex, index: focusedIndex.index + 1 }) }\n break;\n case \"ArrowUp\": e.preventDefault(); if (focusedIndex && focusedIndex.index > 0) setFocusedIndex({ ...focusedIndex, index: focusedIndex.index - 1 }); break;\n case \"ArrowRight\":\n e.preventDefault();\n if (focusedIndex) { const m = activeMenus[focusedIndex.level]; const o = m?.[focusedIndex.index]; if (o?.children?.length) { setActiveMenus((prev) => [...prev.slice(0, focusedIndex.level + 1), o.children!]); setFocusedIndex({ level: focusedIndex.level + 1, index: 0 }) } }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (focusedIndex && focusedIndex.level > 0) { const pl = focusedIndex.level - 1; setActiveMenus((prev) => prev.slice(0, focusedIndex.level)); setFocusedIndex({ level: pl, index: hoveredPath[pl] ?? 0 }) }\n break;\n case \"Enter\":\n e.preventDefault();\n if (focusedIndex) { const m = activeMenus[focusedIndex.level]; const o = m?.[focusedIndex.index]; if (o) handleItemClick(o, focusedIndex.level) }\n break;\n }\n }, [isOpen, focusedIndex, activeMenus, handleOpenChange, handleItemClick, hoveredPath]);\n\n const displayValue = React.useMemo(() => {\n if (normalizedValue.length === 0) return null;\n if (displayRender) {\n if (multiple) {\n return displayRender(normalizedValue.map((path) => getSelectedOptions(path).map((opt) => opt.label)), normalizedValue.map((path) => getSelectedOptions(path)));\n }\n const so = getSelectedOptions(normalizedValue[0] || []);\n return displayRender(so.map((opt) => opt.label), so);\n }\n if (!multiple) {\n const so = getSelectedOptions(normalizedValue[0] || []);\n const labels = so.map((opt) => opt.label);\n return showPath ? labels.join(pathSeparator) : labels[labels.length - 1] || null;\n }\n return null;\n }, [normalizedValue, displayRender, getSelectedOptions, multiple, showPath, pathSeparator]);\n\n const showClearButton = clearable && normalizedValue.length > 0 && normalizedValue[0]?.[0] && !disabled && !loading;\n\n const renderTriggerContent = () => {\n if (multiple && normalizedValue.length > 0) {\n const visibleTags = normalizedValue.slice(0, maxTagCount);\n const remainingCount = normalizedValue.length - maxTagCount;\n return (\n <div className=\"flex-1 flex flex-wrap gap-1 items-center min-h-0 overflow-hidden\">\n {visibleTags.map((path, idx) => {\n const selectedOpts = getSelectedOptions(path);\n const tagLabel = showPath ? selectedOpts.map((o) => o.label).join(pathSeparator) : selectedOpts[selectedOpts.length - 1]?.label || \"\";\n if (tagRender) return <React.Fragment key={idx}>{tagRender({ label: tagLabel, value: path, closable: !disabled, onClose: () => removeSelection(path, { stopPropagation: () => {} } as React.MouseEvent) })}</React.Fragment>;\n return (\n <span key={idx} className={cn(\"inline-flex items-center gap-1 rounded whitespace-nowrap\", colorVars[color], 'bg-slot-10 text-slot', tagSizeClasses[size])}>\n <span className=\"truncate max-w-[150px]\">{tagLabel}</span>\n {!disabled && <button type=\"button\" onClick={(e) => removeSelection(path, e)} className=\"hover:text-error shrink-0\"><X className=\"h-3 w-3\" /></button>}\n </span>\n );\n })}\n {remainingCount > 0 && <span className={cn(\"inline-flex items-center bg-surface text-text-secondary rounded whitespace-nowrap\", tagSizeClasses[size])}>+{remainingCount}</span>}\n </div>\n );\n }\n return <span className={cn(\"truncate flex-1\", !displayValue && \"text-text-secondary\")}>{displayValue || placeholder}</span>;\n };\n\n const popoverSide = placement.startsWith(\"top\") ? \"top\" : \"bottom\";\n const popoverAlign = placement.endsWith(\"Right\") ? \"end\" : \"start\";\n\n return (\n <div className={cn(\"flex flex-col\", fullWidth ? \"w-full\" : \"inline-block\")}>\n <div className=\"flex gap-2 items-center mb-0.5\">\n {label && <label className=\"text-sm font-medium text-text-secondary\">{label}{required && <span className=\"text-error ml-1\">*</span>}</label>}\n {helperMessage && messagePosition === \"top\" && (\n <span className={cn(\"text-xs\", status === \"error\" && \"text-error\", status === \"warning\" && \"text-warning\", status === \"info\" && \"text-info\", status === \"success\" && \"text-success\", status === \"default\" && \"text-text-secondary\")}>{helperMessage}</span>\n )}\n </div>\n <div ref={containerRef} className={cn(\"relative cascader_root\", fullWidth ? \"w-full\" : \"inline-block\", classNames?.root)} data-slot=\"root\">\n <PopoverPrimitive.Root open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild>\n <div\n ref={ref}\n className={cn(cascaderTriggerVariants({ status, size, fullWidth }), colorVars[color], 'focus-visible:ring-slot', disabled && \"opacity-50 cursor-not-allowed\", loading && \"opacity-50 pointer-events-none\", \"cascader_trigger\", classNames?.trigger, className)}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-disabled={disabled}\n aria-label={label || placeholder}\n data-slot=\"trigger\"\n >\n {renderTriggerContent()}\n <div className=\"flex items-center gap-1 text-text-secondary shrink-0\">\n {loading && <Loader2 className={cn(\"animate-spin text-text-secondary\", iconSizes[size])} />}\n {!loading && showClearButton && <button type=\"button\" onClick={handleClear} className=\"hover:text-text-primary\" aria-label=\"Clear selection\"><X className={iconSizes[size]} /></button>}\n {!loading && <ChevronDown className={cn(\"transition-transform\", iconSizes[size], isOpen && \"rotate-180\")} />}\n </div>\n </div>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={popoverSide}\n align={popoverAlign}\n sideOffset={4}\n className=\"z-[var(--z-popover)] outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 duration-200\"\n >\n <CascaderMenu\n activeMenus={activeMenus}\n selectedPath={selectedPath}\n hoveredPath={hoveredPath}\n focusedIndex={focusedIndex}\n selectedPathSet={selectedPathSet}\n selectionStateMap={selectionStateMap}\n size={size}\n color={color}\n multiple={multiple}\n expandTrigger={expandTrigger}\n emptyContent={emptyContent}\n onItemClick={handleItemClick}\n onItemHover={handleItemHover}\n classNames={classNames}\n menuRefs={menuRefs}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </div>\n {helperMessage && messagePosition === \"bottom\" && (\n <span className={cn(\"text-xs mt-0.5\", status === \"error\" && \"text-error\", status === \"warning\" && \"text-warning\", status === \"info\" && \"text-info\", status === \"success\" && \"text-success\", status === \"default\" && \"text-text-secondary\")}>{helperMessage}</span>\n )}\n </div>\n );\n },\n);\n\nCascader.displayName = \"Cascader\";\n\nexport type * from \"./types\";\nexport default Cascader;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tags-input/index.tsx"],"names":[],"mappings":"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","file":"chunk-NPK4ESMA.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState, useRef, useCallback, useMemo } from 'react'\n\nimport { X } from 'lucide-react'\nimport { cn, statusMessageVariants } from '../utils'\nimport { colorVars } from '../variants'\nimport type { TagsInputProps } from './types'\n\nconst wrapperVariants = cva(\n 'flex flex-wrap items-center gap-1 rounded-md border bg-background text-text-primary transition-colors cursor-text',\n {\n variants: {\n size: {\n xs: 'min-h-(--input-height-xs) px-(--input-padding-x-xs) py-0.5 text-xs',\n sm: 'min-h-(--input-height-sm) px-(--input-padding-x-sm) py-1 text-sm',\n md: 'min-h-(--input-height-md) px-(--input-padding-x-md) py-1 text-sm',\n lg: 'min-h-(--input-height-lg) px-(--input-padding-x-lg) py-1.5 text-base',\n },\n status: {\n default: 'border-border focus-within:border-primary',\n error: 'border-error focus-within:border-error',\n },\n },\n defaultVariants: { size: 'md', status: 'default' },\n },\n)\n\nconst tagVariants = cva(\n 'inline-flex items-center gap-0.5 rounded-md font-medium transition-colors bg-slot-10 text-slot',\n {\n variants: {\n size: {\n xs: 'h-4 px-1 text-[10px]',\n sm: 'h-5 px-1.5 text-xs',\n md: 'h-6 px-2 text-xs',\n lg: 'h-7 px-2.5 text-sm',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\nconst TagsInput = React.memo<TagsInputProps>(\n ({\n value,\n defaultValue = [],\n onChange,\n suggestions,\n placeholder = 'Add tag...',\n maxTags,\n allowDuplicates = false,\n separator = ',',\n addOnBlur = true,\n addOnPaste = true,\n validate,\n onTagAdd,\n onTagRemove,\n size = 'md',\n color = 'primary',\n disabled = false,\n readOnly = false,\n label,\n error,\n helperText,\n clearable = false,\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const tags = value !== undefined ? value : internalValue\n const [inputValue, setInputValue] = useState('')\n const [showSuggestions, setShowSuggestions] = useState(false)\n const [highlightedIdx, setHighlightedIdx] = useState(-1)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const separators = useMemo(\n () => (Array.isArray(separator) ? separator : [separator]),\n [separator],\n )\n\n const update = useCallback(\n (next: string[]) => {\n if (value === undefined) setInternalValue(next)\n onChange?.(next)\n },\n [value, onChange],\n )\n\n const addTag = useCallback(\n (raw: string) => {\n const tag = raw.trim()\n if (!tag) return false\n if (maxTags && tags.length >= maxTags) return false\n if (!allowDuplicates && tags.includes(tag)) return false\n if (validate && !validate(tag)) return false\n update([...tags, tag])\n onTagAdd?.(tag)\n return true\n },\n [tags, maxTags, allowDuplicates, validate, update, onTagAdd],\n )\n\n const removeTag = useCallback(\n (idx: number) => {\n const tag = tags[idx]\n const next = tags.filter((_, i) => i !== idx)\n update(next)\n if (tag) onTagRemove?.(tag)\n },\n [tags, update, onTagRemove],\n )\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' || separators.includes(e.key)) {\n e.preventDefault()\n if (showSuggestions && highlightedIdx >= 0 && filteredSuggestions[highlightedIdx]) {\n addTag(filteredSuggestions[highlightedIdx])\n setInputValue('')\n setShowSuggestions(false)\n setHighlightedIdx(-1)\n } else if (addTag(inputValue)) {\n setInputValue('')\n setShowSuggestions(false)\n }\n } else if (e.key === 'Backspace' && !inputValue && tags.length > 0) {\n removeTag(tags.length - 1)\n } else if (e.key === 'Escape') {\n setShowSuggestions(false)\n } else if (e.key === 'ArrowDown' && showSuggestions) {\n e.preventDefault()\n setHighlightedIdx((p) => Math.min(p + 1, filteredSuggestions.length - 1))\n } else if (e.key === 'ArrowUp' && showSuggestions) {\n e.preventDefault()\n setHighlightedIdx((p) => Math.max(p - 1, 0))\n }\n }\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return\n e.preventDefault()\n const text = e.clipboardData.getData('text')\n const parts = text.split(new RegExp(`[${separators.map((s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('')}]`))\n let added = false\n for (const part of parts) {\n if (addTag(part)) added = true\n }\n if (added) setInputValue('')\n }\n\n const handleBlur = () => {\n setShowSuggestions(false)\n if (addOnBlur && inputValue.trim()) {\n if (addTag(inputValue)) setInputValue('')\n }\n }\n\n const filteredSuggestions = useMemo(() => {\n if (!suggestions || !inputValue.trim()) return []\n const q = inputValue.toLowerCase()\n return suggestions.filter(\n (s) => s.toLowerCase().includes(q) && (allowDuplicates || !tags.includes(s)),\n )\n }, [suggestions, inputValue, tags, allowDuplicates])\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n setShowSuggestions(!!e.target.value.trim() && !!suggestions?.length)\n setHighlightedIdx(-1)\n }\n\n const atMax = !!maxTags && tags.length >= maxTags\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'tagsInput_root',\n 'flex flex-col gap-1.5',\n fullWidth ? 'w-full' : 'inline-flex',\n colorVars[color],\n classNames?.root,\n className,\n )}\n >\n {label && (\n <label data-slot=\"label\" className=\"text-sm font-medium text-text-primary\">\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n <div\n data-slot=\"wrapper\"\n className={cn(\n 'tagsInput_wrapper',\n wrapperVariants({ size, status: error ? 'error' : 'default' }),\n disabled && 'opacity-50 cursor-not-allowed',\n classNames?.wrapper,\n )}\n onClick={() => !disabled && !readOnly && inputRef.current?.focus()}\n >\n {tags.map((tag, idx) => (\n <span\n key={`${tag}-${idx}`}\n data-slot=\"tag\"\n className={cn('tagsInput_tag', tagVariants({ size }), classNames?.tag)}\n >\n <span className={cn('tagsInput_tagLabel truncate max-w-[150px]', classNames?.tagLabel)}>\n {tag}\n </span>\n {!readOnly && !disabled && (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); removeTag(idx) }}\n className={cn('tagsInput_tagClose shrink-0 hover:text-slot-80 cursor-pointer', classNames?.tagClose)}\n aria-label={`Remove ${tag}`}\n tabIndex={-1}\n >\n <X className=\"w-3 h-3\" />\n </button>\n )}\n </span>\n ))}\n\n {!atMax && !readOnly && !disabled && (\n <input\n ref={inputRef}\n type=\"text\"\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n onBlur={handleBlur}\n onFocus={() => inputValue.trim() && suggestions?.length && setShowSuggestions(true)}\n placeholder={tags.length === 0 ? placeholder : ''}\n disabled={disabled}\n readOnly={readOnly}\n data-slot=\"input\"\n className={cn(\n 'tagsInput_input',\n 'flex-1 min-w-[60px] bg-transparent outline-none placeholder:text-text-secondary/50',\n classNames?.input,\n )}\n />\n )}\n\n {clearable && tags.length > 0 && !disabled && !readOnly && (\n <button\n type=\"button\"\n onClick={(e) => { e.stopPropagation(); update([]) }}\n className=\"shrink-0 text-text-secondary hover:text-text-primary\"\n aria-label=\"Clear all tags\"\n tabIndex={-1}\n >\n <X className=\"w-3.5 h-3.5\" />\n </button>\n )}\n </div>\n\n {showSuggestions && filteredSuggestions.length > 0 && (\n <div className=\"absolute z-[var(--z-popover)] mt-1 w-full rounded-md border border-border bg-background shadow-md max-h-[200px] overflow-auto\">\n {filteredSuggestions.map((s, idx) => (\n <div\n key={s}\n onMouseDown={(e) => {\n e.preventDefault()\n addTag(s)\n setInputValue('')\n setShowSuggestions(false)\n }}\n onMouseEnter={() => setHighlightedIdx(idx)}\n className={cn(\n 'px-3 py-1.5 text-sm cursor-pointer transition-colors',\n idx === highlightedIdx ? 'bg-surface text-text-primary' : 'text-text-primary hover:bg-surface',\n )}\n >\n {s}\n </div>\n ))}\n </div>\n )}\n </div>\n\n {(error || helperText) && (\n <p data-slot=\"message\" className={cn('text-xs', error ? statusMessageVariants({ status: 'error' }) : 'text-text-secondary')}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nTagsInput.displayName = 'TagsInput'\n\nexport type * from './types'\nexport default TagsInput\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/number-input/index.tsx"],"names":[],"mappings":"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","file":"chunk-PD3O6ZH4.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Plus, Minus } from \"lucide-react\";\nimport React, { useId, useMemo, useCallback } from \"react\";\nimport { useControllable } from '../hooks/useControllable'\n\nimport { useRipple, RippleContainer } from \"../hooks/useRipple\";\nimport Spinner from \"../spinner\";\n\nimport {\n cn,\n getValidationStatus,\n iconSizes,\n statusMessageVariants,\n} from \"../utils\";\nimport type { NumberInputProps } from \"./types\";\n\nconst numberInputVariants = cva(\n \"w-full placeholder:text-text-secondary/50 rounded-md disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none text-text-primary transition-colors\",\n {\n variants: {\n status: {\n default: \"bg-background border border-border focus:border-primary\",\n error: \"bg-background border border-error focus:border-error\",\n warning: \"bg-background border border-warning focus:border-warning\",\n info: \"bg-background border border-info focus:border-info\",\n success: \"bg-background border border-success focus:border-success\",\n },\n size: {\n xs: \"h-(--input-height-xs) px-(--input-padding-x-xs) text-xs\",\n sm: \"h-(--input-height-sm) px-(--input-padding-x-sm) text-sm\",\n md: \"h-(--input-height-md) px-(--input-padding-x-md) text-base\",\n lg: \"h-(--input-height-lg) px-(--input-padding-x-lg) text-lg\",\n },\n fullWidth: {\n true: \"w-full\",\n false: \"max-w-full\",\n },\n controlsPosition: {\n right: \"\",\n sides: \"\",\n },\n },\n defaultVariants: {\n status: \"default\",\n size: \"md\",\n fullWidth: true,\n controlsPosition: \"right\",\n },\n },\n);\n\nconst controlButtonVariants = cva(\n \"flex items-center justify-center cursor-pointer transition-colors disabled:opacity-50 disabled:cursor-not-allowed\",\n {\n variants: {\n size: {\n xs: \"w-6 h-6\",\n sm: \"w-7 h-7\",\n md: \"w-8 h-8\",\n lg: \"w-10 h-10\",\n },\n position: {\n right: \"hover:bg-surface-hover\",\n sides: \"hover:bg-surface-hover\",\n },\n },\n defaultVariants: {\n size: \"md\",\n position: \"right\",\n },\n },\n);\n\nconst ControlButton = React.memo<React.ButtonHTMLAttributes<HTMLButtonElement> & { children: React.ReactNode }>(({ children, disabled, className, ...props }) => {\n const { ripples, onPointerDown, onKeyDown, onAnimationEnd } = useRipple(!disabled)\n return (\n <button className={cn(className, 'relative overflow-hidden')} onPointerDown={onPointerDown} onKeyDown={onKeyDown} disabled={disabled} {...props}>\n {children}\n <RippleContainer ripples={ripples} onAnimationEnd={onAnimationEnd} />\n </button>\n )\n});\n\nconst NumberInput = React.memo<NumberInputProps>(\n ({\n value,\n defaultValue,\n onChange,\n min,\n max,\n step = 1,\n precision,\n size = \"md\",\n label,\n placeholder,\n disabled = false,\n readOnly = false,\n required = false,\n controls = true,\n controlsPosition = \"right\",\n clampOnBlur = true,\n className,\n classNames,\n error,\n warning,\n info,\n success,\n helperText,\n loading = false,\n fullWidth = true,\n ref,\n id,\n name,\n }) => {\n const [currentValue, setCurrentValue] = useControllable<number | undefined>({ value, defaultValue, onChange });\n\n const uniqueId = useId();\n const inputId = id || `number-input-${uniqueId}`;\n const helperId = `number-input-helper-${uniqueId}`;\n\n // Use shared validation status utility - memoized\n const { status, message: helperMessage } = useMemo(\n () => getValidationStatus({ error, warning, info, success, helperText }),\n [error, warning, info, success, helperText],\n );\n\n // Format number to precision\n const formatValue = useCallback(\n (val: number | undefined): string => {\n if (val === undefined || isNaN(val)) return \"\";\n if (precision !== undefined) {\n return val.toFixed(precision);\n }\n return String(val);\n },\n [precision],\n );\n\n // Parse string to number\n const parseValue = useCallback((str: string): number | undefined => {\n if (str === \"\" || str === \"-\") return undefined;\n const parsed = parseFloat(str);\n return isNaN(parsed) ? undefined : parsed;\n }, []);\n\n // Clamp value to min/max\n const clampValue = useCallback(\n (val: number | undefined): number | undefined => {\n if (val === undefined) return undefined;\n let clamped = val;\n if (min !== undefined && clamped < min) clamped = min;\n if (max !== undefined && clamped > max) clamped = max;\n return clamped;\n },\n [min, max],\n );\n\n // Update value\n const updateValue = useCallback(\n (newValue: number | undefined) => {\n setCurrentValue(newValue);\n },\n [setCurrentValue],\n );\n\n // Handle input change\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n // Allow empty, minus sign, and valid numbers\n if (inputValue === \"\" || inputValue === \"-\") {\n updateValue(undefined);\n return;\n }\n\n const parsed = parseValue(inputValue);\n if (parsed === undefined) return // reject invalid input\n updateValue(parsed);\n },\n [parseValue, updateValue],\n );\n\n // Handle blur - clamp if needed\n const handleBlur = useCallback(() => {\n if (clampOnBlur && currentValue !== undefined) {\n const clamped = clampValue(currentValue);\n if (clamped !== currentValue) {\n updateValue(clamped);\n }\n }\n }, [clampOnBlur, currentValue, clampValue, updateValue]);\n\n // Increment value\n const handleIncrement = useCallback(() => {\n const newValue = (currentValue ?? 0) + step;\n const clamped = clampValue(newValue);\n updateValue(clamped);\n }, [currentValue, step, clampValue, updateValue]);\n\n // Decrement value\n const handleDecrement = useCallback(() => {\n const newValue = (currentValue ?? 0) - step;\n const clamped = clampValue(newValue);\n updateValue(clamped);\n }, [currentValue, step, clampValue, updateValue]);\n\n // Handle keyboard events\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (readOnly || disabled) return;\n\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n handleIncrement();\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n handleDecrement();\n }\n },\n [readOnly, disabled, handleIncrement, handleDecrement],\n );\n\n // Check if buttons should be disabled\n const isIncrementDisabled = useMemo(() => {\n if (disabled || readOnly || loading) return true;\n if (\n max !== undefined &&\n currentValue !== undefined &&\n currentValue >= max\n )\n return true;\n return false;\n }, [disabled, readOnly, loading, max, currentValue]);\n\n const isDecrementDisabled = useMemo(() => {\n if (disabled || readOnly || loading) return true;\n if (\n min !== undefined &&\n currentValue !== undefined &&\n currentValue <= min\n )\n return true;\n return false;\n }, [disabled, readOnly, loading, min, currentValue]);\n\n // Memoize aria-describedby\n const ariaDescribedBy = useMemo(() => {\n return helperMessage ? helperId : undefined;\n }, [helperMessage, helperId]);\n\n // Memoized className computations\n const rootClass = useMemo(\n () =>\n cn(\n \"number-input_root\",\n \"w-full flex flex-col relative\",\n !fullWidth && \"inline-block\",\n classNames?.root,\n ),\n [fullWidth, classNames?.root],\n );\n\n const labelClass = useMemo(\n () =>\n cn(\n \"number-input_label\",\n \"text-sm font-medium text-text-secondary mb-0.5\",\n classNames?.label,\n ),\n [classNames?.label],\n );\n\n const wrapperClass = useMemo(\n () =>\n cn(\n \"number-input_wrapper\",\n \"relative flex items-center\",\n loading && \"opacity-50 cursor-not-allowed\",\n controlsPosition === \"sides\" && \"gap-1\",\n classNames?.wrapper,\n ),\n [loading, controlsPosition, classNames?.wrapper],\n );\n\n const inputClass = useMemo(\n () =>\n cn(\n \"number-input_input\",\n numberInputVariants({ status, size, fullWidth, controlsPosition }),\n controls && controlsPosition === \"right\" && \"pr-16\",\n controls && controlsPosition === \"sides\" && \"text-center\",\n className,\n classNames?.input,\n ),\n [\n status,\n size,\n fullWidth,\n controlsPosition,\n controls,\n className,\n classNames?.input,\n ],\n );\n\n const statusBorderColor: Record<string, string> = {\n default: \"border-border\",\n error: \"border-error\",\n warning: \"border-warning\",\n info: \"border-info\",\n success: \"border-success\",\n };\n\n const controlsClass = useMemo(\n () =>\n cn(\n \"number-input_controls\",\n \"flex\",\n controlsPosition === \"right\" &&\n `absolute right-0 top-0 h-full border-l ${statusBorderColor[status] || \"border-border\"}`,\n controlsPosition === \"sides\" && \"gap-1\",\n classNames?.controls,\n ),\n [controlsPosition, classNames?.controls, status],\n );\n\n const helperClass = useMemo(\n () =>\n cn(\n \"number-input_helper\",\n statusMessageVariants({ status }),\n \"mt-0.5\",\n status === \"error\" ? classNames?.error : classNames?.helper,\n ),\n [status, classNames?.error, classNames?.helper],\n );\n\n const iconSize = iconSizes[size];\n\n const incrementButton = (\n <ControlButton\n type=\"button\"\n onClick={handleIncrement}\n disabled={isIncrementDisabled}\n data-slot=\"increment\"\n className={cn(\n \"number-input_increment h-full!\",\n controlButtonVariants({ size, position: controlsPosition }),\n controlsPosition === \"right\" && \"\",\n classNames?.increment,\n )}\n aria-label=\"Increment value\"\n tabIndex={-1}\n >\n <Plus className={iconSize} aria-hidden=\"true\" />\n </ControlButton>\n );\n\n const decrementButton = (\n <ControlButton\n type=\"button\"\n onClick={handleDecrement}\n disabled={isDecrementDisabled}\n data-slot=\"decrement\"\n className={cn(\n \"number-input_decrement h-full!\",\n controlButtonVariants({ size, position: controlsPosition }),\n controlsPosition === \"right\" && `border-r ${statusBorderColor[status] || \"border-border\"}`,\n classNames?.decrement,\n )}\n aria-label=\"Decrement value\"\n tabIndex={-1}\n >\n <Minus className={iconSize} aria-hidden=\"true\" />\n </ControlButton>\n );\n\n const inputElement = (\n <div data-slot=\"wrapper\" className={wrapperClass}>\n {controls && controlsPosition === \"sides\" && decrementButton}\n <input\n ref={ref}\n id={inputId}\n name={name}\n type=\"text\"\n inputMode=\"decimal\"\n data-slot=\"input\"\n className={inputClass}\n value={formatValue(currentValue)}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder}\n aria-invalid={status === \"error\"}\n aria-describedby={ariaDescribedBy}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue}\n />\n {controls && controlsPosition === \"right\" && (\n <div data-slot=\"controls\" className={controlsClass}>\n <div className=\"flex flex-row h-full\">\n {decrementButton}\n {incrementButton}\n </div>\n </div>\n )}\n {controls && controlsPosition === \"sides\" && incrementButton}\n {loading && (\n <div className=\"absolute right-3 flex items-center\">\n <Spinner aria-hidden=\"true\" />\n </div>\n )}\n </div>\n );\n\n return (\n <div data-slot=\"root\" className={rootClass}>\n {label && (\n <label htmlFor={inputId} data-slot=\"label\" className={labelClass}>\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </label>\n )}\n {inputElement}\n {helperMessage && (\n <p id={helperId} data-slot=\"helper\" className={helperClass}>\n {helperMessage}\n </p>\n )}\n </div>\n );\n },\n);\n\nNumberInput.displayName = \"NumberInput\";\n\nexport type * from \"./types\";\nexport default NumberInput;\n"]}
|
package/dist/chunk-PQOIW5CM.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback } from 'react';
|
|
2
|
-
|
|
3
|
-
// src/hooks/useControllable.ts
|
|
4
|
-
function useControllable({
|
|
5
|
-
value,
|
|
6
|
-
defaultValue,
|
|
7
|
-
onChange
|
|
8
|
-
}) {
|
|
9
|
-
const isControlled = value !== void 0;
|
|
10
|
-
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
11
|
-
const currentValue = isControlled ? value : internalValue;
|
|
12
|
-
const setValue = useCallback(
|
|
13
|
-
(next) => {
|
|
14
|
-
const nextValue = typeof next === "function" ? next(currentValue) : next;
|
|
15
|
-
if (!isControlled) {
|
|
16
|
-
setInternalValue(nextValue);
|
|
17
|
-
}
|
|
18
|
-
onChange?.(nextValue);
|
|
19
|
-
},
|
|
20
|
-
[isControlled, currentValue, onChange]
|
|
21
|
-
);
|
|
22
|
-
return [currentValue, setValue];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export { useControllable };
|
|
26
|
-
//# sourceMappingURL=chunk-PQOIW5CM.js.map
|
|
27
|
-
//# sourceMappingURL=chunk-PQOIW5CM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useControllable.ts"],"names":[],"mappings":";;;AAEO,SAAS,eAAA,CAAmB;AAAA,EACjC,KAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,YAAY,CAAA;AAE/D,EAAA,MAAM,YAAA,GAAe,eAAe,KAAA,GAAQ,aAAA;AAE5C,EAAA,MAAM,QAAA,GAAW,WAAA;AAAA,IACf,CAAC,IAAA,KAA2C;AAC1C,MAAA,MAAM,YAAY,OAAO,IAAA,KAAS,UAAA,GAAc,IAAA,CAAoC,YAAY,CAAA,GAAI,IAAA;AACpG,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,gBAAA,CAAiB,SAAS,CAAA;AAAA,MAC5B;AACA,MAAA,QAAA,GAAW,SAAS,CAAA;AAAA,IACtB,CAAA;AAAA,IACA,CAAC,YAAA,EAAc,YAAA,EAAc,QAAQ;AAAA,GACvC;AAEA,EAAA,OAAO,CAAC,cAAc,QAAQ,CAAA;AAChC","file":"chunk-PQOIW5CM.js","sourcesContent":["import { useCallback, useState } from 'react'\n\nexport function useControllable<T>({\n value,\n defaultValue,\n onChange,\n}: {\n value?: T\n defaultValue?: T\n onChange?: (value: T) => void\n}) {\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = useState(defaultValue)\n\n const currentValue = isControlled ? value : internalValue\n\n const setValue = useCallback(\n (next: T | ((prev: T | undefined) => T)) => {\n const nextValue = typeof next === 'function' ? (next as (prev: T | undefined) => T)(currentValue) : next\n if (!isControlled) {\n setInternalValue(nextValue)\n }\n onChange?.(nextValue)\n },\n [isControlled, currentValue, onChange],\n )\n\n return [currentValue, setValue] as const\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/descriptions/index.tsx"],"names":[],"mappings":";;;;;;AASA,IAAM,aAAA,GAAgB,IAAI,yCAAA,EAA2C;AAAA,EACnE,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA,MACR,IAAA,EAAM,sBAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,YAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,QAAA,EAAU,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,OAAO,iBAAA;AAAkB,GAC5D;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,IAAA;AAAA,IACV,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAED,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,iCAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,qCAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,uBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAGA,IAAM,kBAAA,GAA0D;AAAA,EAC9D,OAAA,EAAS,8BAAA;AAAA,EACT,KAAA,EAAO,sBAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,kBAAA,GAA0D;AAAA,EAC9D,OAAA,EAAS,eAAA;AAAA,EACT,KAAA,EAAO,eAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,mBAAA,GAA2D;AAAA,EAC/D,OAAA,EAAS,eAAA;AAAA,EACT,KAAA,EAAO,eAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,eAAe,KAAA,CAAM,IAAA;AAAA,EACzB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,MAAA,GAAS,CAAA;AAAA,IACT,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,MAAA,GAAS,YAAA;AAAA,IACT,QAAA,GAAW,IAAA;AAAA,IACX,OAAA,GAAU,IAAA;AAAA,IACV,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,WAAA,GAAc,mBAAmB,OAAO,CAAA;AAC9C,IAAA,MAAM,WAAA,GAAc,mBAAmB,OAAO,CAAA;AAC9C,IAAA,MAAM,YAAA,GAAe,oBAAoB,OAAO,CAAA;AAGhD,IAAA,MAAM,OAA6B,EAAC;AACpC,IAAA,IAAI,aAAiC,EAAC;AACtC,IAAA,IAAI,WAAA,GAAc,CAAA;AAElB,IAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACtB,MAAA,MAAM,QAAA,GAAW,KAAK,IAAA,IAAQ,CAAA;AAE9B,MAAA,IAAI,WAAA,GAAc,WAAW,MAAA,EAAQ;AACnC,QAAA,IAAA,CAAK,KAAK,UAAU,CAAA;AACpB,QAAA,UAAA,GAAa,CAAC,IAAI,CAAA;AAClB,QAAA,WAAA,GAAc,QAAA;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AACpB,QAAA,WAAA,IAAe,QAAA;AAAA,MACjB;AAAA,IACF,CAAC,CAAA;AAED,IAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,MAAA,IAAA,CAAK,KAAK,UAAU,CAAA;AAAA,IACtB;AAEA,IAAA,IAAI,WAAW,UAAA,EAAY;AACzB,MAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,UAAU,OAAA,EAAS,CAAA,EAAG,QAAA,IAAY,YAAY,CAAA;AAAA,UAC5E,IAAA,EAAK,cAAA;AAAA,UAEL,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,UAAA,EAAY,IAAA,EAC5C,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,QAAA,KAAa;AAC3B,YAAA,MAAM,SAAA,GAAY,QAAA,KAAa,IAAA,CAAK,MAAA,GAAS,CAAA;AAG7C,YAAA,IAAI,WAAA,GAAc,CAAA;AAClB,YAAA,MAAM,gBAAA,GAAmB,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAS;AACzC,cAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,CAAA;AAC1B,cAAA,WAAA,IAAe,IAAA;AACf,cAAA,OAAO,WAAA,IAAe,MAAA;AAAA,YACxB,CAAC,CAAA;AAED,YAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,UAAA,EAAY,IAAI,CAAA,EAAG,WAAA,EAAU,MAAA,EACjE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,qBACd,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBAEC,OAAA,EAAS,KAAK,IAAA,IAAQ,CAAA;AAAA,kBACtB,SAAA,EAAW,EAAA;AAAA,oBACT,oBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,oBAC/B,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,OAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA,iBAAA;AAAA,gBAVD,CAAA,EAAG,KAAK,GAAG,CAAA,MAAA;AAAA,eAYnB,CAAA,EACH,CAAA;AAAA,8BACA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,qBAAqB,UAAA,EAAY,IAAI,CAAA,EAAG,WAAA,EAAU,MAAA,EACjE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,qBACd,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBAEC,OAAA,EAAS,KAAK,IAAA,IAAQ,CAAA;AAAA,kBACtB,SAAA,EAAW,EAAA;AAAA,oBACT,sBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,oBAC/B,SAAA,IAAa,YAAA;AAAA,oBACb,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,SAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA,iBAAA;AAAA,gBAXD,CAAA,EAAG,KAAK,GAAG,CAAA,MAAA;AAAA,eAanB,CAAA,EACH;AAAA,aAAA,EAAA,EAnCmB,QAoCrB,CAAA;AAAA,UAEJ,CAAC,CAAA,EACH;AAAA;AAAA,OACF;AAGF,MAAA,IAAI,SAAS,KAAA,EAAO;AAClB,QAAA,4BACG,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,qBAAqB,SAAA,CAAU,KAAK,CAAA,EAAG,UAAA,EAAY,MAAM,SAAS,CAAA,EAAG,WAAA,EAAU,MAAA,EAAQ,GAAG,KAAA,EACrH,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,oBAAA,EAAsB,0CAA0C,UAAA,EAAY,KAAK,CAAA,EAAG,WAAA,EAAU,OAAA,EAC9G,QAAA,EAAA;AAAA,YAAA,KAAA,oBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EAA6C,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YAC3E,KAAA,oBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,KAAK,CAAA,EAAG,WAAA,EAAU,OAAA,EAAS,QAAA,EAAA,KAAA,EAAM;AAAA,WAAA,EAClG,CAAA;AAAA,UACC;AAAA,SAAA,EACH,CAAA;AAAA,MAEJ;AAEA,MAAA,uBACE,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,WAAW,EAAA,CAAG,mBAAA,EAAqB,SAAA,CAAU,KAAK,GAAG,aAAA,CAAc,EAAE,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,QAAA,IAAY,YAAA,EAAc,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,UAChJ,WAAA,EAAU,MAAA;AAAA,UACV,IAAA,EAAK,cAAA;AAAA,UACJ,GAAG,KAAA;AAAA,UAEJ,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,UAAA,EAAY,IAAA,EAC5C,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,QAAA,KAAa;AAC3B,YAAA,MAAM,SAAA,GAAY,QAAA,KAAa,IAAA,CAAK,MAAA,GAAS,CAAA;AAG7C,YAAA,IAAI,WAAA,GAAc,CAAA;AAClB,YAAA,MAAM,gBAAA,GAAmB,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAS;AACzC,cAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,CAAA;AAC1B,cAAA,WAAA,IAAe,IAAA;AACf,cAAA,OAAO,WAAA,IAAe,MAAA;AAAA,YACxB,CAAC,CAAA;AAED,YAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,UAAA,EAAY,IAAI,CAAA,EAAG,WAAA,EAAU,MAAA,EACjE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,qBACd,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBAEC,OAAA,EAAS,KAAK,IAAA,IAAQ,CAAA;AAAA,kBACtB,SAAA,EAAW,EAAA;AAAA,oBACT,oBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,oBAC/B,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,OAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA,iBAAA;AAAA,gBAVD,CAAA,EAAG,KAAK,GAAG,CAAA,MAAA;AAAA,eAYnB,CAAA,EACH,CAAA;AAAA,8BACA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,EAAA,CAAG,qBAAqB,UAAA,EAAY,IAAI,CAAA,EAAG,WAAA,EAAU,MAAA,EACjE,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,qBACd,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBAEC,OAAA,EAAS,KAAK,IAAA,IAAQ,CAAA;AAAA,kBACtB,SAAA,EAAW,EAAA;AAAA,oBACT,sBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,oBAC/B,SAAA,IAAa,YAAA;AAAA,oBACb,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,SAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA,iBAAA;AAAA,gBAXD,CAAA,EAAG,KAAK,GAAG,CAAA,MAAA;AAAA,eAanB,CAAA,EACH;AAAA,aAAA,EAAA,EAnCmB,QAoCrB,CAAA;AAAA,UAEJ,CAAC,CAAA,EACH;AAAA;AAAA,OACF;AAAA,IAEJ;AAGA,IAAA,MAAM,sBAAA,mBACJ,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,aAAA,CAAc,EAAE,UAAU,OAAA,EAAS,CAAA,EAAG,QAAA,IAAY,YAAY,CAAA;AAAA,QAC5E,IAAA,EAAK,cAAA;AAAA,QAEL,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,UAAA,EAAY,IAAA,EAC5C,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,QAAA,KAAa;AAC3B,UAAA,MAAM,SAAA,GAAY,QAAA,KAAa,IAAA,CAAK,MAAA,GAAS,CAAA;AAG7C,UAAA,IAAI,WAAA,GAAc,CAAA;AAClB,UAAA,MAAM,gBAAA,GAAmB,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAS;AACzC,YAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,CAAA;AAC1B,YAAA,WAAA,IAAe,IAAA,GAAO,CAAA;AACtB,YAAA,OAAO,eAAe,MAAA,GAAS,CAAA;AAAA,UACjC,CAAC,CAAA;AAED,UAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAkB,SAAA,EAAW,EAAA,CAAG,qBAAqB,UAAA,EAAY,IAAI,CAAA,EAAG,WAAA,EAAU,MAAA,EAChF,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,KAAc;AAC5B,YAAA,MAAM,QAAA,GAAW,KAAK,IAAA,IAAQ,CAAA;AAC9B,YAAA,MAAM,YAAA,GAAe,WAAW,CAAA,GAAI,CAAA;AAEpC,YAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,oBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,SAAA,IAAa,YAAA;AAAA,oBACb,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,OAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,8BACA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,YAAA;AAAA,kBACT,SAAA,EAAW,EAAA;AAAA,oBACT,sBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,oBAC/B,SAAA,IAAa,YAAA;AAAA,oBACb,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,SAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,aAAA,EAAA,EAxBmB,KAAK,GAyB1B,CAAA;AAAA,UAEJ,CAAC,KAjCM,QAkCT,CAAA;AAAA,QAEJ,CAAC,CAAA,EACH;AAAA;AAAA,KACF;AAGF,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA,4BACG,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAW,EAAA,CAAG,qBAAqB,SAAA,CAAU,KAAK,CAAA,EAAG,UAAA,EAAY,MAAM,SAAS,CAAA,EAAG,WAAA,EAAU,MAAA,EAAQ,GAAG,KAAA,EACrH,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,oBAAA,EAAsB,0CAA0C,UAAA,EAAY,KAAK,CAAA,EAAG,WAAA,EAAU,OAAA,EAC9G,QAAA,EAAA;AAAA,UAAA,KAAA,oBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EAA6C,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UAC3E,KAAA,oBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,oBAAA,EAAsB,UAAA,EAAY,KAAK,CAAA,EAAG,WAAA,EAAU,OAAA,EAAS,QAAA,EAAA,KAAA,EAAM;AAAA,SAAA,EAClG,CAAA;AAAA,QACC;AAAA,OAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,mBAAA,EAAqB,SAAA,CAAU,KAAK,GAAG,aAAA,CAAc,EAAE,QAAA,EAAU,OAAA,EAAS,CAAA,EAAG,QAAA,IAAY,YAAA,EAAc,UAAA,EAAY,MAAM,SAAS,CAAA;AAAA,QAChJ,WAAA,EAAU,MAAA;AAAA,QACV,IAAA,EAAK,cAAA;AAAA,QACJ,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAM,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,UAAA,EAAY,IAAA,EAC5C,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,GAAA,EAAK,QAAA,KAAa;AAC3B,UAAA,MAAM,SAAA,GAAY,QAAA,KAAa,IAAA,CAAK,MAAA,GAAS,CAAA;AAG7C,UAAA,IAAI,WAAA,GAAc,CAAA;AAClB,UAAA,MAAM,gBAAA,GAAmB,GAAA,CAAI,GAAA,CAAI,CAAC,IAAA,KAAS;AACzC,YAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,CAAA;AAC1B,YAAA,WAAA,IAAe,IAAA,GAAO,CAAA;AACtB,YAAA,OAAO,eAAe,MAAA,GAAS,CAAA;AAAA,UACjC,CAAC,CAAA;AAED,UAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAkB,SAAA,EAAW,EAAA,CAAG,qBAAqB,UAAA,EAAY,IAAI,CAAA,EAAG,WAAA,EAAU,MAAA,EAChF,QAAA,EAAA,GAAA,CAAI,GAAA,CAAI,CAAC,MAAM,SAAA,KAAc;AAC5B,YAAA,MAAM,QAAA,GAAW,KAAK,IAAA,IAAQ,CAAA;AAC9B,YAAA,MAAM,YAAA,GAAe,WAAW,CAAA,GAAI,CAAA;AAEpC,YAAA,uBACE,IAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,oBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,SAAA,IAAa,YAAA;AAAA,oBACb,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,OAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,eACR;AAAA,8BACA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,YAAA;AAAA,kBACT,SAAA,EAAW,EAAA;AAAA,oBACT,sBAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAAG,WAAA;AAAA,oBAAa,YAAA;AAAA,oBAC1C,gBAAA,CAAiB,SAAS,CAAA,IAAK,YAAA;AAAA,oBAC/B,SAAA,IAAa,YAAA;AAAA,oBACb,UAAA,EAAY;AAAA,mBACd;AAAA,kBACA,WAAA,EAAU,SAAA;AAAA,kBAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,aAAA,EAAA,EAxBmB,KAAK,GAyB1B,CAAA;AAAA,UAEJ,CAAC,KAjCM,QAkCT,CAAA;AAAA,QAEJ,CAAC,CAAA,EACH;AAAA;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;AAG3B,IAAO,oBAAA,GAAQ","file":"chunk-PRDJLQLB.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { DescriptionsItem, DescriptionsProps, DescriptionsVariant } from './types'\n\nconst tableVariants = cva('w-full border-separate border-spacing-0', {\n variants: {\n bordered: {\n true: 'border border-border',\n false: '',\n },\n rounded: {\n true: 'rounded-lg',\n false: '',\n },\n },\n compoundVariants: [\n { bordered: true, rounded: true, class: 'overflow-hidden' },\n ],\n defaultVariants: {\n bordered: true,\n rounded: true,\n },\n})\n\nconst labelCellVariants = cva(\n 'font-semibold border-b border-r',\n {\n variants: {\n size: {\n xs: 'py-1 px-2 text-[10px]',\n sm: 'py-2 px-3 text-xs',\n md: 'py-3 px-4 text-sm',\n lg: 'py-4 px-5 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst valueCellVariants = cva(\n 'text-text-primary border-b border-r',\n {\n variants: {\n size: {\n xs: 'py-1 px-2 text-[10px]',\n sm: 'py-2 px-3 text-xs',\n md: 'py-3 px-4 text-sm',\n lg: 'py-4 px-5 text-base',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\n// Slot-based variant styles — colorVars[color] on root sets --_c\nconst labelVariantStyles: Record<DescriptionsVariant, string> = {\n default: 'bg-slot-10 text-text-primary',\n solid: 'bg-slot text-slot-fg',\n soft: 'bg-slot-10 text-slot',\n}\n\nconst valueVariantStyles: Record<DescriptionsVariant, string> = {\n default: 'bg-background',\n solid: 'bg-background',\n soft: 'bg-slot-10',\n}\n\nconst borderVariantStyles: Record<DescriptionsVariant, string> = {\n default: 'border-border',\n solid: 'border-border',\n soft: 'border-slot-20',\n}\n\nconst Descriptions = React.memo<DescriptionsProps>(\n ({\n items,\n column = 3,\n color = 'default',\n size = 'md',\n variant = 'default',\n layout = 'horizontal',\n bordered = true,\n rounded = true,\n className,\n classNames,\n title,\n extra,\n ref,\n ...props\n }) => {\n const labelColors = labelVariantStyles[variant]\n const valueColors = valueVariantStyles[variant]\n const borderColors = borderVariantStyles[variant]\n\n // Split items into rows based on column count and span\n const rows: DescriptionsItem[][] = []\n let currentRow: DescriptionsItem[] = []\n let currentSpan = 0\n\n items.forEach((item) => {\n const itemSpan = item.span || 1\n\n if (currentSpan + itemSpan > column) {\n rows.push(currentRow)\n currentRow = [item]\n currentSpan = itemSpan\n } else {\n currentRow.push(item)\n currentSpan += itemSpan\n }\n })\n\n if (currentRow.length > 0) {\n rows.push(currentRow)\n }\n\n if (layout === 'vertical') {\n const tableContent = (\n <table\n className={cn(tableVariants({ bordered, rounded }), bordered && borderColors)}\n role=\"presentation\"\n >\n <tbody data-slot=\"body\" className={classNames?.body}>\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1\n\n // Calculate which items reach the right edge\n let colPosition = 0\n const itemsAtRightEdge = row.map((item) => {\n const span = item.span || 1\n colPosition += span\n return colPosition >= column\n })\n\n return (\n <React.Fragment key={rowIndex}>\n <tr className={cn('descriptions_item', classNames?.item)} data-slot='item'>\n {row.map((item, itemIndex) => (\n <th\n key={`${item.key}-label`}\n colSpan={item.span || 1}\n className={cn(\n 'descriptions_label',\n labelCellVariants({ size }), labelColors, borderColors,\n itemsAtRightEdge[itemIndex] && 'border-r-0',\n classNames?.label,\n )}\n data-slot='label'\n >\n {item.label}\n </th>\n ))}\n </tr>\n <tr className={cn('descriptions_item', classNames?.item)} data-slot='item'>\n {row.map((item, itemIndex) => (\n <td\n key={`${item.key}-value`}\n colSpan={item.span || 1}\n className={cn(\n 'descriptions_content',\n valueCellVariants({ size }), valueColors, borderColors,\n itemsAtRightEdge[itemIndex] && 'border-r-0',\n isLastRow && 'border-b-0',\n classNames?.content,\n )}\n data-slot='content'\n >\n {item.children}\n </td>\n ))}\n </tr>\n </React.Fragment>\n )\n })}\n </tbody>\n </table>\n )\n\n if (title || extra) {\n return (\n <div ref={ref} className={cn('descriptions_root', colorVars[color], classNames?.root, className)} data-slot=\"root\" {...props}>\n <div className={cn('descriptions_title', 'flex items-center justify-between mb-3', classNames?.title)} data-slot=\"title\">\n {title && <div className=\"text-base font-semibold text-text-primary\">{title}</div>}\n {extra && <div className={cn('descriptions_extra', classNames?.extra)} data-slot=\"extra\">{extra}</div>}\n </div>\n {tableContent}\n </div>\n )\n }\n\n return (\n <table\n ref={ref as React.Ref<HTMLTableElement>}\n className={cn('descriptions_root', colorVars[color], tableVariants({ bordered, rounded }), bordered && borderColors, classNames?.root, className)}\n data-slot=\"root\"\n role=\"presentation\"\n {...props}\n >\n <tbody data-slot=\"body\" className={classNames?.body}>\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1\n\n // Calculate which items reach the right edge\n let colPosition = 0\n const itemsAtRightEdge = row.map((item) => {\n const span = item.span || 1\n colPosition += span\n return colPosition >= column\n })\n\n return (\n <React.Fragment key={rowIndex}>\n <tr className={cn('descriptions_item', classNames?.item)} data-slot='item'>\n {row.map((item, itemIndex) => (\n <th\n key={`${item.key}-label`}\n colSpan={item.span || 1}\n className={cn(\n 'descriptions_label',\n labelCellVariants({ size }), labelColors, borderColors,\n itemsAtRightEdge[itemIndex] && 'border-r-0',\n classNames?.label,\n )}\n data-slot='label'\n >\n {item.label}\n </th>\n ))}\n </tr>\n <tr className={cn('descriptions_item', classNames?.item)} data-slot='item'>\n {row.map((item, itemIndex) => (\n <td\n key={`${item.key}-value`}\n colSpan={item.span || 1}\n className={cn(\n 'descriptions_content',\n valueCellVariants({ size }), valueColors, borderColors,\n itemsAtRightEdge[itemIndex] && 'border-r-0',\n isLastRow && 'border-b-0',\n classNames?.content,\n )}\n data-slot='content'\n >\n {item.children}\n </td>\n ))}\n </tr>\n </React.Fragment>\n )\n })}\n </tbody>\n </table>\n )\n }\n\n // Horizontal layout\n const horizontalTableContent = (\n <table\n className={cn(tableVariants({ bordered, rounded }), bordered && borderColors)}\n role=\"presentation\"\n >\n <tbody data-slot=\"body\" className={classNames?.body}>\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1\n\n // Calculate which value cells reach the right edge\n let colPosition = 0\n const valueAtRightEdge = row.map((item) => {\n const span = item.span || 1\n colPosition += span * 2 // Each item takes label + value columns\n return colPosition >= column * 2\n })\n\n return (\n <tr key={rowIndex} className={cn('descriptions_item', classNames?.item)} data-slot='item'>\n {row.map((item, itemIndex) => {\n const itemSpan = item.span || 1\n const valueColSpan = itemSpan * 2 - 1\n\n return (\n <React.Fragment key={item.key}>\n <th\n className={cn(\n 'descriptions_label',\n labelCellVariants({ size }), labelColors, borderColors,\n isLastRow && 'border-b-0',\n classNames?.label,\n )}\n data-slot='label'\n >\n {item.label}\n </th>\n <td\n colSpan={valueColSpan}\n className={cn(\n 'descriptions_content',\n valueCellVariants({ size }), valueColors, borderColors,\n valueAtRightEdge[itemIndex] && 'border-r-0',\n isLastRow && 'border-b-0',\n classNames?.content,\n )}\n data-slot='content'\n >\n {item.children}\n </td>\n </React.Fragment>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )\n\n if (title || extra) {\n return (\n <div ref={ref} className={cn('descriptions_root', colorVars[color], classNames?.root, className)} data-slot=\"root\" {...props}>\n <div className={cn('descriptions_title', 'flex items-center justify-between mb-3', classNames?.title)} data-slot=\"title\">\n {title && <div className=\"text-base font-semibold text-text-primary\">{title}</div>}\n {extra && <div className={cn('descriptions_extra', classNames?.extra)} data-slot=\"extra\">{extra}</div>}\n </div>\n {horizontalTableContent}\n </div>\n )\n }\n\n return (\n <table\n ref={ref as React.Ref<HTMLTableElement>}\n className={cn('descriptions_root', colorVars[color], tableVariants({ bordered, rounded }), bordered && borderColors, classNames?.root, className)}\n data-slot=\"root\"\n role=\"presentation\"\n {...props}\n >\n <tbody data-slot=\"body\" className={classNames?.body}>\n {rows.map((row, rowIndex) => {\n const isLastRow = rowIndex === rows.length - 1\n\n // Calculate which value cells reach the right edge\n let colPosition = 0\n const valueAtRightEdge = row.map((item) => {\n const span = item.span || 1\n colPosition += span * 2 // Each item takes label + value columns\n return colPosition >= column * 2\n })\n\n return (\n <tr key={rowIndex} className={cn('descriptions_item', classNames?.item)} data-slot='item'>\n {row.map((item, itemIndex) => {\n const itemSpan = item.span || 1\n const valueColSpan = itemSpan * 2 - 1\n\n return (\n <React.Fragment key={item.key}>\n <th\n className={cn(\n 'descriptions_label',\n labelCellVariants({ size }), labelColors, borderColors,\n isLastRow && 'border-b-0',\n classNames?.label,\n )}\n data-slot='label'\n >\n {item.label}\n </th>\n <td\n colSpan={valueColSpan}\n className={cn(\n 'descriptions_content',\n valueCellVariants({ size }), valueColors, borderColors,\n valueAtRightEdge[itemIndex] && 'border-r-0',\n isLastRow && 'border-b-0',\n classNames?.content,\n )}\n data-slot='content'\n >\n {item.children}\n </td>\n </React.Fragment>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n )\n },\n)\n\nDescriptions.displayName = 'Descriptions'\n\nexport type * from './types'\nexport default Descriptions\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/useSelectBase.ts"],"names":[],"mappings":"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","file":"chunk-QDJ5PZPP.js","sourcesContent":["import { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useCallback, useId } from \"react\";\n\nimport { useMenuNavigation } from \"../hooks/useMenuNavigation\";\nimport { getValidationStatus } from \"../utils\";\n\ninterface SelectBaseOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n group?: string;\n}\n\ninterface UseSelectBaseConfig<O extends SelectBaseOption> {\n options: O[];\n /** Called when the user presses Enter on a highlighted option (or clicks one via the hook's helpers). */\n onSelectOption: (option: O) => void;\n virtualizeThreshold?: number;\n maxDropdownHeight?: number;\n label?: string;\n idPrefix: string; // 'select' or 'multiselect'\n error?: string | boolean;\n warning?: string | boolean;\n info?: string | boolean;\n success?: string | boolean;\n helperText?: string;\n}\n\nexport interface FlattenedItem<O extends SelectBaseOption> {\n type: \"option\" | \"group\";\n data: O | string;\n}\n\n\nexport function useSelectBase<O extends SelectBaseOption>(\n config: UseSelectBaseConfig<O>,\n) {\n const {\n options,\n virtualizeThreshold = 50,\n maxDropdownHeight = 300,\n label,\n idPrefix,\n error,\n warning,\n info,\n success,\n helperText,\n } = config;\n\n // -- IDs / validation -------------------------------------------------------\n const uniqueId = useId();\n const labelId = `${idPrefix}-label-${uniqueId}`;\n const listboxId = `${idPrefix}-listbox-${uniqueId}`;\n const helperId = `${idPrefix}-helper-${uniqueId}`;\n\n const { status, message: helperMessage } = getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n });\n\n // -- State ------------------------------------------------------------------\n const [isOpen, setIsOpen] = React.useState(false);\n const [parentNode, setParentNode] = React.useState<HTMLDivElement | null>(\n null,\n );\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [showTopArrow, setShowTopArrow] = React.useState(false);\n const [showBottomArrow, setShowBottomArrow] = React.useState(false);\n\n // -- Refs -------------------------------------------------------------------\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const scrollContainerRef = React.useRef<HTMLDivElement>(null);\n\n // Store onSelectOption in a ref so handleKeyDown doesn't depend on it\n const onSelectRef = React.useRef(config.onSelectOption);\n React.useEffect(() => {\n onSelectRef.current = config.onSelectOption;\n }, [config.onSelectOption]);\n\n // -- Memos ------------------------------------------------------------------\n const groupedOptions = React.useMemo(() => {\n const groups: Record<string, O[]> = {};\n const ungrouped: O[] = [];\n\n options.forEach((option) => {\n if (option.group) {\n if (!groups[option.group]) {\n groups[option.group] = [];\n }\n groups[option.group]!.push(option);\n } else {\n ungrouped.push(option);\n }\n });\n\n return { groups, ungrouped };\n }, [options]);\n\n const flattenedOptions = React.useMemo(() => {\n const items: Array<FlattenedItem<O>> = [];\n\n groupedOptions.ungrouped.forEach((option) => {\n items.push({ type: \"option\", data: option });\n });\n\n Object.entries(groupedOptions.groups).forEach(\n ([groupName, groupOptions]) => {\n items.push({ type: \"group\", data: groupName });\n (groupOptions as O[]).forEach((option) => {\n items.push({ type: \"option\", data: option });\n });\n },\n );\n\n return items;\n }, [groupedOptions]);\n\n const filteredOptions = React.useMemo(() => {\n if (!searchQuery) return flattenedOptions;\n\n const query = searchQuery.toLowerCase();\n const matchingOptions = new Set(\n flattenedOptions.filter(\n (item) =>\n item.type === \"option\" &&\n (item.data as O).label.toLowerCase().includes(query),\n ),\n );\n\n // Build set of group names that have matching options - O(n)\n const matchingGroups = new Set<string>();\n for (const item of flattenedOptions) {\n if (item.type === \"option\" && matchingOptions.has(item)) {\n const group = (item.data as O).group;\n if (group) matchingGroups.add(group);\n }\n }\n\n return flattenedOptions.filter((item) => {\n if (item.type === \"group\") {\n return matchingGroups.has(item.data as string);\n }\n return matchingOptions.has(item);\n });\n }, [flattenedOptions, searchQuery]);\n\n const selectableOptions = React.useMemo(\n () =>\n filteredOptions.filter(\n (item) => item.type === \"option\" && !(item.data as O).disabled,\n ),\n [filteredOptions],\n );\n\n const enabledIndices = React.useMemo(\n () => Array.from({ length: selectableOptions.length }, (_, i) => i),\n [selectableOptions.length],\n );\n\n const handleMenuClose = React.useCallback(() => {\n setIsOpen(false);\n setSearchQuery(\"\");\n inputRef.current?.blur();\n }, []);\n\n const onMenuSelect = React.useCallback(\n (index: number) => {\n const item = selectableOptions[index];\n if (item) {\n onSelectRef.current(item.data as O);\n }\n },\n [selectableOptions],\n );\n\n const {\n highlightedIndex,\n setHighlightedIndex,\n handleKeyDown: menuHandleKeyDown,\n } = useMenuNavigation({\n enabledIndices,\n isOpen,\n onClose: handleMenuClose,\n onSelect: onMenuSelect,\n onOpen: () => setIsOpen(true),\n loop: false,\n });\n\n // Reset highlight when filtered options change (e.g. search query changes)\n React.useEffect(() => {\n setHighlightedIndex(-1);\n }, [filteredOptions, setHighlightedIndex]);\n\n // Wrap the hook's handler: Space must type in the search input, not select\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (isOpen && e.key === \" \") {\n e.stopPropagation();\n return;\n }\n menuHandleKeyDown(e);\n },\n [isOpen, menuHandleKeyDown],\n );\n\n // Prevent Space keyup from bubbling to the <button> trigger (native button\n // activation fires on keyup, which would toggle the Popover closed).\n const handleKeyUp = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (isOpen && e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [isOpen],\n );\n\n const shouldVirtualize = filteredOptions.length > virtualizeThreshold;\n\n // -- Virtualizer ------------------------------------------------------------\n // Use the single scrollContainerRef as the virtualizer scroll element.\n // No separate inner scroll container — avoids nested scroll conflicts.\n const virtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => scrollContainerRef.current,\n estimateSize: () => 40,\n enabled: shouldVirtualize,\n overscan: 10,\n });\n\n const virtualizerRef = React.useRef(virtualizer);\n React.useEffect(() => {\n virtualizerRef.current = virtualizer;\n }, [virtualizer]);\n\n // Legacy refCallback kept for API compat — just updates parentNode for\n // any external consumers, but virtualizer now uses scrollContainerRef.\n const refCallback = useCallback((node: HTMLDivElement) => {\n if (node) {\n setParentNode(node);\n }\n }, []);\n\n // -- Handlers ---------------------------------------------------------------\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value);\n setIsOpen(true);\n },\n [],\n );\n\n const handleInputClick = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n setIsOpen(true);\n },\n [],\n );\n\n const handleScroll = React.useCallback(\n (e: React.UIEvent<HTMLDivElement>) => {\n const element = e.currentTarget;\n const { scrollTop, scrollHeight, clientHeight } = element;\n\n setShowTopArrow(scrollTop > 0);\n setShowBottomArrow(scrollTop + clientHeight < scrollHeight - 1);\n },\n [],\n );\n\n // Scroll highlighted option into view\n React.useEffect(() => {\n if (highlightedIndex < 0) return;\n const option = selectableOptions[highlightedIndex];\n if (!option) return;\n\n const optionIndex = filteredOptions.indexOf(option);\n if (optionIndex < 0) return;\n\n if (shouldVirtualize) {\n virtualizerRef.current.scrollToIndex(optionIndex, { align: \"auto\" });\n } else {\n // Non-virtualized: find the DOM element and scroll it into view\n const container = scrollContainerRef.current;\n if (container) {\n const el = container.querySelector(`[data-option-index=\"${optionIndex}\"]`) as HTMLElement;\n el?.scrollIntoView?.({ block: \"nearest\" });\n }\n }\n }, [highlightedIndex, selectableOptions, filteredOptions, shouldVirtualize]);\n\n // -- Effects ----------------------------------------------------------------\n // Check initial scroll state when dropdown opens\n React.useEffect(() => {\n if (isOpen) {\n const timeoutId = setTimeout(() => {\n const element = scrollContainerRef.current;\n if (element) {\n const { scrollTop, scrollHeight, clientHeight } = element;\n setShowTopArrow(scrollTop > 0);\n setShowBottomArrow(scrollTop + clientHeight < scrollHeight - 1);\n }\n }, 50);\n\n return () => clearTimeout(timeoutId);\n } else {\n setShowTopArrow(false);\n setShowBottomArrow(false);\n return undefined;\n }\n }, [isOpen, filteredOptions, shouldVirtualize]);\n\n // -- Return -----------------------------------------------------------------\n return {\n // State\n isOpen,\n setIsOpen,\n searchQuery,\n setSearchQuery,\n highlightedIndex,\n setHighlightedIndex,\n showTopArrow,\n showBottomArrow,\n\n // Refs\n triggerRef,\n inputRef,\n scrollContainerRef,\n\n // Computed\n filteredOptions,\n selectableOptions,\n shouldVirtualize,\n virtualizer,\n maxDropdownHeight,\n label,\n\n // IDs & validation\n uniqueId,\n labelId,\n listboxId,\n helperId,\n status,\n helperMessage,\n\n // Handlers\n handleInputChange,\n handleInputClick,\n handleScroll,\n handleKeyDown,\n handleKeyUp,\n refCallback,\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/popover/index.tsx"],"names":[],"mappings":";;;;;;AAUA,SAAS,OAAA,CAAQ;AAAA,EACf,GAAG;AACL,CAAA,EAAuD;AACrD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,IAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,SAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,GAAG;AACL,CAAA,EAA0D;AACxD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,IAAM,sBAAA,GAAyB,GAAA;AAAA,EAC7B,sqBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,aAAA;AAAA,QACJ,EAAA,EAAI,eAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,oDAAA;AAAA,QACT,KAAA,EAAO,yCAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACR;AAAA,MACA,KAAA,EAAO;AAAA,KACT;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM,IAAA;AAAA,MACN,OAAA,EAAS,SAAA;AAAA,MACT,KAAA,EAAO;AAAA;AACT;AAEJ,CAAA;AAQA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,KAAA,GAAQ,QAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,SAAA;AAAA,EACV,KAAA,GAAQ,SAAA;AAAA,EACR,UAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA;AAAA,QACA,sBAAA,CAAuB,EAAE,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,QAC/C,SAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,GAAG;AACL,CAAA,EAAyD;AACvD,EAAA,uBACE,GAAA;AAAA,IAAkB,gBAAA,CAAA,MAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACT,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-ROQGBDET.js","sourcesContent":["'use client'\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { PopoverClassNames } from './types'\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return (\n <PopoverPrimitive.Root\n data-slot=\"popover\"\n {...props}\n />\n )\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return (\n <PopoverPrimitive.Trigger\n data-slot=\"popover-trigger\"\n {...props}\n />\n )\n}\n\nconst popoverContentVariants = cva(\n 'overflow-hidden will-change-[transform,_opacity] duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 z-[var(--z-popover)] w-72 origin-(--radix-popover-content-transform-origin) rounded-md border outline-none',\n {\n variants: {\n size: {\n xs: 'p-2 text-xs',\n sm: 'p-3 text-sm',\n md: 'p-4 text-base',\n lg: 'p-5 text-lg',\n },\n variant: {\n default: 'bg-background border border-slot text-text-primary',\n solid: 'bg-slot border border-slot text-slot-fg',\n soft: 'backdrop-blur-sm bg-slot-10 border border-slot-30 text-slot',\n },\n color: colorVars,\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n color: 'default',\n },\n },\n)\n\nexport interface PopoverContentProps\n extends Omit<React.ComponentProps<typeof PopoverPrimitive.Content>, 'color'>,\n VariantProps<typeof popoverContentVariants> {\n classNames?: PopoverClassNames\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n size = 'md',\n variant = 'default',\n color = 'default',\n classNames,\n ...props\n}: PopoverContentProps) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'popover_content',\n popoverContentVariants({ size, variant, color }),\n className,\n classNames?.content,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return (\n <PopoverPrimitive.Anchor\n data-slot=\"popover-anchor\"\n {...props}\n />\n )\n}\n\nexport type * from './types'\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/navigation-menu/index.tsx"],"names":[],"mappings":"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","file":"chunk-S6HO7HUY.js","sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../utils\";\nimport type {\n NavigationMenuProps,\n NavigationMenuItem,\n NavigationMenuChildItem,\n} from \"./types\";\n\nconst navigationMenuVariants = cva(\"navigationMenu_root\", {\n variants: {\n orientation: {\n horizontal: \"flex flex-row\",\n vertical: \"flex flex-col\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nconst navigationMenuListVariants = cva(\n \"navigationMenu_list flex items-center gap-1 relative\",\n {\n variants: {\n orientation: {\n horizontal: \"flex-row\",\n vertical: \"flex-col\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n);\n\nconst navigationMenuItemVariants = cva(\"navigationMenu_item relative\", {\n variants: {},\n});\n\nconst navigationMenuTriggerVariants = cva(\n \"navigationMenu_trigger inline-flex items-center justify-center gap-2 rounded-md cursor-pointer px-4 py-2 text-sm font-medium transition-colors hover:bg-surface focus:bg-surface focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-surface\",\n {\n variants: {},\n },\n);\n\nconst navigationMenuLinkVariants = cva(\n \"navigationMenu_link inline-flex items-center justify-center gap-2 rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-surface focus:bg-surface focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {},\n },\n);\n\nconst navigationMenuContentVariants = cva(\n \"navigationMenu_content absolute top-full left-0 mt-1 w-auto min-w-[400px] rounded-md border border-border bg-background p-4 shadow-lg data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-2 duration-200\",\n {\n variants: {},\n },\n);\n\nconst NavigationMenuContent = React.memo(\n ({\n children,\n isOpen,\n className,\n }: {\n children: NavigationMenuChildItem[];\n isOpen: boolean;\n className?: string;\n }) => {\n return (\n <div\n data-slot=\"content\"\n data-state={isOpen ? \"open\" : \"closed\"}\n className={cn(\n navigationMenuContentVariants(),\n !isOpen && \"hidden\",\n className,\n )}\n role=\"menu\"\n >\n <div className=\"grid gap-3\">\n {children.map((child) => (\n <NavigationMenuChildLink key={child.key} item={child} />\n ))}\n </div>\n </div>\n );\n },\n);\n\nNavigationMenuContent.displayName = \"NavigationMenuContent\";\n\nconst NavigationMenuChildLink = React.memo(\n ({ item }: { item: NavigationMenuChildItem }) => {\n const handleClick = (e: React.MouseEvent) => {\n if (item.disabled) {\n e.preventDefault();\n return;\n }\n if (item.onClick) {\n e.preventDefault();\n item.onClick();\n }\n };\n\n const content = (\n <div className=\"flex items-start gap-3 rounded-md p-3 hover:bg-surface transition-colors\">\n {item.icon && (\n <div className=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-md bg-surface\">\n {item.icon}\n </div>\n )}\n <div className=\"space-y-1\">\n <div className=\"text-sm font-medium leading-none\">{item.label}</div>\n {item.description && (\n <p className=\"text-sm leading-snug text-text-secondary\">\n {item.description}\n </p>\n )}\n </div>\n </div>\n );\n\n if (item.href && !item.disabled) {\n return (\n <a\n href={item.href}\n onClick={handleClick}\n className={cn(\n \"block\",\n item.disabled && \"pointer-events-none opacity-50\",\n )}\n role=\"menuitem\"\n aria-disabled={item.disabled}\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n disabled={item.disabled}\n className=\"block w-full text-left disabled:pointer-events-none disabled:opacity-50\"\n role=\"menuitem\"\n aria-disabled={item.disabled}\n >\n {content}\n </button>\n );\n },\n);\n\nNavigationMenuChildLink.displayName = \"NavigationMenuChildLink\";\n\nconst NavigationMenuItemComponent = React.memo(\n ({\n item,\n onOpenChange,\n isOpen,\n classNames,\n closeDelay = 150,\n }: {\n item: NavigationMenuItem;\n onOpenChange: (key: string, open: boolean) => void;\n isOpen: boolean;\n classNames?: NavigationMenuProps[\"classNames\"];\n closeDelay?: number;\n }) => {\n const hasChildren = item.children && item.children.length > 0;\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout> | undefined>(\n undefined,\n );\n\n const handleMouseEnter = () => {\n if (hasChildren && !item.disabled) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n onOpenChange(item.key, true);\n }\n };\n\n const handleMouseLeave = () => {\n if (hasChildren && !item.disabled) {\n timeoutRef.current = setTimeout(() => {\n onOpenChange(item.key, false);\n }, closeDelay);\n }\n };\n\n const handleClick = (e: React.MouseEvent) => {\n if (item.disabled) {\n e.preventDefault();\n return;\n }\n\n if (hasChildren) {\n e.preventDefault();\n onOpenChange(item.key, !isOpen);\n } else if (item.onClick) {\n e.preventDefault();\n item.onClick();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (item.disabled) return;\n\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (hasChildren) {\n onOpenChange(item.key, !isOpen);\n } else if (item.onClick) {\n item.onClick();\n }\n } else if (e.key === \"Escape\" && isOpen) {\n e.preventDefault();\n onOpenChange(item.key, false);\n }\n };\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n const content = (\n <>\n {item.icon && <span className=\"shrink-0\">{item.icon}</span>}\n <span>{item.label}</span>\n {hasChildren && (\n <svg\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform\",\n isOpen && \"rotate-180\",\n )}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M19 9l-7 7-7-7\"\n />\n </svg>\n )}\n </>\n );\n\n return (\n <li\n data-slot=\"item\"\n className={cn(navigationMenuItemVariants(), classNames?.item)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n role=\"none\"\n >\n {hasChildren ? (\n <>\n <button\n type=\"button\"\n data-slot=\"trigger\"\n data-state={isOpen ? \"open\" : \"closed\"}\n className={cn(\n navigationMenuTriggerVariants(),\n classNames?.trigger,\n )}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n disabled={item.disabled}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n role=\"menuitem\"\n >\n {content}\n </button>\n <NavigationMenuContent\n children={item.children!}\n isOpen={isOpen}\n className={classNames?.content}\n />\n </>\n ) : item.href && !item.disabled ? (\n <a\n href={item.href}\n data-slot=\"link\"\n className={cn(\n navigationMenuLinkVariants(),\n classNames?.link,\n item.disabled && \"pointer-events-none opacity-50\",\n )}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"menuitem\"\n aria-disabled={item.disabled}\n >\n {content}\n </a>\n ) : (\n <button\n type=\"button\"\n data-slot=\"link\"\n className={cn(navigationMenuLinkVariants(), classNames?.link)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n disabled={item.disabled}\n role=\"menuitem\"\n >\n {content}\n </button>\n )}\n </li>\n );\n },\n);\n\nNavigationMenuItemComponent.displayName = \"NavigationMenuItemComponent\";\n\nexport const NavigationMenu = React.memo<NavigationMenuProps>(\n ({ items, orientation = \"horizontal\", closeDelay, className, classNames, ref }) => {\n const [openItems, setOpenItems] = React.useState<Set<string>>(new Set());\n const navRef = React.useRef<HTMLElement>(null);\n\n React.useImperativeHandle(ref, () => navRef.current!);\n\n const handleOpenChange = React.useCallback((key: string, open: boolean) => {\n if (open) {\n setOpenItems(new Set([key])) // close all others, open only this one\n } else {\n setOpenItems(prev => {\n const next = new Set(prev)\n next.delete(key)\n return next\n })\n }\n }, []);\n\n // Close on outside click\n React.useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(e.target as Node)) {\n setOpenItems(new Set());\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n\n // Close on Escape\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setOpenItems(new Set());\n }\n };\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => {\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, []);\n\n return (\n <nav\n ref={navRef}\n data-slot=\"root\"\n className={cn(\n navigationMenuVariants({ orientation }),\n className,\n classNames?.root,\n )}\n role=\"navigation\"\n aria-label=\"Main navigation\"\n >\n <ul\n data-slot=\"list\"\n className={cn(\n navigationMenuListVariants({ orientation }),\n classNames?.list,\n )}\n role=\"menubar\"\n >\n {items.map((item) => (\n <NavigationMenuItemComponent\n key={item.key}\n item={item}\n onOpenChange={handleOpenChange}\n isOpen={openItems.has(item.key)}\n classNames={classNames}\n closeDelay={closeDelay}\n />\n ))}\n </ul>\n </nav>\n );\n },\n);\n\nNavigationMenu.displayName = \"NavigationMenu\";\n\nexport type * from \"./types\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/result/index.tsx"],"names":[],"mappings":"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","file":"chunk-TDPJYCNI.js","sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { ResultProps, ResultStatus } from './types'\n\nconst statusConfig: Record<ResultStatus, { color: string; defaultTitle: string }> = {\n success: { color: 'text-success', defaultTitle: 'Successfully Done' },\n error: { color: 'text-error', defaultTitle: 'Something Went Wrong' },\n info: { color: 'text-info', defaultTitle: 'Information' },\n warning: { color: 'text-warning', defaultTitle: 'Warning' },\n '403': { color: 'text-warning', defaultTitle: '403 — Access Denied' },\n '404': { color: 'text-info', defaultTitle: '404 — Page Not Found' },\n '500': { color: 'text-error', defaultTitle: '500 — Server Error' },\n}\n\nconst sizeMap = {\n xs: { icon: 'w-10 h-10', title: 'text-base font-semibold', subtitle: 'text-xs', padding: 'py-6 px-4', maxW: 'max-w-xs' },\n sm: { icon: 'w-12 h-12', title: 'text-lg font-semibold', subtitle: 'text-sm', padding: 'py-8 px-4', maxW: 'max-w-sm' },\n md: { icon: 'w-16 h-16', title: 'text-xl font-semibold', subtitle: 'text-sm', padding: 'py-12 px-6', maxW: 'max-w-md' },\n lg: { icon: 'w-20 h-20', title: 'text-2xl font-bold', subtitle: 'text-base', padding: 'py-16 px-8', maxW: 'max-w-lg' },\n}\n\nfunction StatusIcon({ status, sizeClass }: { status: ResultStatus; sizeClass: string }) {\n const className = cn(sizeClass, statusConfig[status].color)\n\n if (status === 'success') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9 12l2 2 4-4\" />\n </svg>\n )\n }\n\n if (status === 'error' || status === '500') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n )\n }\n\n if (status === 'warning' || status === '403') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n )\n }\n\n if (status === '404') {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n <line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\" />\n </svg>\n )\n }\n\n // info\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n )\n}\n\nconst Result = React.memo<ResultProps>(\n ({\n status = 'info',\n icon,\n title,\n subtitle,\n extra,\n children,\n size = 'md',\n className,\n classNames,\n }) => {\n const config = statusConfig[status]\n const s = sizeMap[size]\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'result_root',\n 'flex flex-col items-center text-center',\n s.padding,\n classNames?.root,\n className,\n )}\n >\n <div data-slot=\"icon\" className={cn('result_icon', 'mb-6', classNames?.icon)}>\n {icon ?? <StatusIcon status={status} sizeClass={s.icon} />}\n </div>\n\n <h3 data-slot=\"title\" className={cn('result_title', s.title, 'text-text-primary mb-2', classNames?.title)}>\n {title ?? config.defaultTitle}\n </h3>\n\n {subtitle && (\n <p data-slot=\"subtitle\" className={cn('result_subtitle', s.subtitle, 'text-text-secondary', s.maxW, 'mb-6', classNames?.subtitle)}>\n {subtitle}\n </p>\n )}\n\n {extra && (\n <div data-slot=\"extra\" className={cn('result_extra', 'flex items-center gap-3 mb-6', classNames?.extra)}>\n {extra}\n </div>\n )}\n\n {children && (\n <div data-slot=\"content\" className={cn('result_content', 'w-full', s.maxW, classNames?.content)}>\n {children}\n </div>\n )}\n </div>\n )\n },\n)\n\nResult.displayName = 'Result'\n\nexport type * from './types'\nexport default Result\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/radio/index.tsx"],"names":[],"mappings":";;;;;;AASA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,2OAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI,+CAAA;AAAA,QACJ,EAAA,EAAI,+CAAA;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,UAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AAEJ,IAAA,MAAM,WAAW,KAAA,EAAM;AACvB,IAAA,MAAM,OAAA,GAAU,KAAA,CAAM,EAAA,IAAM,CAAA,MAAA,EAAS,QAAQ,CAAA,CAAA;AAC7C,IAAA,MAAM,QAAA,GAAW,gBAAgB,QAAQ,CAAA,CAAA;AACzC,IAAA,MAAM,aAAA,GAAgB,CAAC,EAAE,UAAA,IAAc,KAAA,CAAA;AAEvC,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;AAAA,UACA,aAAA,CAAc,EAAE,KAAA,EAAO,IAAA,EAAM,OAAO,CAAC,CAAC,OAAO,CAAA;AAAA,UAC7C,yGAAA;AAAA,UACA,yBAAA;AAAA,UACA,SAAA;AAAA,UACA,UAAA,EAAY;AAAA,SACd;AAAA,QACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,kBAAA,EAAkB,gBAAgB,QAAA,GAAW,MAAA;AAAA,QAC5C,GAAG,KAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AAAA,KACN;AAGF,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,MAAA,EAAO,SAAA,EAAW,GAAG,YAAA,EAAc,QAAA,EAAU,UAAA,EAAY,IAAI,CAAA,EAC1E,QAAA,EAAA;AAAA,sBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,OAAA;AAAA,UACT,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,aAAA;AAAA,kBACA,uCAAA;AAAA,kBACA,KAAA,IAAS,YAAA;AAAA,kBACT,MAAM,QAAA,IAAY,YAAA;AAAA,kBAClB,UAAA,EAAY;AAAA,iBACd;AAAA,gBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,OAEJ;AAAA,MAAA,CACE,cAAc,KAAA,qBACd,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,QAAA;AAAA,UACJ,SAAA,EAAW,EAAA;AAAA,YACT,mBAAA;AAAA,YACA,mBAAA;AAAA,YACA,QAAQ,YAAA,GAAe,qBAAA;AAAA,YACvB,UAAA,EAAY;AAAA,WACd;AAAA,UAEC,QAAA,EAAA,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ;AAAA;AAAA;AACvC,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAO,aAAA,GAAQ","file":"chunk-UFC3RGIN.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport React, { useId } from \"react\";\n\nimport { cn } from \"../utils\";\nimport { colorVars } from \"../variants\";\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 transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary\",\n {\n variants: {\n color: colorVars,\n size: {\n xs: \"w-(--checkbox-size-xs) h-(--checkbox-size-xs)\",\n sm: \"w-(--checkbox-size-sm) h-(--checkbox-size-sm)\",\n md: \"w-(--checkbox-size-md) h-(--checkbox-size-md)\",\n lg: \"w-(--checkbox-size-lg) h-(--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 classNames,\n ...props\n }) => {\n // Generate unique ID for accessibility\n const uniqueId = useId();\n const radioId = props.id || `radio-${uniqueId}`;\n const helperId = `radio-helper-${uniqueId}`;\n const hasHelperText = !!(helperText || error);\n\n const radioElement = (\n <input\n ref={ref}\n type=\"radio\"\n className={cn(\n \"radio_radio\",\n radioVariants({ color, size, error: !!error }),\n \"checked:border-slot checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--_c)]\",\n \"focus-visible:ring-slot\",\n className,\n classNames?.radio,\n )}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n {...props}\n id={radioId}\n />\n );\n\n return (\n <div data-slot=\"root\" className={cn(\"radio_root\", \"w-full\", classNames?.root)}>\n <label\n htmlFor={radioId}\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 \"radio_label\",\n \"text-sm text-text-primary select-none\",\n error && \"text-error\",\n props.disabled && \"opacity-50\",\n classNames?.label,\n )}\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n \"radio_description\",\n \"mt-1 ml-0 text-xs\",\n error ? \"text-error\" : \"text-text-secondary\",\n classNames?.description,\n )}\n >\n {typeof error === \"string\" ? error : helperText}\n </p>\n )}\n </div>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\n\nexport type * from \"./types\";\nexport default Radio;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/color-picker/index.tsx"],"names":[],"mappings":"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","file":"chunk-UFYG3HKL.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\nimport { cn } from '../utils'\nimport type { ColorPickerProps, ColorInputProps } from './types'\n\n// ── Color utilities ──────────────────────────────────────────\nfunction hexToHsv(hex: string): [number, number, number] {\n const r = parseInt(hex.slice(1, 3), 16) / 255\n const g = parseInt(hex.slice(3, 5), 16) / 255\n const b = parseInt(hex.slice(5, 7), 16) / 255\n const max = Math.max(r, g, b), min = Math.min(r, g, b)\n const d = max - min\n let h = 0\n if (d !== 0) {\n if (max === r) h = ((g - b) / d + 6) % 6\n else if (max === g) h = (b - r) / d + 2\n else h = (r - g) / d + 4\n h *= 60\n }\n const s = max === 0 ? 0 : d / max\n return [h, s, max]\n}\n\nfunction hsvToHex(h: number, s: number, v: number): string {\n const c = v * s\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1))\n const m = v - c\n let r = 0, g = 0, b = 0\n if (h < 60) { r = c; g = x }\n else if (h < 120) { r = x; g = c }\n else if (h < 180) { g = c; b = x }\n else if (h < 240) { g = x; b = c }\n else if (h < 300) { r = x; b = c }\n else { r = c; b = x }\n const toHex = (n: number) => Math.round((n + m) * 255).toString(16).padStart(2, '0')\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`\n}\n\nfunction isValidHex(v: string): boolean {\n return /^#[0-9a-fA-F]{6}$/.test(v)\n}\n\nfunction normalizeHex(v: string): string {\n if (!v) return '#000000'\n const clean = v.startsWith('#') ? v : `#${v}`\n return isValidHex(clean) ? clean.toLowerCase() : '#000000'\n}\n\n// ── Size variants ────────────────────────────────────────────\nconst sizeMap = {\n xs: { area: 'w-40 h-28', hue: 'h-2', swatch: 'w-4 h-4' },\n sm: { area: 'w-48 h-32', hue: 'h-2.5', swatch: 'w-5 h-5' },\n md: { area: 'w-56 h-36', hue: 'h-3', swatch: 'w-6 h-6' },\n lg: { area: 'w-64 h-44', hue: 'h-3.5', swatch: 'w-7 h-7' },\n}\n\nconst inputVariants = cva(\n 'flex items-center rounded-md border border-border bg-background text-text-primary transition-colors focus-within:border-primary',\n {\n variants: {\n size: {\n xs: 'h-7 px-2 text-xs gap-1.5',\n sm: 'h-8 px-2.5 text-sm gap-2',\n md: 'h-9 px-3 text-sm gap-2',\n lg: 'h-10 px-3.5 text-base gap-2.5',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\n// ── Saturation Area ──────────────────────────────────────────\nfunction SaturationArea({\n hue, sat, val, onChangeSV, areaClass, disabled,\n}: {\n hue: number; sat: number; val: number\n onChangeSV: (s: number, v: number) => void\n areaClass: string; disabled?: boolean\n}) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const update = React.useCallback(\n (clientX: number, clientY: number) => {\n if (!ref.current || disabled) return\n const rect = ref.current.getBoundingClientRect()\n const s = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width))\n const v = Math.max(0, Math.min(1, 1 - (clientY - rect.top) / rect.height))\n onChangeSV(s, v)\n },\n [onChangeSV, disabled],\n )\n\n const handlePointerDown = (e: React.PointerEvent) => {\n if (disabled) return\n e.currentTarget.setPointerCapture(e.pointerId)\n update(e.clientX, e.clientY)\n }\n\n const handlePointerMove = (e: React.PointerEvent) => {\n if (e.currentTarget.hasPointerCapture(e.pointerId)) {\n update(e.clientX, e.clientY)\n }\n }\n\n return (\n <div\n ref={ref}\n className={cn('colorPicker_saturation', 'relative rounded-md cursor-crosshair', areaClass)}\n style={{ background: `hsl(${hue}, 100%, 50%)` }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <div className=\"absolute inset-0 rounded-md\" style={{ background: 'linear-gradient(to right, white, transparent)' }} />\n <div className=\"absolute inset-0 rounded-md\" style={{ background: 'linear-gradient(to top, black, transparent)' }} />\n <div\n className=\"absolute w-3.5 h-3.5 rounded-full border-2 border-white shadow-md -translate-x-1/2 -translate-y-1/2 pointer-events-none\"\n style={{ left: `${sat * 100}%`, top: `${(1 - val) * 100}%` }}\n />\n </div>\n )\n}\n\n// ── Hue Slider ───────────────────────────────────────────────\nfunction HueSlider({\n hue, onChange, hueClass, disabled,\n}: {\n hue: number; onChange: (h: number) => void; hueClass: string; disabled?: boolean\n}) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const update = React.useCallback(\n (clientX: number) => {\n if (!ref.current || disabled) return\n const rect = ref.current.getBoundingClientRect()\n const h = Math.max(0, Math.min(360, ((clientX - rect.left) / rect.width) * 360))\n onChange(h)\n },\n [onChange, disabled],\n )\n\n const handlePointerDown = (e: React.PointerEvent) => {\n if (disabled) return\n e.currentTarget.setPointerCapture(e.pointerId)\n update(e.clientX)\n }\n\n const handlePointerMove = (e: React.PointerEvent) => {\n if (e.currentTarget.hasPointerCapture(e.pointerId)) update(e.clientX)\n }\n\n return (\n <div\n ref={ref}\n className={cn('colorPicker_hue', 'relative rounded-full cursor-pointer', hueClass)}\n style={{ background: 'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)' }}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n >\n <div\n className=\"absolute w-3.5 h-3.5 rounded-full border-2 border-white shadow-md -translate-x-1/2 top-1/2 -translate-y-1/2 pointer-events-none\"\n style={{ left: `${(hue / 360) * 100}%` }}\n />\n </div>\n )\n}\n\n// ── ColorPicker ──────────────────────────────────────────────\nconst ColorPicker = React.memo<ColorPickerProps>(\n ({\n value,\n defaultValue = '#3b82f6',\n onChange,\n swatches,\n size = 'md',\n disabled = false,\n label,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = React.useState(normalizeHex(defaultValue))\n const currentValue = value !== undefined ? normalizeHex(value) : internalValue\n\n const [h, s, v] = React.useMemo(() => hexToHsv(currentValue), [currentValue])\n const [hue, setHue] = React.useState(h)\n\n React.useEffect(() => {\n if (s > 0.01 || v > 0.01) setHue(h)\n }, [h, s, v])\n\n const [inputText, setInputText] = React.useState(currentValue)\n React.useEffect(() => setInputText(currentValue), [currentValue])\n\n const update = (hex: string) => {\n const valid = normalizeHex(hex)\n if (value === undefined) setInternalValue(valid)\n onChange?.(valid)\n }\n\n const handleSVChange = (ns: number, nv: number) => {\n update(hsvToHex(hue, ns, nv))\n }\n\n const handleHueChange = (nh: number) => {\n setHue(nh)\n update(hsvToHex(nh, s, v))\n }\n\n const handleInputBlur = () => {\n if (isValidHex(inputText) || isValidHex(`#${inputText}`)) {\n update(inputText.startsWith('#') ? inputText : `#${inputText}`)\n } else {\n setInputText(currentValue)\n }\n }\n\n const sizes = sizeMap[size]\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'colorPicker_root',\n 'inline-flex flex-col gap-2',\n disabled && 'opacity-50 pointer-events-none',\n classNames?.root,\n className,\n )}\n >\n {label && (\n <span className=\"text-sm font-medium text-text-primary\">{label}</span>\n )}\n\n <SaturationArea\n hue={hue} sat={s} val={v}\n onChangeSV={handleSVChange}\n areaClass={cn(sizes.area, classNames?.saturation)}\n disabled={disabled}\n />\n\n <HueSlider\n hue={hue}\n onChange={handleHueChange}\n hueClass={cn(sizes.hue, classNames?.hueSlider)}\n disabled={disabled}\n />\n\n {/* Input + preview */}\n <div className=\"flex items-center gap-2\">\n <div\n data-slot=\"preview\"\n className={cn(\n 'colorPicker_preview',\n 'w-8 h-8 rounded-md border border-border shrink-0',\n classNames?.preview,\n )}\n style={{ backgroundColor: currentValue }}\n />\n <input\n type=\"text\"\n value={inputText}\n onChange={(e) => setInputText(e.target.value)}\n onBlur={handleInputBlur}\n onKeyDown={(e) => e.key === 'Enter' && handleInputBlur()}\n className={cn(\n 'colorPicker_input',\n 'flex-1 min-w-0 bg-transparent border border-border rounded-md px-2 py-1 text-sm text-text-primary outline-none focus:border-primary font-mono',\n classNames?.input,\n )}\n disabled={disabled}\n />\n </div>\n\n {/* Swatches */}\n {swatches && swatches.length > 0 && (\n <div\n data-slot=\"swatches\"\n className={cn(\n 'colorPicker_swatches',\n 'flex flex-wrap gap-1',\n classNames?.swatches,\n )}\n >\n {swatches.map((swatch) => (\n <button\n key={swatch}\n type=\"button\"\n onClick={() => update(swatch)}\n className={cn(\n 'colorPicker_swatch',\n sizes.swatch,\n 'rounded-md border border-border cursor-pointer transition-transform hover:scale-110',\n currentValue === normalizeHex(swatch) && 'ring-2 ring-primary ring-offset-1 ring-offset-background',\n classNames?.swatch,\n )}\n style={{ backgroundColor: swatch }}\n aria-label={`Select color ${swatch}`}\n />\n ))}\n </div>\n )}\n </div>\n )\n },\n)\n\nColorPicker.displayName = 'ColorPicker'\n\n// ── ColorInput ───────────────────────────────────────────────\nconst ColorInput = React.memo<ColorInputProps>(\n ({\n value,\n defaultValue = '#3b82f6',\n onChange,\n swatches,\n size = 'md',\n disabled = false,\n label,\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = React.useState(normalizeHex(defaultValue))\n const currentValue = value !== undefined ? normalizeHex(value) : internalValue\n\n const update = (hex: string) => {\n const valid = normalizeHex(hex)\n if (value === undefined) setInternalValue(valid)\n onChange?.(valid)\n }\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'colorInput_root',\n 'flex flex-col gap-1.5',\n fullWidth ? 'w-full' : 'inline-flex',\n className,\n )}\n >\n {label && (\n <span className=\"text-sm font-medium text-text-primary\">{label}</span>\n )}\n\n <Popover>\n <PopoverTrigger asChild>\n <div className={cn(inputVariants({ size }), disabled && 'opacity-50 cursor-not-allowed', fullWidth && 'w-full')}>\n <div\n className=\"w-5 h-5 rounded border border-border shrink-0\"\n style={{ backgroundColor: currentValue }}\n />\n <span className=\"flex-1 truncate text-text-primary font-mono\">\n {currentValue}\n </span>\n </div>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-3\" align=\"start\">\n <ColorPicker\n value={currentValue}\n onChange={update}\n swatches={swatches}\n size={size}\n disabled={disabled}\n classNames={classNames}\n />\n </PopoverContent>\n </Popover>\n </div>\n )\n },\n)\n\nColorInput.displayName = 'ColorInput'\n\nexport type * from './types'\nexport { ColorPicker, ColorInput }\nexport default ColorPicker\n"]}
|