asterui 0.12.29 → 0.12.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chart.d.ts +2 -0
- package/dist/chart.js +5 -0
- package/dist/chart.js.map +1 -0
- package/dist/{index2.js → components/Affix.js} +1 -1
- package/dist/components/Affix.js.map +1 -0
- package/dist/{index4.js → components/Alert.js} +1 -1
- package/dist/components/Alert.js.map +1 -0
- package/dist/{index3.js → components/Anchor.js} +1 -1
- package/dist/components/Anchor.js.map +1 -0
- package/dist/{index5.js → components/Autocomplete.js} +1 -1
- package/dist/components/Autocomplete.js.map +1 -0
- package/dist/{index6.js → components/Avatar.js} +1 -1
- package/dist/components/Avatar.js.map +1 -0
- package/dist/{index7.js → components/Badge.js} +1 -1
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Breadcrumb.js +38 -0
- package/dist/components/Breadcrumb.js.map +1 -0
- package/dist/{index53.js → components/Browser.js} +1 -1
- package/dist/components/Browser.js.map +1 -0
- package/dist/{index9.js → components/Button.js} +1 -1
- package/dist/components/Button.js.map +1 -0
- package/dist/{index14.js → components/Card.js} +22 -22
- package/dist/{index14.js.map → components/Card.js.map} +1 -1
- package/dist/{index17.js → components/Carousel.js} +1 -1
- package/dist/components/Carousel.js.map +1 -0
- package/dist/{index15.js → components/Cascader.js} +1 -1
- package/dist/components/Cascader.js.map +1 -0
- package/dist/{index16.js → components/Chart.js} +1 -1
- package/dist/components/Chart.js.map +1 -0
- package/dist/{index12.js → components/Chat.js} +1 -1
- package/dist/{index12.js.map → components/Chat.js.map} +1 -1
- package/dist/{index11.js → components/Checkbox.js} +15 -15
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/{index54.js → components/Code.js} +5 -5
- package/dist/{index54.js.map → components/Code.js.map} +1 -1
- package/dist/{index18.js → components/Collapse.js} +1 -1
- package/dist/components/Collapse.js.map +1 -0
- package/dist/components/ColorPicker.d.ts +8 -2
- package/dist/components/ColorPicker.js +366 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/{index19.js → components/Container.js} +1 -1
- package/dist/components/Container.js.map +1 -0
- package/dist/{index20.js → components/ContextMenu.js} +9 -9
- package/dist/components/ContextMenu.js.map +1 -0
- package/dist/{index10.js → components/CopyButton.js} +2 -2
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/{index21.js → components/Countdown.js} +1 -1
- package/dist/components/Countdown.js.map +1 -0
- package/dist/{index22.js → components/DatePicker.js} +2 -2
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/{index23.js → components/Descriptions.js} +23 -23
- package/dist/components/Descriptions.js.map +1 -0
- package/dist/{index24.js → components/Diff.js} +1 -1
- package/dist/{index24.js.map → components/Diff.js.map} +1 -1
- package/dist/{index26.js → components/Divider.js} +1 -1
- package/dist/components/Divider.js.map +1 -0
- package/dist/{index25.js → components/Dock.js} +1 -1
- package/dist/{index25.js.map → components/Dock.js.map} +1 -1
- package/dist/{index27.js → components/Drawer.js} +1 -1
- package/dist/components/Drawer.js.map +1 -0
- package/dist/{index40.js → components/Dropdown.js} +31 -31
- package/dist/components/Dropdown.js.map +1 -0
- package/dist/{index41.js → components/Empty.js} +1 -1
- package/dist/components/Empty.js.map +1 -0
- package/dist/{index29.js → components/Fieldset.js} +1 -1
- package/dist/components/Fieldset.js.map +1 -0
- package/dist/{index30.js → components/FileInput.js} +1 -1
- package/dist/components/FileInput.js.map +1 -0
- package/dist/{index31.js → components/Filter.js} +1 -1
- package/dist/components/Filter.js.map +1 -0
- package/dist/{index32.js → components/Flex.js} +1 -1
- package/dist/{index32.js.map → components/Flex.js.map} +1 -1
- package/dist/{index33.js → components/FloatButton.js} +1 -1
- package/dist/components/FloatButton.js.map +1 -0
- package/dist/{index34.js → components/Footer.js} +1 -1
- package/dist/components/Footer.js.map +1 -0
- package/dist/{index35.js → components/Form.js} +1 -1
- package/dist/{index35.js.map → components/Form.js.map} +1 -1
- package/dist/{index36.js → components/Grid.js} +6 -6
- package/dist/{index36.js.map → components/Grid.js.map} +1 -1
- package/dist/{index37.js → components/Hero.js} +1 -1
- package/dist/{index37.js.map → components/Hero.js.map} +1 -1
- package/dist/{index38.js → components/HoverGallery.js} +1 -1
- package/dist/components/HoverGallery.js.map +1 -0
- package/dist/{index39.js → components/Image.js} +1 -1
- package/dist/components/Image.js.map +1 -0
- package/dist/{index42.js → components/Input.js} +1 -1
- package/dist/components/Input.js.map +1 -0
- package/dist/{index43.js → components/InputNumber.js} +1 -1
- package/dist/components/InputNumber.js.map +1 -0
- package/dist/components/Join.js +18 -0
- package/dist/{index44.js.map → components/Join.js.map} +1 -1
- package/dist/{index45.js → components/Kbd.js} +1 -1
- package/dist/components/Kbd.js.map +1 -0
- package/dist/{index46.js → components/Layout.js} +16 -16
- package/dist/components/Layout.js.map +1 -0
- package/dist/{index47.js → components/List.js} +17 -17
- package/dist/{index47.js.map → components/List.js.map} +1 -1
- package/dist/{index48.js → components/Loading.js} +1 -1
- package/dist/components/Loading.js.map +1 -0
- package/dist/{index49.js → components/Mask.js} +1 -1
- package/dist/{index49.js.map → components/Mask.js.map} +1 -1
- package/dist/{index50.js → components/Masonry.js} +19 -19
- package/dist/components/Masonry.js.map +1 -0
- package/dist/{index51.js → components/Mention.js} +1 -1
- package/dist/components/Mention.js.map +1 -0
- package/dist/{index52.js → components/Menu.js} +1 -1
- package/dist/{index52.js.map → components/Menu.js.map} +1 -1
- package/dist/{index57.js → components/Modal.js} +23 -23
- package/dist/components/Modal.js.map +1 -0
- package/dist/{index58.js → components/Navbar.js} +1 -1
- package/dist/components/Navbar.js.map +1 -0
- package/dist/{index59.js → components/Notification.js} +1 -1
- package/dist/components/Notification.js.map +1 -0
- package/dist/{index60.js → components/OTPInput.js} +1 -1
- package/dist/components/OTPInput.js.map +1 -0
- package/dist/{index62.js → components/PageLayout.js} +1 -1
- package/dist/components/PageLayout.js.map +1 -0
- package/dist/{index61.js → components/Pagination.js} +18 -18
- package/dist/components/Pagination.js.map +1 -0
- package/dist/{index55.js → components/Phone.js} +1 -1
- package/dist/components/Phone.js.map +1 -0
- package/dist/{index63.js → components/Popconfirm.js} +14 -14
- package/dist/components/Popconfirm.js.map +1 -0
- package/dist/{index64.js → components/Popover.js} +1 -1
- package/dist/components/Popover.js.map +1 -0
- package/dist/{index65.js → components/Progress.js} +1 -1
- package/dist/components/Progress.js.map +1 -0
- package/dist/{index66.js → components/QRCode.js} +1 -1
- package/dist/components/QRCode.js.map +1 -0
- package/dist/{index68.js → components/RadialProgress.js} +1 -1
- package/dist/components/RadialProgress.js.map +1 -0
- package/dist/{index67.js → components/Radio.js} +13 -13
- package/dist/components/Radio.js.map +1 -0
- package/dist/{index69.js → components/Range.js} +1 -1
- package/dist/components/Range.js.map +1 -0
- package/dist/{index70.js → components/Rating.js} +20 -20
- package/dist/components/Rating.js.map +1 -0
- package/dist/{index98.js → components/Responsive.js} +2 -2
- package/dist/components/Responsive.js.map +1 -0
- package/dist/{index71.js → components/Result.js} +1 -1
- package/dist/components/Result.js.map +1 -0
- package/dist/{index73.js → components/Segmented.js} +1 -1
- package/dist/components/Segmented.js.map +1 -0
- package/dist/{index72.js → components/Select.js} +1 -1
- package/dist/components/Select.js.map +1 -0
- package/dist/{index28.js → components/SidebarDrawer.js} +3 -3
- package/dist/components/SidebarDrawer.js.map +1 -0
- package/dist/{index74.js → components/Skeleton.js} +1 -1
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Space.js +61 -0
- package/dist/components/Space.js.map +1 -0
- package/dist/{index76.js → components/Splitter.js} +22 -22
- package/dist/components/Splitter.js.map +1 -0
- package/dist/{index77.js → components/Stat.js} +1 -1
- package/dist/{index77.js.map → components/Stat.js.map} +1 -1
- package/dist/{index78.js → components/Status.js} +1 -1
- package/dist/components/Status.js.map +1 -0
- package/dist/{index79.js → components/Steps.js} +14 -14
- package/dist/components/Steps.js.map +1 -0
- package/dist/{index80.js → components/Table.js} +92 -92
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Tabs.js +83 -0
- package/dist/{index81.js.map → components/Tabs.js.map} +1 -1
- package/dist/{index84.js → components/Tag.js} +1 -1
- package/dist/components/Tag.js.map +1 -0
- package/dist/{index83.js → components/TextRotate.js} +1 -1
- package/dist/components/TextRotate.js.map +1 -0
- package/dist/{index82.js → components/Textarea.js} +1 -1
- package/dist/components/Textarea.js.map +1 -0
- package/dist/{index85.js → components/ThemeController.js} +1 -1
- package/dist/components/ThemeController.js.map +1 -0
- package/dist/{index86.js → components/TimePicker.js} +2 -2
- package/dist/components/TimePicker.js.map +1 -0
- package/dist/{index87.js → components/Timeline.js} +13 -13
- package/dist/components/Timeline.js.map +1 -0
- package/dist/{index88.js → components/Toggle.js} +1 -1
- package/dist/components/Toggle.js.map +1 -0
- package/dist/{index90.js → components/Tooltip.js} +1 -1
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/{index89.js → components/Tour.js} +1 -1
- package/dist/{index89.js.map → components/Tour.js.map} +1 -1
- package/dist/{index91.js → components/Transfer.js} +1 -1
- package/dist/components/Transfer.js.map +1 -0
- package/dist/{index92.js → components/Tree.js} +1 -1
- package/dist/{index92.js.map → components/Tree.js.map} +1 -1
- package/dist/{index93.js → components/TreeSelect.js} +44 -44
- package/dist/components/TreeSelect.js.map +1 -0
- package/dist/{index94.js → components/Typography.js} +1 -1
- package/dist/components/Typography.js.map +1 -0
- package/dist/{index95.js → components/Upload.js} +1 -1
- package/dist/components/Upload.js.map +1 -0
- package/dist/{index96.js → components/VirtualList.js} +2 -2
- package/dist/components/VirtualList.js.map +1 -0
- package/dist/{index97.js → components/Watermark.js} +1 -1
- package/dist/components/Watermark.js.map +1 -0
- package/dist/{index56.js → components/Window.js} +1 -1
- package/dist/components/Window.js.map +1 -0
- package/dist/{index99.js → hooks/useBreakpoint.js} +1 -1
- package/dist/hooks/useBreakpoint.js.map +1 -0
- package/dist/{index104.js → hooks/useClickOutside.js} +1 -1
- package/dist/hooks/useClickOutside.js.map +1 -0
- package/dist/{index101.js → hooks/useClipboard.js} +1 -1
- package/dist/hooks/useClipboard.js.map +1 -0
- package/dist/{index103.js → hooks/useDebounce.js} +1 -1
- package/dist/hooks/useDebounce.js.map +1 -0
- package/dist/{index100.js → hooks/useDisclosure.js} +1 -1
- package/dist/hooks/useDisclosure.js.map +1 -0
- package/dist/{index106.js → hooks/useHover.js} +1 -1
- package/dist/hooks/useHover.js.map +1 -0
- package/dist/{index107.js → hooks/useKeyPress.js} +1 -1
- package/dist/hooks/useKeyPress.js.map +1 -0
- package/dist/{index102.js → hooks/useLocalStorage.js} +1 -1
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/{index105.js → hooks/usePrevious.js} +1 -1
- package/dist/hooks/usePrevious.js.map +1 -0
- package/dist/{index108.js → hooks/useWindowSize.js} +1 -1
- package/dist/hooks/useWindowSize.js.map +1 -0
- package/dist/index.d.ts +1 -7
- package/dist/index.js +204 -210
- package/dist/index.js.map +1 -1
- package/dist/qrcode.d.ts +2 -0
- package/dist/qrcode.js +5 -0
- package/dist/qrcode.js.map +1 -0
- package/dist/virtuallist.d.ts +2 -0
- package/dist/virtuallist.js +5 -0
- package/dist/virtuallist.js.map +1 -0
- package/package.json +13 -1
- package/dist/index10.js.map +0 -1
- package/dist/index100.js.map +0 -1
- package/dist/index101.js.map +0 -1
- package/dist/index102.js.map +0 -1
- package/dist/index103.js.map +0 -1
- package/dist/index104.js.map +0 -1
- package/dist/index105.js.map +0 -1
- package/dist/index106.js.map +0 -1
- package/dist/index107.js.map +0 -1
- package/dist/index108.js.map +0 -1
- package/dist/index109.js +0 -36
- package/dist/index109.js.map +0 -1
- package/dist/index11.js.map +0 -1
- package/dist/index110.js +0 -523
- package/dist/index110.js.map +0 -1
- package/dist/index111.js +0 -53
- package/dist/index111.js.map +0 -1
- package/dist/index13.js +0 -268
- package/dist/index13.js.map +0 -1
- package/dist/index15.js.map +0 -1
- package/dist/index16.js.map +0 -1
- package/dist/index17.js.map +0 -1
- package/dist/index18.js.map +0 -1
- package/dist/index19.js.map +0 -1
- package/dist/index2.js.map +0 -1
- package/dist/index20.js.map +0 -1
- package/dist/index21.js.map +0 -1
- package/dist/index22.js.map +0 -1
- package/dist/index23.js.map +0 -1
- package/dist/index26.js.map +0 -1
- package/dist/index27.js.map +0 -1
- package/dist/index28.js.map +0 -1
- package/dist/index29.js.map +0 -1
- package/dist/index3.js.map +0 -1
- package/dist/index30.js.map +0 -1
- package/dist/index31.js.map +0 -1
- package/dist/index33.js.map +0 -1
- package/dist/index34.js.map +0 -1
- package/dist/index38.js.map +0 -1
- package/dist/index39.js.map +0 -1
- package/dist/index4.js.map +0 -1
- package/dist/index40.js.map +0 -1
- package/dist/index41.js.map +0 -1
- package/dist/index42.js.map +0 -1
- package/dist/index43.js.map +0 -1
- package/dist/index44.js +0 -18
- package/dist/index45.js.map +0 -1
- package/dist/index46.js.map +0 -1
- package/dist/index48.js.map +0 -1
- package/dist/index5.js.map +0 -1
- package/dist/index50.js.map +0 -1
- package/dist/index51.js.map +0 -1
- package/dist/index53.js.map +0 -1
- package/dist/index55.js.map +0 -1
- package/dist/index56.js.map +0 -1
- package/dist/index57.js.map +0 -1
- package/dist/index58.js.map +0 -1
- package/dist/index59.js.map +0 -1
- package/dist/index6.js.map +0 -1
- package/dist/index60.js.map +0 -1
- package/dist/index61.js.map +0 -1
- package/dist/index62.js.map +0 -1
- package/dist/index63.js.map +0 -1
- package/dist/index64.js.map +0 -1
- package/dist/index65.js.map +0 -1
- package/dist/index66.js.map +0 -1
- package/dist/index67.js.map +0 -1
- package/dist/index68.js.map +0 -1
- package/dist/index69.js.map +0 -1
- package/dist/index7.js.map +0 -1
- package/dist/index70.js.map +0 -1
- package/dist/index71.js.map +0 -1
- package/dist/index72.js.map +0 -1
- package/dist/index73.js.map +0 -1
- package/dist/index74.js.map +0 -1
- package/dist/index75.js +0 -61
- package/dist/index75.js.map +0 -1
- package/dist/index76.js.map +0 -1
- package/dist/index78.js.map +0 -1
- package/dist/index79.js.map +0 -1
- package/dist/index8.js +0 -38
- package/dist/index8.js.map +0 -1
- package/dist/index80.js.map +0 -1
- package/dist/index81.js +0 -83
- package/dist/index82.js.map +0 -1
- package/dist/index83.js.map +0 -1
- package/dist/index84.js.map +0 -1
- package/dist/index85.js.map +0 -1
- package/dist/index86.js.map +0 -1
- package/dist/index87.js.map +0 -1
- package/dist/index88.js.map +0 -1
- package/dist/index9.js.map +0 -1
- package/dist/index90.js.map +0 -1
- package/dist/index91.js.map +0 -1
- package/dist/index93.js.map +0 -1
- package/dist/index94.js.map +0 -1
- package/dist/index95.js.map +0 -1
- package/dist/index96.js.map +0 -1
- package/dist/index97.js.map +0 -1
- package/dist/index98.js.map +0 -1
- package/dist/index99.js.map +0 -1
package/dist/index65.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index65.js","sources":["../src/components/Progress.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface ProgressProps extends React.ProgressHTMLAttributes<HTMLProgressElement> {\n type?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n}\n\nconst typeClasses = {\n neutral: 'progress-neutral',\n primary: 'progress-primary',\n secondary: 'progress-secondary',\n accent: 'progress-accent',\n info: 'progress-info',\n success: 'progress-success',\n warning: 'progress-warning',\n error: 'progress-error',\n} as const\n\nexport function Progress({ value, max = 100, type, className = '', ...rest }: ProgressProps) {\n const classes = [\n 'progress',\n type && typeClasses[type],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <progress className={classes} value={value} max={max} {...rest} />\n}\n"],"names":["typeClasses","Progress","value","max","type","className","rest","classes"],"mappings":";AAMA,MAAMA,IAAc;AAAA,EAClB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEO,SAASC,EAAS,EAAE,OAAAC,GAAO,KAAAC,IAAM,KAAK,MAAAC,GAAM,WAAAC,IAAY,IAAI,GAAGC,KAAuB;AAC3F,QAAMC,IAAU;AAAA,IACd;AAAA,IACAH,KAAQJ,EAAYI,CAAI;AAAA,IACxBC;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,2BAAQ,YAAA,EAAS,WAAWE,GAAS,OAAAL,GAAc,KAAAC,GAAW,GAAGG,GAAM;AACzE;"}
|
package/dist/index66.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index66.js","sources":["../src/components/QRCode.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react'\nimport QRCodeLib from 'qrcode'\n\nexport type QRCodeErrorLevel = 'L' | 'M' | 'Q' | 'H'\nexport type QRCodeType = 'canvas' | 'svg'\nexport type QRCodeStatus = 'active' | 'loading' | 'expired'\n\nexport interface QRCodeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n value: string\n size?: number\n errorLevel?: QRCodeErrorLevel\n icon?: string\n iconSize?: number\n type?: QRCodeType\n color?: string\n bgColor?: string\n bordered?: boolean\n status?: QRCodeStatus\n onRefresh?: () => void\n}\n\nexport const QRCode: React.FC<QRCodeProps> = ({\n value,\n size = 160,\n errorLevel = 'M',\n icon,\n iconSize = 40,\n type = 'canvas',\n color = '#000000',\n bgColor = '#FFFFFF',\n bordered = true,\n status = 'active',\n onRefresh,\n className = '',\n ...rest\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const [loading, setLoading] = useState(status === 'loading')\n\n useEffect(() => {\n setLoading(status === 'loading')\n }, [status])\n\n useEffect(() => {\n if (status !== 'active' || !value) return\n\n const generateQRCode = async () => {\n try {\n setLoading(true)\n\n if (type === 'canvas' && canvasRef.current) {\n await QRCodeLib.toCanvas(canvasRef.current, value, {\n width: size,\n margin: 1,\n color: {\n dark: color,\n light: bgColor,\n },\n errorCorrectionLevel: errorLevel,\n })\n\n if (icon) {\n const canvas = canvasRef.current\n const ctx = canvas.getContext('2d')\n if (ctx) {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.onload = () => {\n const iconX = (size - iconSize) / 2\n const iconY = (size - iconSize) / 2\n ctx.fillStyle = bgColor\n ctx.fillRect(iconX - 4, iconY - 4, iconSize + 8, iconSize + 8)\n ctx.drawImage(img, iconX, iconY, iconSize, iconSize)\n }\n img.src = icon\n }\n }\n }\n\n setLoading(false)\n } catch (error) {\n console.error('QR Code generation error:', error)\n setLoading(false)\n }\n }\n\n generateQRCode()\n }, [value, size, errorLevel, icon, iconSize, type, color, bgColor, status])\n\n // Download functionality can be implemented by consumers\n // by accessing the canvas ref and converting to data URL\n\n const containerClasses = [\n 'inline-flex items-center justify-center',\n bordered && 'border border-base-content/20 p-3',\n 'bg-base-100',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n if (status === 'loading' || loading) {\n return (\n <div className={containerClasses} style={{ width: size + (bordered ? 24 : 0), height: size + (bordered ? 24 : 0) }} data-state=\"loading\" {...rest}>\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <span className=\"loading loading-spinner loading-lg\"></span>\n <span className=\"text-sm text-base-content/70\">Loading...</span>\n </div>\n </div>\n )\n }\n\n if (status === 'expired') {\n return (\n <div className={containerClasses} style={{ width: size + (bordered ? 24 : 0), height: size + (bordered ? 24 : 0) }} data-state=\"expired\" {...rest}>\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <svg className=\"w-12 h-12 text-base-content/30\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n <span className=\"text-sm text-base-content/70\">QR Code Expired</span>\n {onRefresh && (\n <button className=\"btn btn-sm btn-primary\" onClick={onRefresh}>\n Refresh\n </button>\n )}\n </div>\n </div>\n )\n }\n\n if (type === 'canvas') {\n return (\n <div className=\"inline-block\" data-state=\"active\" {...rest}>\n <div className={containerClasses}>\n <canvas ref={canvasRef} style={{ display: 'block' }} />\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"inline-block\" data-state=\"active\" {...rest}>\n <div className={containerClasses}>\n <div style={{ width: size, height: size }} className=\"bg-base-content/5\">\n <span className=\"text-xs text-base-content/50\">SVG mode placeholder</span>\n </div>\n </div>\n </div>\n )\n}\n\nQRCode.displayName = 'QRCode'\n\nexport default QRCode\n"],"names":["QRCode","value","size","errorLevel","icon","iconSize","type","color","bgColor","bordered","status","onRefresh","className","rest","canvasRef","useRef","loading","setLoading","useState","useEffect","QRCodeLib","ctx","img","iconX","iconY","error","containerClasses","jsx","jsxs"],"mappings":"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"}
|
package/dist/index67.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index67.js","sources":["../src/components/Radio.tsx"],"sourcesContent":["import React, { forwardRef, createContext, useContext } from 'react'\n\nexport interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n className?: string\n children?: React.ReactNode\n}\n\nexport interface RadioGroupChangeEvent {\n target: {\n value: string | number\n name?: string\n }\n}\n\nexport interface RadioGroupProps {\n children: React.ReactNode\n value?: string | number\n defaultValue?: string | number\n onChange?: (e: RadioGroupChangeEvent) => void\n name?: string\n className?: string\n}\n\ninterface RadioGroupContextValue {\n value?: string | number\n onChange?: (value: string | number) => void\n name?: string\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null)\n\nfunction RadioGroup({ children, value, defaultValue, onChange, name, className = '' }: RadioGroupProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n const handleChange = (newValue: string | number) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.({ target: { value: newValue, name } })\n }\n\n return (\n <RadioGroupContext.Provider value={{ value: currentValue, onChange: handleChange, name }}>\n <div role=\"radiogroup\" className={className}>{children}</div>\n </RadioGroupContext.Provider>\n )\n}\n\nconst RadioRoot = forwardRef<HTMLInputElement, RadioProps>(\n ({ size, color, className = '', value, checked, onChange, name: nameProp, children, ...props }, ref) => {\n const groupContext = useContext(RadioGroupContext)\n\n const sizeClasses = {\n xs: 'radio-xs',\n sm: 'radio-sm',\n md: 'radio-md',\n lg: 'radio-lg',\n xl: 'radio-xl',\n }\n\n const colorClasses = {\n neutral: 'radio-neutral',\n primary: 'radio-primary',\n secondary: 'radio-secondary',\n accent: 'radio-accent',\n info: 'radio-info',\n success: 'radio-success',\n warning: 'radio-warning',\n error: 'radio-error',\n }\n\n const radioClasses = ['radio', size && sizeClasses[size], color && colorClasses[color]]\n .filter(Boolean)\n .join(' ')\n\n // If in a group, use group's value and onChange\n const isChecked = groupContext ? groupContext.value === value : checked\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (groupContext && value !== undefined) {\n const normalizedValue = typeof value === 'string' || typeof value === 'number' ? value : String(value)\n groupContext.onChange?.(normalizedValue)\n }\n onChange?.(e)\n }\n const name = groupContext?.name || nameProp\n\n const dataState = isChecked ? 'checked' : 'unchecked'\n\n const input = (\n <input\n ref={ref}\n type=\"radio\"\n className={radioClasses}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n name={name}\n data-state={dataState}\n {...props}\n />\n )\n\n // If children are provided, wrap in a label\n if (children) {\n return (\n <label className={`flex items-center gap-2 cursor-pointer ${className}`}>\n <span className=\"flex-shrink-0\">{input}</span>\n <span>{children}</span>\n </label>\n )\n }\n\n return input\n }\n)\n\nRadioRoot.displayName = 'Radio'\n\nexport const Radio = Object.assign(RadioRoot, {\n Group: RadioGroup,\n})\n"],"names":["RadioGroupContext","createContext","RadioGroup","children","value","defaultValue","onChange","name","className","internalValue","setInternalValue","React","currentValue","handleChange","newValue","jsx","RadioRoot","forwardRef","size","color","checked","nameProp","props","ref","groupContext","useContext","sizeClasses","colorClasses","radioClasses","isChecked","e","normalizedValue","input","jsxs","Radio"],"mappings":";;AA+BA,MAAMA,IAAoBC,EAA6C,IAAI;AAE3E,SAASC,EAAW,EAAE,UAAAC,GAAU,OAAAC,GAAO,cAAAC,GAAc,UAAAC,GAAU,MAAAC,GAAM,WAAAC,IAAY,MAAuB;AACtG,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAM,SAASN,CAAY,GAC/DO,IAAeR,MAAU,SAAYA,IAAQK,GAE7CI,IAAe,CAACC,MAA8B;AAClD,IAAIV,MAAU,UACZM,EAAiBI,CAAQ,GAE3BR,IAAW,EAAE,QAAQ,EAAE,OAAOQ,GAAU,MAAAP,EAAA,GAAQ;AAAA,EAClD;AAEA,2BACGP,EAAkB,UAAlB,EAA2B,OAAO,EAAE,OAAOY,GAAc,UAAUC,GAAc,MAAAN,EAAA,GAChF,UAAA,gBAAAQ,EAAC,OAAA,EAAI,MAAK,cAAa,WAAAP,GAAuB,UAAAL,GAAS,GACzD;AAEJ;AAEA,MAAMa,IAAYC;AAAA,EAChB,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,WAAAX,IAAY,IAAI,OAAAJ,GAAO,SAAAgB,GAAS,UAAAd,GAAU,MAAMe,GAAU,UAAAlB,GAAU,GAAGmB,EAAA,GAASC,MAAQ;AACtG,UAAMC,IAAeC,EAAWzB,CAAiB,GAE3C0B,IAAc;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAe;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,GAGHC,IAAe,CAAC,SAASV,KAAQQ,EAAYR,CAAI,GAAGC,KAASQ,EAAaR,CAAK,CAAC,EACnF,OAAO,OAAO,EACd,KAAK,GAAG,GAGLU,IAAYL,IAAeA,EAAa,UAAUpB,IAAQgB,GAC1DP,IAAe,CAACiB,MAA2C;AAC/D,UAAIN,KAAgBpB,MAAU,QAAW;AACvC,cAAM2B,IAAkB,OAAO3B,KAAU,YAAY,OAAOA,KAAU,WAAWA,IAAQ,OAAOA,CAAK;AACrG,QAAAoB,EAAa,WAAWO,CAAe;AAAA,MACzC;AACA,MAAAzB,IAAWwB,CAAC;AAAA,IACd,GACMvB,IAAOiB,GAAc,QAAQH,GAI7BW,IACJ,gBAAAjB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAQ;AAAA,QACA,MAAK;AAAA,QACL,WAAWK;AAAA,QACX,OAAAxB;AAAA,QACA,SAASyB;AAAA,QACT,UAAUhB;AAAA,QACV,MAAAN;AAAA,QACA,cAXcsB,IAAY,YAAY;AAAA,QAYrC,GAAGP;AAAA,MAAA;AAAA,IAAA;AAKR,WAAInB,IAEA,gBAAA8B,EAAC,SAAA,EAAM,WAAW,0CAA0CzB,CAAS,IACnE,UAAA;AAAA,MAAA,gBAAAO,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAiB,GAAM;AAAA,MACvC,gBAAAjB,EAAC,UAAM,UAAAZ,EAAA,CAAS;AAAA,IAAA,GAClB,IAIG6B;AAAA,EACT;AACF;AAEAhB,EAAU,cAAc;AAEjB,MAAMkB,IAAQ,OAAO,OAAOlB,GAAW;AAAA,EAC5C,OAAOd;AACT,CAAC;"}
|
package/dist/index68.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index68.js","sources":["../src/components/RadialProgress.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface RadialProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n value: number\n size?: string | number\n thickness?: string | number\n color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'neutral'\n showValue?: boolean\n children?: React.ReactNode\n}\n\nconst colorClasses = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n info: 'text-info',\n neutral: 'text-neutral',\n} as const\n\nexport const RadialProgress: React.FC<RadialProgressProps> = ({\n value,\n size,\n thickness,\n color,\n showValue = true,\n children,\n className = '',\n style,\n ...rest\n}) => {\n const getClasses = () => {\n const classes = ['radial-progress']\n\n if (color) {\n classes.push(colorClasses[color])\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n }\n\n const getStyle = (): React.CSSProperties => {\n const style: Record<string, string | number> = {\n '--value': value,\n }\n\n if (size !== undefined) {\n style['--size'] = typeof size === 'number' ? `${size}rem` : size\n }\n\n if (thickness !== undefined) {\n style['--thickness'] = typeof thickness === 'number' ? `${thickness}px` : thickness\n }\n\n return style as React.CSSProperties\n }\n\n return (\n <div\n className={getClasses()}\n style={{ ...getStyle(), ...style }}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={100}\n {...rest}\n >\n {children !== undefined ? children : showValue ? `${value}%` : null}\n </div>\n )\n}\n"],"names":["colorClasses","RadialProgress","value","size","thickness","color","showValue","children","className","style","rest","getClasses","classes","getStyle","jsx"],"mappings":";AAWA,MAAMA,IAAe;AAAA,EACnB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AACX,GAEaC,IAAgD,CAAC;AAAA,EAC5D,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAa,MAAM;AACvB,UAAMC,IAAU,CAAC,iBAAiB;AAElC,WAAIP,KACFO,EAAQ,KAAKZ,EAAaK,CAAK,CAAC,GAG9BG,KACFI,EAAQ,KAAKJ,CAAS,GAGjBI,EAAQ,KAAK,GAAG;AAAA,EACzB,GAEMC,IAAW,MAA2B;AAC1C,UAAMJ,IAAyC;AAAA,MAC7C,WAAWP;AAAA,IAAA;AAGb,WAAIC,MAAS,WACXM,EAAM,QAAQ,IAAI,OAAON,KAAS,WAAW,GAAGA,CAAI,QAAQA,IAG1DC,MAAc,WAChBK,EAAM,aAAa,IAAI,OAAOL,KAAc,WAAW,GAAGA,CAAS,OAAOA,IAGrEK;AAAAA,EACT;AAEA,SACE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWH,EAAA;AAAA,MACX,OAAO,EAAE,GAAGE,EAAA,GAAY,GAAGJ,EAAA;AAAA,MAC3B,MAAK;AAAA,MACL,iBAAeP;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACd,GAAGQ;AAAA,MAEH,gBAAa,SAAYH,IAAWD,IAAY,GAAGJ,CAAK,MAAM;AAAA,IAAA;AAAA,EAAA;AAGrE;"}
|
package/dist/index69.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index69.js","sources":["../src/components/Range.tsx"],"sourcesContent":["import React, { useState } from 'react'\n\nexport interface RangeProps {\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n min?: number\n max?: number\n step?: number\n size?: 'xs' | 'sm' | 'md' | 'lg'\n color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error'\n disabled?: boolean\n showValue?: boolean\n showSteps?: boolean\n className?: string\n}\n\nexport const Range: React.FC<RangeProps> = ({\n value,\n defaultValue = 50,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n size = 'md',\n color,\n disabled = false,\n showValue = false,\n showSteps = false,\n className = '',\n}) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = parseFloat(e.target.value)\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n }\n\n const sizeClasses = {\n xs: 'range-xs',\n sm: 'range-sm',\n md: 'range-md',\n lg: 'range-lg',\n } as const\n\n const colorClasses = {\n primary: 'range-primary',\n secondary: 'range-secondary',\n accent: 'range-accent',\n success: 'range-success',\n warning: 'range-warning',\n info: 'range-info',\n error: 'range-error',\n } as const\n\n const sizeClass = sizeClasses[size]\n const colorClass = color ? colorClasses[color] : ''\n\n // Calculate steps for visual markers\n const steps = showSteps\n ? Array.from({ length: Math.floor((max - min) / step) + 1 }, (_, i) => min + i * step)\n : []\n\n return (\n <div className={className}>\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={currentValue}\n onChange={handleChange}\n disabled={disabled}\n className={`range ${sizeClass} ${colorClass}`}\n />\n {showSteps && steps.length > 0 && (\n <div className=\"w-full flex justify-between text-xs px-2 mt-2\">\n {steps.map((stepValue) => (\n <span key={stepValue} className=\"text-base-content/60\">\n |\n </span>\n ))}\n </div>\n )}\n {showValue && (\n <div className=\"text-center mt-2 text-sm font-medium text-base-content\">\n {currentValue}\n </div>\n )}\n </div>\n )\n}\n"],"names":["Range","value","defaultValue","onChange","min","max","step","size","color","disabled","showValue","showSteps","className","internalValue","setInternalValue","useState","currentValue","handleChange","newValue","sizeClasses","colorClasses","sizeClass","colorClass","steps","_","i","jsxs","jsx","stepValue"],"mappings":";;AAiBO,MAAMA,IAA8B,CAAC;AAAA,EAC1C,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,KAAAC,IAAM;AAAA,EACN,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AACd,MAAM;AACJ,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAASb,CAAY,GACzDc,IAAef,MAAU,SAAYA,IAAQY,GAE7CI,IAAe,CAAC,MAA2C;AAC/D,UAAMC,IAAW,WAAW,EAAE,OAAO,KAAK;AAC1C,IAAIjB,MAAU,UACZa,EAAiBI,CAAQ,GAE3Bf,IAAWe,CAAQ;AAAA,EACrB,GAEMC,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,GAGAC,IAAe;AAAA,IACnB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EAAA,GAGHC,IAAYF,EAAYZ,CAAI,GAC5Be,IAAad,IAAQY,EAAaZ,CAAK,IAAI,IAG3Ce,IAAQZ,IACV,MAAM,KAAK,EAAE,QAAQ,KAAK,OAAON,IAAMD,KAAOE,CAAI,IAAI,EAAA,GAAK,CAACkB,GAAGC,MAAMrB,IAAMqB,IAAInB,CAAI,IACnF,CAAA;AAEJ,SACE,gBAAAoB,EAAC,SAAI,WAAAd,GACH,UAAA;AAAA,IAAA,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAAvB;AAAA,QACA,KAAAC;AAAA,QACA,MAAAC;AAAA,QACA,OAAOU;AAAA,QACP,UAAUC;AAAA,QACV,UAAAR;AAAA,QACA,WAAW,SAASY,CAAS,IAAIC,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAE5CX,KAAaY,EAAM,SAAS,KAC3B,gBAAAI,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAAJ,EAAM,IAAI,CAACK,wBACT,QAAA,EAAqB,WAAU,wBAAuB,UAAA,IAAA,GAA5CA,CAEX,CACD,GACH;AAAA,IAEDlB,KACC,gBAAAiB,EAAC,OAAA,EAAI,WAAU,0DACZ,UAAAX,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ;"}
|
package/dist/index7.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index7.js","sources":["../src/components/Badge.tsx"],"sourcesContent":["import React from 'react'\n\nexport type BadgePosition =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'middle-start'\n | 'middle-center'\n | 'middle-end'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end'\n\nexport type BadgeStatus = 'success' | 'processing' | 'error' | 'default' | 'warning'\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n // Count mode\n count?: number\n showZero?: boolean\n overflowCount?: number\n\n // Positioning (when wrapping children)\n position?: BadgePosition\n offset?: [number, number]\n\n // Status mode\n status?: BadgeStatus\n text?: string\n\n // Ribbon mode\n ribbon?: string\n ribbonPlacement?: 'start' | 'end'\n\n // Visual\n type?: 'default' | 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error' | 'ghost'\n size?: 'xs' | 'sm' | 'md' | 'lg'\n dot?: boolean\n outline?: boolean\n\n // Content\n children?: React.ReactNode\n}\n\nexport const Badge: React.FC<BadgeProps> = ({\n children,\n count,\n showZero = false,\n overflowCount = 99,\n position = 'top-end',\n offset,\n status,\n text,\n ribbon,\n ribbonPlacement = 'end',\n type = 'error',\n size = 'md',\n dot = false,\n outline = false,\n className = '',\n ...rest\n}) => {\n const typeClasses = {\n default: '',\n primary: 'badge-primary',\n secondary: 'badge-secondary',\n accent: 'badge-accent',\n neutral: 'badge-neutral',\n info: 'badge-info',\n success: 'badge-success',\n warning: 'badge-warning',\n error: 'badge-error',\n ghost: 'badge-ghost',\n }\n\n const sizeClasses = {\n xs: 'badge-xs',\n sm: 'badge-sm',\n md: 'badge-md',\n lg: 'badge-lg',\n }\n\n const statusTypeMap: Record<BadgeStatus, typeof type> = {\n success: 'success',\n processing: 'info',\n error: 'error',\n warning: 'warning',\n default: 'neutral',\n }\n\n // Get position classes for indicator\n const getPositionClasses = (pos: BadgePosition) => {\n const [vertical, horizontal] = pos.split('-')\n const classes: string[] = []\n\n switch (vertical) {\n case 'top':\n classes.push('indicator-top')\n break\n case 'middle':\n classes.push('indicator-middle')\n break\n case 'bottom':\n classes.push('indicator-bottom')\n break\n }\n\n switch (horizontal) {\n case 'start':\n classes.push('indicator-start')\n break\n case 'center':\n classes.push('indicator-center')\n break\n case 'end':\n classes.push('indicator-end')\n break\n }\n\n return classes.join(' ')\n }\n\n // Calculate display count with overflow\n const getDisplayCount = () => {\n if (count === undefined) return null\n if (count > overflowCount) return `${overflowCount}+`\n return count\n }\n\n const shouldShowBadge = count !== undefined && (count > 0 || showZero) || dot\n\n // Status badge mode (standalone with status indicator)\n if (status && !children) {\n const statusType = statusTypeMap[status]\n return (\n <span className={`inline-flex items-center gap-2 ${className}`} {...rest}>\n <span\n className={[\n 'badge badge-xs w-2 h-2 p-0',\n typeClasses[statusType],\n status === 'processing' && 'animate-pulse',\n ]\n .filter(Boolean)\n .join(' ')}\n />\n {text && <span className=\"text-sm\">{text}</span>}\n </span>\n )\n }\n\n // Ribbon mode\n if (ribbon && children) {\n const ribbonClasses = [\n 'absolute',\n ribbonPlacement === 'start' ? '-left-1 top-2' : '-right-1 top-2',\n 'px-2 py-0.5',\n 'text-xs font-semibold text-white',\n 'bg-primary',\n 'shadow-sm',\n ribbonPlacement === 'start' ? 'rounded-r' : 'rounded-l',\n ].join(' ')\n\n return (\n <div className={`relative inline-block ${className}`} {...rest}>\n {children}\n <div className={ribbonClasses}>{ribbon}</div>\n </div>\n )\n }\n\n // Notification badge mode (wrapping children)\n if (children) {\n const offsetStyle =\n offset\n ? {\n transform: `translate(${offset[0]}px, ${offset[1]}px)`,\n }\n : undefined\n\n return (\n <div className={`indicator inline-block ${className}`} {...rest}>\n {shouldShowBadge && (\n <span\n className={[\n 'indicator-item badge',\n getPositionClasses(position),\n typeClasses[type],\n dot ? 'badge-xs p-0 w-2 h-2' : sizeClasses[size],\n outline && 'badge-outline',\n ]\n .filter(Boolean)\n .join(' ')}\n style={offsetStyle}\n >\n {!dot && getDisplayCount()}\n </span>\n )}\n {children}\n </div>\n )\n }\n\n // Standalone badge mode (like a label)\n const badgeClasses = [\n 'badge',\n typeClasses[type],\n sizeClasses[size],\n outline && 'badge-outline',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const displayContent = getDisplayCount()\n\n return <span className={badgeClasses} {...rest}>{displayContent}</span>\n}\n"],"names":["Badge","children","count","showZero","overflowCount","position","offset","status","text","ribbon","ribbonPlacement","type","size","dot","outline","className","rest","typeClasses","sizeClasses","statusTypeMap","getPositionClasses","pos","vertical","horizontal","classes","getDisplayCount","shouldShowBadge","statusType","jsx","ribbonClasses","offsetStyle","badgeClasses","displayContent"],"mappings":"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"}
|
package/dist/index70.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index70.js","sources":["../src/components/Rating.tsx"],"sourcesContent":["import React, { createContext, useContext, useId, useState } from 'react'\n\nexport interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {\n children?: React.ReactNode\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n onHoverChange?: (value: number) => void\n count?: number\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n gap?: 'none' | 'xs' | 'sm' | 'md' | 'lg'\n color?: string\n mask?: 'star' | 'star-2' | 'heart'\n allowClear?: boolean\n allowHalf?: boolean\n disabled?: boolean\n}\n\nexport interface RatingItemProps {\n value: number\n mask?: 'star' | 'star-2' | 'heart'\n color?: string\n hidden?: boolean\n half?: 'first' | 'second'\n className?: string\n}\n\ninterface RatingContextValue {\n name: string\n currentValue: number\n hoverValue: number\n onChange: (value: number) => void\n onHover: (value: number) => void\n size?: string\n disabled?: boolean\n halfGap?: 'none' | 'xs' | 'sm' | 'md' | 'lg'\n}\n\nconst RatingContext = createContext<RatingContextValue | null>(null)\n\nfunction RatingRoot({\n children,\n value,\n defaultValue = 0,\n onChange,\n onHoverChange,\n count = 5,\n size,\n gap = 'md',\n color = 'bg-warning',\n mask = 'star-2',\n allowClear = true,\n allowHalf = false,\n disabled = false,\n className = '',\n ...rest\n}: RatingProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [hoverValue, setHoverValue] = useState(0)\n const currentValue = value !== undefined ? value : internalValue\n const name = useId()\n\n const handleChange = (newValue: number) => {\n if (disabled) return\n // Allow clearing if clicking the same value and allowClear is true\n const finalValue = allowClear && newValue === currentValue ? 0 : newValue\n if (value === undefined) {\n setInternalValue(finalValue)\n }\n // Clear hover state so the clicked value shows immediately\n setHoverValue(0)\n onChange?.(finalValue)\n }\n\n const handleHover = (hoverVal: number) => {\n if (disabled) return\n setHoverValue(hoverVal)\n onHoverChange?.(hoverVal)\n }\n\n const sizeClasses = {\n xs: 'rating-xs',\n sm: 'rating-sm',\n md: 'rating-md',\n lg: 'rating-lg',\n xl: 'rating-xl',\n }\n\n const gapClasses = {\n none: 'gap-0',\n xs: 'gap-0.5',\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n }\n\n const classes = [\n 'rating',\n // Half-star mode requires a size class to render correctly, default to md\n allowHalf ? sizeClasses[size || 'md'] : (size && sizeClasses[size]),\n allowHalf ? 'rating-half' : (gap && gapClasses[gap]),\n className,\n ].filter(Boolean).join(' ')\n\n // Auto-generate items if no children provided\n // Note: half-star mode requires mask-star-2 per DaisyUI\n const effectiveMask = allowHalf ? 'star-2' : mask\n const items = children || (\n <>\n {allowClear && <RatingItem value={0} hidden />}\n {allowHalf ? (\n // Half-star mode: each star is two inputs\n Array.from({ length: count }, (_, i) => (\n <React.Fragment key={i + 1}>\n <RatingItem value={i + 0.5} mask={effectiveMask} color={color} half=\"first\" />\n <RatingItem value={i + 1} mask={effectiveMask} color={color} half=\"second\" />\n </React.Fragment>\n ))\n ) : (\n // Standard mode: one input per star\n Array.from({ length: count }, (_, i) => (\n <RatingItem key={i + 1} value={i + 1} mask={effectiveMask} color={color} />\n ))\n )}\n </>\n )\n\n return (\n <RatingContext.Provider value={{ name, currentValue, hoverValue, onChange: handleChange, onHover: handleHover, size, disabled, halfGap: allowHalf ? gap : undefined }}>\n <div\n role=\"radiogroup\"\n aria-label=\"Rating\"\n className={classes}\n data-value={currentValue}\n onMouseLeave={() => handleHover(0)}\n {...rest}\n >\n {items}\n </div>\n </RatingContext.Provider>\n )\n}\n\nfunction RatingItem({ value, mask = 'star-2', color = 'bg-warning', hidden = false, half, className = '' }: RatingItemProps) {\n const context = useContext(RatingContext)\n if (!context) {\n throw new Error('Rating.Item must be used within Rating')\n }\n\n const { name, currentValue, hoverValue, onChange, onHover, disabled, halfGap } = context\n\n const maskClasses = {\n star: 'mask-star',\n 'star-2': 'mask-star-2',\n heart: 'mask-heart',\n }\n\n const halfGapClasses = {\n none: '',\n xs: 'mr-0.5',\n sm: 'mr-1',\n md: 'mr-2',\n lg: 'mr-3',\n }\n\n const halfClasses = {\n first: 'mask-half-1',\n second: `mask-half-2 ${halfGap ? halfGapClasses[halfGap] : ''}`.trim(),\n }\n\n // Hidden items only get rating-hidden class (no mask)\n // Visible items get mask classes - DaisyUI CSS handles filled/unfilled state\n const classes = hidden\n ? 'rating-hidden'\n : [\n 'mask',\n maskClasses[mask],\n half && halfClasses[half],\n color,\n className,\n ].filter(Boolean).join(' ')\n\n if (disabled) {\n return (\n <div\n className={classes}\n aria-current={currentValue === value ? 'true' : undefined}\n aria-label={`Rating ${value}`}\n />\n )\n }\n\n // Use hoverValue for checked state when hovering (for visual preview)\n // DaisyUI CSS fills all stars up to the checked one\n const displayValue = hoverValue > 0 ? hoverValue : currentValue\n\n return (\n <input\n type=\"radio\"\n name={name}\n className={classes}\n checked={displayValue === value}\n onChange={() => {}} // Controlled by onClick\n onClick={() => onChange(value)}\n onMouseEnter={() => onHover(value)}\n aria-label={`Rating ${value}`}\n />\n )\n}\n\nexport const Rating = Object.assign(RatingRoot, {\n Item: RatingItem,\n})\n"],"names":["RatingContext","createContext","RatingRoot","children","value","defaultValue","onChange","onHoverChange","count","size","gap","color","mask","allowClear","allowHalf","disabled","className","rest","internalValue","setInternalValue","useState","hoverValue","setHoverValue","currentValue","name","useId","handleChange","newValue","finalValue","handleHover","hoverVal","sizeClasses","gapClasses","classes","effectiveMask","items","jsxs","Fragment","jsx","RatingItem","_","i","React","hidden","half","context","useContext","onHover","halfGap","maskClasses","halfClasses","displayValue","Rating"],"mappings":"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"}
|
package/dist/index71.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index71.js","sources":["../src/components/Result.tsx"],"sourcesContent":["import React from 'react'\n\nexport type ResultStatus = 'success' | 'error' | 'info' | 'warning' | '404' | '403' | '500'\n\nexport interface ResultProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n status?: ResultStatus\n title?: React.ReactNode\n subTitle?: React.ReactNode\n icon?: React.ReactNode\n extra?: React.ReactNode\n children?: React.ReactNode\n}\n\nconst defaultIcons: Record<ResultStatus, React.ReactNode> = {\n success: (\n <svg\n className=\"w-16 h-16 text-success\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n error: (\n <svg\n className=\"w-16 h-16 text-error\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n info: (\n <svg\n className=\"w-16 h-16 text-info\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n warning: (\n <svg\n className=\"w-16 h-16 text-warning\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n ),\n '404': (\n <div className=\"text-6xl font-bold text-base-content/40\">404</div>\n ),\n '403': (\n <div className=\"text-6xl font-bold text-base-content/40\">403</div>\n ),\n '500': (\n <div className=\"text-6xl font-bold text-base-content/40\">500</div>\n ),\n}\n\nexport const Result: React.FC<ResultProps> = ({\n status = 'info',\n title,\n subTitle,\n icon,\n extra,\n children,\n className = '',\n ...rest\n}) => {\n const displayIcon = icon !== undefined ? icon : defaultIcons[status]\n\n return (\n <div\n className={`w-full flex flex-col items-center justify-center text-center p-8 ${className}`}\n data-status={status}\n {...rest}\n >\n {displayIcon && <div className=\"mb-6\">{displayIcon}</div>}\n\n {title && (\n <div className=\"text-2xl font-semibold mb-2 text-base-content\">\n {title}\n </div>\n )}\n\n {subTitle && (\n <div className=\"text-base text-base-content/70 mb-6 max-w-md\">\n {subTitle}\n </div>\n )}\n\n {children && <div className=\"mb-6 max-w-2xl\">{children}</div>}\n\n {extra && <div className=\"flex gap-2\">{extra}</div>}\n </div>\n )\n}\n\nResult.displayName = 'Result'\n\nexport default Result\n"],"names":["defaultIcons","jsx","Result","status","title","subTitle","icon","extra","children","className","rest","displayIcon","jsxs"],"mappings":";AAaA,MAAMA,IAAsD;AAAA,EAC1D,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,OACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,MACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,SACE,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAAA,EAGJ,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,OAAG;AAAA,EAE9D,KACE,gBAAAA,EAAC,OAAA,EAAI,WAAU,2CAA0C,UAAA,MAAA,CAAG;AAEhE,GAEaC,IAAgC,CAAC;AAAA,EAC5C,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAcL,MAAS,SAAYA,IAAON,EAAaG,CAAM;AAEnE,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oEAAoEH,CAAS;AAAA,MACxF,eAAaN;AAAA,MACZ,GAAGO;AAAA,MAEH,UAAA;AAAA,QAAAC,KAAe,gBAAAV,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAU,GAAY;AAAA,QAElDP,KACC,gBAAAH,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAAG,GACH;AAAA,QAGDC,KACC,gBAAAJ,EAAC,OAAA,EAAI,WAAU,gDACZ,UAAAI,GACH;AAAA,QAGDG,KAAY,gBAAAP,EAAC,OAAA,EAAI,WAAU,kBAAkB,UAAAO,GAAS;AAAA,QAEtDD,KAAS,gBAAAN,EAAC,OAAA,EAAI,WAAU,cAAc,UAAAM,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnD;AAEAL,EAAO,cAAc;"}
|
package/dist/index72.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index72.js","sources":["../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\n\nexport interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n /** Validation status */\n status?: 'error' | 'warning'\n ghost?: boolean\n bordered?: boolean\n /** Floating label text (uses DaisyUI floating-label) */\n floatingLabel?: string\n /** Text/element before select (outside, using DaisyUI label) */\n addonBefore?: React.ReactNode\n /** Text/element after select (outside, using DaisyUI label) */\n addonAfter?: React.ReactNode\n className?: string\n children?: React.ReactNode\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size,\n color,\n status,\n ghost = false,\n bordered = true,\n floatingLabel,\n addonBefore,\n addonAfter,\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const innerRef = useRef<HTMLSelectElement>(null)\n const selectRef = (ref as React.RefObject<HTMLSelectElement>) || innerRef\n\n const sizeClasses = {\n xs: 'select-xs',\n sm: 'select-sm',\n md: 'select-md',\n lg: 'select-lg',\n xl: 'select-xl',\n }\n\n const colorClasses = {\n neutral: 'select-neutral',\n primary: 'select-primary',\n secondary: 'select-secondary',\n accent: 'select-accent',\n info: 'select-info',\n success: 'select-success',\n warning: 'select-warning',\n error: 'select-error',\n }\n\n const statusClasses = {\n error: 'select-error',\n warning: 'select-warning',\n }\n\n // Status takes precedence over color for validation feedback\n const effectiveColorClass = status ? statusClasses[status] : (color ? colorClasses[color] : '')\n\n // When wrapped with external addons, the wrapper has the styling\n const hasExternalAddons = addonBefore || addonAfter\n\n const selectClasses = hasExternalAddons\n ? ['grow', 'bg-transparent', 'border-0', 'outline-none', 'focus:outline-none', className].filter(Boolean).join(' ')\n : [\n 'select',\n 'w-full',\n bordered && 'select-bordered',\n ghost && 'select-ghost',\n size && sizeClasses[size],\n effectiveColorClass,\n className,\n ].filter(Boolean).join(' ')\n\n // Build the core select element\n const selectElement = (\n <select ref={selectRef} className={selectClasses} {...props}>\n {children}\n </select>\n )\n\n // Wrap with floating label if specified\n if (floatingLabel) {\n const floatingClasses = [\n 'floating-label',\n size && sizeClasses[size],\n ].filter(Boolean).join(' ')\n\n return (\n <label className={floatingClasses}>\n <select ref={selectRef} className=\"select select-bordered w-full\" {...props}>\n {children}\n </select>\n <span>{floatingLabel}</span>\n </label>\n )\n }\n\n // Wrap with external addons if specified\n if (hasExternalAddons) {\n const addonClasses = [\n 'select',\n 'select-bordered',\n 'flex',\n 'items-center',\n 'gap-2',\n size && sizeClasses[size],\n effectiveColorClass,\n ].filter(Boolean).join(' ')\n\n return (\n <label className={addonClasses}>\n {addonBefore && <span className=\"text-base-content/70\">{addonBefore}</span>}\n {selectElement}\n {addonAfter && <span className=\"text-base-content/70\">{addonAfter}</span>}\n </label>\n )\n }\n\n return selectElement\n }\n)\n\nSelect.displayName = 'Select'\n"],"names":["Select","forwardRef","size","color","status","ghost","bordered","floatingLabel","addonBefore","addonAfter","className","children","props","ref","innerRef","useRef","selectRef","sizeClasses","effectiveColorClass","hasExternalAddons","selectClasses","selectElement","floatingClasses","jsxs","jsx","addonClasses"],"mappings":";;AAmBO,MAAMA,IAASC;AAAA,EACpB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,UAAAC,IAAW;AAAA,IACX,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAWC,EAA0B,IAAI,GACzCC,IAAaH,KAA8CC,GAE3DG,IAAc;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAoBAC,IAAsBd,IANN;AAAA,MACpB,OAAO;AAAA,MACP,SAAS;AAAA,IAAA,EAIwCA,CAAM,IAAKD,IAjBzC;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA,EAS0EA,CAAK,IAAI,IAGtFgB,IAAoBX,KAAeC,GAEnCW,IAAgBD,IAClB,CAAC,QAAQ,kBAAkB,YAAY,gBAAgB,sBAAsBT,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,IAChH;AAAA,MACE;AAAA,MACA;AAAA,MACAJ,KAAY;AAAA,MACZD,KAAS;AAAA,MACTH,KAAQe,EAAYf,CAAI;AAAA,MACxBgB;AAAA,MACAR;AAAA,IAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG,GAGxBW,sBACH,UAAA,EAAO,KAAKL,GAAW,WAAWI,GAAgB,GAAGR,GACnD,UAAAD,EAAA,CACH;AAIF,QAAIJ,GAAe;AACjB,YAAMe,IAAkB;AAAA,QACtB;AAAA,QACApB,KAAQe,EAAYf,CAAI;AAAA,MAAA,EACxB,OAAO,OAAO,EAAE,KAAK,GAAG;AAE1B,aACE,gBAAAqB,EAAC,SAAA,EAAM,WAAWD,GAChB,UAAA;AAAA,QAAA,gBAAAE,EAAC,YAAO,KAAKR,GAAW,WAAU,iCAAiC,GAAGJ,GACnE,UAAAD,GACH;AAAA,QACA,gBAAAa,EAAC,UAAM,UAAAjB,EAAA,CAAc;AAAA,MAAA,GACvB;AAAA,IAEJ;AAGA,QAAIY,GAAmB;AACrB,YAAMM,IAAe;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAvB,KAAQe,EAAYf,CAAI;AAAA,QACxBgB;AAAA,MAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG;AAE1B,aACE,gBAAAK,EAAC,SAAA,EAAM,WAAWE,GACf,UAAA;AAAA,QAAAjB,KAAe,gBAAAgB,EAAC,QAAA,EAAK,WAAU,wBAAwB,UAAAhB,GAAY;AAAA,QACnEa;AAAA,QACAZ,KAAc,gBAAAe,EAAC,QAAA,EAAK,WAAU,wBAAwB,UAAAf,EAAA,CAAW;AAAA,MAAA,GACpE;AAAA,IAEJ;AAEA,WAAOY;AAAA,EACT;AACF;AAEArB,EAAO,cAAc;"}
|
package/dist/index73.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index73.js","sources":["../src/components/Segmented.tsx"],"sourcesContent":["import React, { useState, useCallback, createContext, useContext } from 'react'\n\nexport type SegmentedValue = string | number\n\ninterface SegmentedContextValue {\n value?: SegmentedValue\n onChange?: (value: SegmentedValue) => void\n size: 'xs' | 'sm' | 'md' | 'lg'\n disabled: boolean\n}\n\nconst SegmentedContext = createContext<SegmentedContextValue | null>(null)\n\nconst useSegmentedContext = () => {\n const context = useContext(SegmentedContext)\n if (!context) {\n throw new Error('Segmented.Item must be used within a Segmented component')\n }\n return context\n}\n\nexport interface SegmentedItemProps {\n /** Option value */\n value: SegmentedValue\n /** Disable this option */\n disabled?: boolean\n /** Icon to display before label */\n icon?: React.ReactNode\n /** Label content */\n children: React.ReactNode\n /** Additional CSS class */\n className?: string\n}\n\nconst sizeClasses = {\n xs: 'btn-xs',\n sm: 'btn-sm',\n md: '',\n lg: 'btn-lg',\n}\n\nconst SegmentedItem: React.FC<SegmentedItemProps> = ({\n value,\n disabled: itemDisabled = false,\n icon,\n children,\n className = '',\n}) => {\n const { value: selectedValue, onChange, size, disabled: groupDisabled } = useSegmentedContext()\n\n const isSelected = selectedValue === value\n const isDisabled = groupDisabled || itemDisabled\n\n const handleClick = () => {\n if (!isDisabled) {\n onChange?.(value)\n }\n }\n\n const buttonClasses = [\n 'join-item',\n 'btn',\n sizeClasses[size],\n isSelected ? 'btn-active' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <button\n type=\"button\"\n className={buttonClasses}\n disabled={isDisabled}\n onClick={handleClick}\n aria-pressed={isSelected}\n data-testid={`segmented-item-${value}`}\n >\n {icon && <span className=\"mr-1\">{icon}</span>}\n {children}\n </button>\n )\n}\n\nexport interface SegmentedProps {\n /** Currently selected value (controlled) */\n value?: SegmentedValue\n /** Default selected value (uncontrolled) */\n defaultValue?: SegmentedValue\n /** Callback when selection changes */\n onChange?: (value: SegmentedValue) => void\n /** Size variant */\n size?: 'xs' | 'sm' | 'md' | 'lg'\n /** Take full width of container */\n block?: boolean\n /** Disable all options */\n disabled?: boolean\n /** Additional CSS class */\n className?: string\n /** Segmented.Item children */\n children: React.ReactNode\n}\n\nexport const Segmented: React.FC<SegmentedProps> & { Item: typeof SegmentedItem } = ({\n value,\n defaultValue,\n onChange,\n size = 'md',\n block = false,\n disabled = false,\n className = '',\n children,\n}) => {\n const [internalValue, setInternalValue] = useState<SegmentedValue | undefined>(defaultValue)\n\n const isControlled = value !== undefined\n const currentValue = isControlled ? value : internalValue\n\n const handleChange = useCallback(\n (newValue: SegmentedValue) => {\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [isControlled, onChange]\n )\n\n const contextValue: SegmentedContextValue = {\n value: currentValue,\n onChange: handleChange,\n size,\n disabled,\n }\n\n const containerClasses = ['join', block ? 'w-full [&>.join-item]:flex-1' : '', className]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SegmentedContext.Provider value={contextValue}>\n <div className={containerClasses} role=\"group\" data-testid=\"segmented\">\n {children}\n </div>\n </SegmentedContext.Provider>\n )\n}\n\nSegmented.Item = SegmentedItem\n"],"names":["SegmentedContext","createContext","useSegmentedContext","context","useContext","sizeClasses","SegmentedItem","value","itemDisabled","icon","children","className","selectedValue","onChange","size","groupDisabled","isSelected","isDisabled","handleClick","buttonClasses","jsxs","jsx","Segmented","defaultValue","block","disabled","internalValue","setInternalValue","useState","isControlled","currentValue","handleChange","useCallback","newValue","contextValue","containerClasses"],"mappings":";;AAWA,MAAMA,IAAmBC,EAA4C,IAAI,GAEnEC,IAAsB,MAAM;AAChC,QAAMC,IAAUC,EAAWJ,CAAgB;AAC3C,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,0DAA0D;AAE5E,SAAOA;AACT,GAeME,IAAc;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAA8C,CAAC;AAAA,EACnD,OAAAC;AAAA,EACA,UAAUC,IAAe;AAAA,EACzB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AACd,MAAM;AACJ,QAAM,EAAE,OAAOC,GAAe,UAAAC,GAAU,MAAAC,GAAM,UAAUC,EAAA,IAAkBb,EAAA,GAEpEc,IAAaJ,MAAkBL,GAC/BU,IAAaF,KAAiBP,GAE9BU,IAAc,MAAM;AACxB,IAAKD,KACHJ,IAAWN,CAAK;AAAA,EAEpB,GAEMY,IAAgB;AAAA,IACpB;AAAA,IACA;AAAA,IACAd,EAAYS,CAAI;AAAA,IAChBE,IAAa,eAAe;AAAA,IAC5BL;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWD;AAAA,MACX,UAAUF;AAAA,MACV,SAASC;AAAA,MACT,gBAAcF;AAAA,MACd,eAAa,kBAAkBT,CAAK;AAAA,MAEnC,UAAA;AAAA,QAAAE,KAAQ,gBAAAY,EAAC,QAAA,EAAK,WAAU,QAAQ,UAAAZ,GAAK;AAAA,QACrCC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,GAqBaY,IAAuE,CAAC;AAAA,EACnF,OAAAf;AAAA,EACA,cAAAgB;AAAA,EACA,UAAAV;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAU,IAAQ;AAAA,EACR,UAAAC,IAAW;AAAA,EACX,WAAAd,IAAY;AAAA,EACZ,UAAAD;AACF,MAAM;AACJ,QAAM,CAACgB,GAAeC,CAAgB,IAAIC,EAAqCL,CAAY,GAErFM,IAAetB,MAAU,QACzBuB,IAAeD,IAAetB,IAAQmB,GAEtCK,IAAeC;AAAA,IACnB,CAACC,MAA6B;AAC5B,MAAKJ,KACHF,EAAiBM,CAAQ,GAE3BpB,IAAWoB,CAAQ;AAAA,IACrB;AAAA,IACA,CAACJ,GAAchB,CAAQ;AAAA,EAAA,GAGnBqB,IAAsC;AAAA,IAC1C,OAAOJ;AAAA,IACP,UAAUC;AAAA,IACV,MAAAjB;AAAA,IACA,UAAAW;AAAA,EAAA,GAGIU,IAAmB,CAAC,QAAQX,IAAQ,iCAAiC,IAAIb,CAAS,EACrF,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAU,EAACrB,EAAiB,UAAjB,EAA0B,OAAOkC,GAChC,UAAA,gBAAAb,EAAC,OAAA,EAAI,WAAWc,GAAkB,MAAK,SAAQ,eAAY,aACxD,UAAAzB,GACH,GACF;AAEJ;AAEAY,EAAU,OAAOhB;"}
|
package/dist/index74.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index74.js","sources":["../src/components/Skeleton.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: string | number\n height?: string | number\n circle?: boolean\n variant?: 'default' | 'text'\n children?: React.ReactNode\n}\n\nexport const Skeleton: React.FC<SkeletonProps> = ({\n width,\n height,\n circle = false,\n variant = 'default',\n className = '',\n children,\n style,\n ...rest\n}) => {\n const getClasses = () => {\n const classes = ['skeleton']\n\n if (variant === 'text') {\n classes.push('skeleton-text')\n }\n\n if (circle) {\n classes.push('rounded-full')\n }\n\n if (className) {\n classes.push(className)\n }\n\n return classes.join(' ')\n }\n\n const getStyles = () => {\n const styles: React.CSSProperties = {}\n\n if (width) {\n styles.width = typeof width === 'number' ? `${width}px` : width\n }\n\n if (height) {\n styles.height = typeof height === 'number' ? `${height}px` : height\n }\n\n return Object.keys(styles).length > 0 ? styles : undefined\n }\n\n return (\n <div className={getClasses()} style={{ ...getStyles(), ...style }} {...rest}>\n {children}\n </div>\n )\n}\n"],"names":["Skeleton","width","height","circle","variant","className","children","style","rest","getClasses","classes","getStyles","styles","jsx"],"mappings":";AAUO,MAAMA,IAAoC,CAAC;AAAA,EAChD,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAa,MAAM;AACvB,UAAMC,IAAU,CAAC,UAAU;AAE3B,WAAIN,MAAY,UACdM,EAAQ,KAAK,eAAe,GAG1BP,KACFO,EAAQ,KAAK,cAAc,GAGzBL,KACFK,EAAQ,KAAKL,CAAS,GAGjBK,EAAQ,KAAK,GAAG;AAAA,EACzB,GAEMC,IAAY,MAAM;AACtB,UAAMC,IAA8B,CAAA;AAEpC,WAAIX,MACFW,EAAO,QAAQ,OAAOX,KAAU,WAAW,GAAGA,CAAK,OAAOA,IAGxDC,MACFU,EAAO,SAAS,OAAOV,KAAW,WAAW,GAAGA,CAAM,OAAOA,IAGxD,OAAO,KAAKU,CAAM,EAAE,SAAS,IAAIA,IAAS;AAAA,EACnD;AAEA,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWJ,EAAA,GAAc,OAAO,EAAE,GAAGE,EAAA,GAAa,GAAGJ,EAAA,GAAU,GAAGC,GACpE,UAAAF,EAAA,CACH;AAEJ;"}
|
package/dist/index75.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
-
import b from "react";
|
|
3
|
-
const w = {
|
|
4
|
-
xs: "gap-1",
|
|
5
|
-
sm: "gap-2",
|
|
6
|
-
md: "gap-4",
|
|
7
|
-
lg: "gap-6",
|
|
8
|
-
xl: "gap-8"
|
|
9
|
-
}, v = {
|
|
10
|
-
start: "items-start",
|
|
11
|
-
end: "items-end",
|
|
12
|
-
center: "items-center",
|
|
13
|
-
baseline: "items-baseline",
|
|
14
|
-
stretch: "items-stretch"
|
|
15
|
-
}, N = {
|
|
16
|
-
start: "justify-start",
|
|
17
|
-
end: "justify-end",
|
|
18
|
-
center: "justify-center",
|
|
19
|
-
between: "justify-between",
|
|
20
|
-
around: "justify-around",
|
|
21
|
-
evenly: "justify-evenly"
|
|
22
|
-
}, k = ({
|
|
23
|
-
direction: f = "horizontal",
|
|
24
|
-
size: s = "md",
|
|
25
|
-
align: r,
|
|
26
|
-
justify: a,
|
|
27
|
-
wrap: p = !1,
|
|
28
|
-
split: l,
|
|
29
|
-
className: u = "",
|
|
30
|
-
style: d,
|
|
31
|
-
children: e,
|
|
32
|
-
...m
|
|
33
|
-
}) => {
|
|
34
|
-
const o = typeof s == "number", h = o ? "" : w[s], y = r ? v[r] : "", C = a ? N[a] : "", g = [
|
|
35
|
-
"flex",
|
|
36
|
-
f === "horizontal" ? "flex-row" : "flex-col",
|
|
37
|
-
h,
|
|
38
|
-
y,
|
|
39
|
-
C,
|
|
40
|
-
p ? "flex-wrap" : "",
|
|
41
|
-
u
|
|
42
|
-
].filter(Boolean).join(" "), j = {
|
|
43
|
-
...d,
|
|
44
|
-
...o ? { gap: `${s}px` } : {}
|
|
45
|
-
};
|
|
46
|
-
return /* @__PURE__ */ c("div", { className: g, style: j, ...m, children: (() => {
|
|
47
|
-
if (!l) return e;
|
|
48
|
-
const t = b.Children.toArray(e).filter(Boolean);
|
|
49
|
-
if (t.length <= 1) return e;
|
|
50
|
-
const n = [];
|
|
51
|
-
return t.forEach((x, i) => {
|
|
52
|
-
n.push(x), i < t.length - 1 && n.push(
|
|
53
|
-
/* @__PURE__ */ c("span", { className: "flex-shrink-0", children: l }, `split-${i}`)
|
|
54
|
-
);
|
|
55
|
-
}), n;
|
|
56
|
-
})() });
|
|
57
|
-
};
|
|
58
|
-
export {
|
|
59
|
-
k as Space
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=index75.js.map
|
package/dist/index75.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index75.js","sources":["../src/components/Space.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface SpaceProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'horizontal' | 'vertical'\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number\n align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n wrap?: boolean\n split?: React.ReactNode\n children: React.ReactNode\n}\n\nconst gapClasses = {\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n} as const\n\nconst alignClasses = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n} as const\n\nconst justifyClasses = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n} as const\n\nexport const Space: React.FC<SpaceProps> = ({\n direction = 'horizontal',\n size = 'md',\n align,\n justify,\n wrap = false,\n split,\n className = '',\n style,\n children,\n ...rest\n}) => {\n const isNumericSize = typeof size === 'number'\n const gapClass = isNumericSize ? '' : gapClasses[size]\n const alignClass = align ? alignClasses[align] : ''\n const justifyClass = justify ? justifyClasses[justify] : ''\n const wrapClass = wrap ? 'flex-wrap' : ''\n const directionClass = direction === 'horizontal' ? 'flex-row' : 'flex-col'\n\n const classes = [\n 'flex',\n directionClass,\n gapClass,\n alignClass,\n justifyClass,\n wrapClass,\n className\n ].filter(Boolean).join(' ')\n\n const combinedStyle: React.CSSProperties = {\n ...style,\n ...(isNumericSize ? { gap: `${size}px` } : {}),\n }\n\n // If split is provided, interleave separator between children\n const renderChildren = () => {\n if (!split) return children\n\n const childArray = React.Children.toArray(children).filter(Boolean)\n if (childArray.length <= 1) return children\n\n const result: React.ReactNode[] = []\n childArray.forEach((child, index) => {\n result.push(child)\n if (index < childArray.length - 1) {\n result.push(\n <span key={`split-${index}`} className=\"flex-shrink-0\">\n {split}\n </span>\n )\n }\n })\n return result\n }\n\n return <div className={classes} style={combinedStyle} {...rest}>{renderChildren()}</div>\n}\n"],"names":["gapClasses","alignClasses","justifyClasses","Space","direction","size","align","justify","wrap","split","className","style","children","rest","isNumericSize","gapClass","alignClass","justifyClass","classes","combinedStyle","jsx","childArray","React","result","child","index"],"mappings":";;AAYA,MAAMA,IAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAAe;AAAA,EACnB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AACX,GAEMC,IAAiB;AAAA,EACrB,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV,GAEaC,IAA8B,CAAC;AAAA,EAC1C,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAgB,OAAOT,KAAS,UAChCU,IAAWD,IAAgB,KAAKd,EAAWK,CAAI,GAC/CW,IAAaV,IAAQL,EAAaK,CAAK,IAAI,IAC3CW,IAAeV,IAAUL,EAAeK,CAAO,IAAI,IAInDW,IAAU;AAAA,IACd;AAAA,IAHqBd,MAAc,eAAe,aAAa;AAAA,IAK/DW;AAAA,IACAC;AAAA,IACAC;AAAA,IARgBT,IAAO,cAAc;AAAA,IAUrCE;AAAA,EAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG,GAEpBS,IAAqC;AAAA,IACzC,GAAGR;AAAA,IACH,GAAIG,IAAgB,EAAE,KAAK,GAAGT,CAAI,SAAS,CAAA;AAAA,EAAC;AAwB9C,SAAO,gBAAAe,EAAC,SAAI,WAAWF,GAAS,OAAOC,GAAgB,GAAGN,GAAO,WApB1C,MAAM;AAC3B,QAAI,CAACJ,EAAO,QAAOG;AAEnB,UAAMS,IAAaC,EAAM,SAAS,QAAQV,CAAQ,EAAE,OAAO,OAAO;AAClE,QAAIS,EAAW,UAAU,EAAG,QAAOT;AAEnC,UAAMW,IAA4B,CAAA;AAClC,WAAAF,EAAW,QAAQ,CAACG,GAAOC,MAAU;AACnC,MAAAF,EAAO,KAAKC,CAAK,GACbC,IAAQJ,EAAW,SAAS,KAC9BE,EAAO;AAAA,0BACJ,QAAA,EAA4B,WAAU,iBACpC,UAAAd,KADQ,SAASgB,CAAK,EAEzB;AAAA,MAAA;AAAA,IAGN,CAAC,GACMF;AAAA,EACT,GAEiE,EAAe,CAAE;AACpF;"}
|
package/dist/index76.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index76.js","sources":["../src/components/Splitter.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback, useEffect } from 'react'\n\nexport interface SplitterPanelProps {\n children: React.ReactNode\n defaultSize?: number\n size?: number\n minSize?: number\n maxSize?: number\n collapsible?: boolean\n collapsed?: boolean\n defaultCollapsed?: boolean\n onCollapse?: (collapsed: boolean) => void\n resizable?: boolean\n className?: string\n}\n\nexport interface SplitterProps {\n children: React.ReactNode\n direction?: 'horizontal' | 'vertical'\n sizes?: number[]\n defaultSizes?: number[]\n onSizesChange?: (sizes: number[]) => void\n gutterSize?: number\n minSize?: number\n className?: string\n}\n\nconst Panel: React.FC<SplitterPanelProps> = ({ children }) => {\n return <>{children}</>\n}\n\nexport const Splitter: React.FC<SplitterProps> & { Panel: typeof Panel } = ({\n children,\n direction = 'horizontal',\n sizes,\n defaultSizes,\n onSizesChange,\n gutterSize = 8,\n minSize = 50,\n className = '',\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const panelsRef = useRef<(HTMLDivElement | null)[]>([])\n const draggingRef = useRef<{ index: number; startPos: number; startSizes: number[] } | null>(null)\n\n // Extract panel props from children\n const panels = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<SplitterPanelProps> =>\n React.isValidElement(child)\n )\n\n const panelCount = panels.length\n\n // Track collapsed state for each panel\n const [collapsedStates, setCollapsedStates] = useState<boolean[]>(() =>\n panels.map((panel) => panel.props.defaultCollapsed ?? panel.props.collapsed ?? false)\n )\n\n // Store sizes before collapse for restoration\n const sizesBeforeCollapseRef = useRef<number[]>([])\n\n // Initialize sizes from panel props or defaults\n const getInitialSizes = useCallback(() => {\n // First check if any panels have defaultSize\n const panelDefaultSizes = panels.map((panel) => panel.props.defaultSize)\n const hasAnyPanelSize = panelDefaultSizes.some((s) => s !== undefined)\n\n if (defaultSizes && defaultSizes.length === panelCount) {\n return defaultSizes\n }\n\n if (hasAnyPanelSize) {\n // Calculate sizes from panel props\n const definedTotal = panelDefaultSizes.reduce<number>((sum, s) => sum + (s ?? 0), 0)\n const undefinedCount = panelDefaultSizes.filter((s) => s === undefined).length\n const remainingSize = Math.max(0, 100 - definedTotal)\n const sizePerUndefined = undefinedCount > 0 ? remainingSize / undefinedCount : 0\n\n return panelDefaultSizes.map((s) => s ?? sizePerUndefined)\n }\n\n // Equal distribution\n const equalSize = 100 / panelCount\n return Array(panelCount).fill(equalSize)\n }, [defaultSizes, panelCount, panels])\n\n const [internalSizes, setInternalSizes] = useState<number[]>(getInitialSizes)\n\n // Handle controlled sizes from panel props\n const getControlledSizes = useCallback(() => {\n const panelSizes = panels.map((panel) => panel.props.size)\n const hasControlledPanel = panelSizes.some((s) => s !== undefined)\n\n if (!hasControlledPanel) return null\n\n // Mix controlled and uncontrolled\n const definedTotal = panelSizes.reduce<number>((sum, s) => sum + (s ?? 0), 0)\n const undefinedCount = panelSizes.filter((s) => s === undefined).length\n const remainingSize = Math.max(0, 100 - definedTotal)\n const sizePerUndefined = undefinedCount > 0 ? remainingSize / undefinedCount : 0\n\n return panelSizes.map((s, i) => s ?? internalSizes[i] ?? sizePerUndefined)\n }, [panels, internalSizes])\n\n const currentSizes = sizes || getControlledSizes() || internalSizes\n\n // Update internal sizes when panel count changes\n useEffect(() => {\n if (!sizes && internalSizes.length !== panelCount) {\n setInternalSizes(getInitialSizes())\n }\n }, [panelCount, sizes, internalSizes.length, getInitialSizes])\n\n // Sync controlled collapsed states from props\n useEffect(() => {\n const newCollapsedStates = panels.map((panel, i) =>\n panel.props.collapsed ?? collapsedStates[i] ?? false\n )\n const hasChange = newCollapsedStates.some((s, i) => s !== collapsedStates[i])\n if (hasChange) {\n setCollapsedStates(newCollapsedStates)\n }\n }, [panels.map(p => p.props.collapsed).join(',')])\n\n const updateSizes = useCallback(\n (newSizes: number[]) => {\n if (!sizes) {\n setInternalSizes(newSizes)\n }\n onSizesChange?.(newSizes)\n },\n [sizes, onSizesChange]\n )\n\n const toggleCollapse = useCallback(\n (panelIndex: number) => {\n const panel = panels[panelIndex]\n if (!panel?.props.collapsible) return\n\n const isCurrentlyCollapsed = collapsedStates[panelIndex]\n const newCollapsed = !isCurrentlyCollapsed\n\n // Update collapsed state\n const newCollapsedStates = [...collapsedStates]\n newCollapsedStates[panelIndex] = newCollapsed\n setCollapsedStates(newCollapsedStates)\n\n // Call panel's onCollapse callback\n panel.props.onCollapse?.(newCollapsed)\n\n // Adjust sizes\n if (newCollapsed) {\n // Store current sizes before collapse\n sizesBeforeCollapseRef.current = [...currentSizes]\n\n // Collapse: set to minimum (we'll use 0 for collapsed)\n const collapsedSize = 0\n const sizeToRedistribute = currentSizes[panelIndex] - collapsedSize\n\n // Find panels that can receive the size\n const otherPanels = currentSizes\n .map((s, i) => ({ size: s, index: i }))\n .filter((_, i) => i !== panelIndex && !newCollapsedStates[i])\n\n if (otherPanels.length > 0) {\n const sizePerPanel = sizeToRedistribute / otherPanels.length\n const newSizes = currentSizes.map((s, i) => {\n if (i === panelIndex) return collapsedSize\n if (!newCollapsedStates[i]) return s + sizePerPanel\n return s\n })\n updateSizes(newSizes)\n }\n } else {\n // Expand: restore previous size\n const previousSize = sizesBeforeCollapseRef.current[panelIndex] || (100 / panelCount)\n\n // Take size from other panels proportionally\n const otherPanels = currentSizes\n .map((s, i) => ({ size: s, index: i }))\n .filter((_, i) => i !== panelIndex && !newCollapsedStates[i])\n\n const totalOtherSize = otherPanels.reduce((sum, p) => sum + p.size, 0)\n\n if (totalOtherSize > 0) {\n const newSizes = currentSizes.map((s, i) => {\n if (i === panelIndex) return previousSize\n if (!newCollapsedStates[i]) {\n const proportion = s / totalOtherSize\n return s - previousSize * proportion\n }\n return s\n })\n updateSizes(newSizes)\n }\n }\n },\n [panels, collapsedStates, currentSizes, panelCount, updateSizes]\n )\n\n const handleMouseDown = useCallback(\n (index: number, e: React.MouseEvent) => {\n // Check if either panel is non-resizable\n const panel1Props = panels[index]?.props || {}\n const panel2Props = panels[index + 1]?.props || {}\n\n if (panel1Props.resizable === false || panel2Props.resizable === false) {\n return // Don't allow dragging\n }\n\n // Don't allow dragging if either panel is collapsed\n if (collapsedStates[index] || collapsedStates[index + 1]) {\n return\n }\n\n e.preventDefault()\n const startPos = direction === 'horizontal' ? e.clientX : e.clientY\n draggingRef.current = {\n index,\n startPos,\n startSizes: [...currentSizes],\n }\n\n const handleMouseMove = (moveEvent: MouseEvent) => {\n if (!draggingRef.current || !containerRef.current) return\n\n const { index: dragIndex, startPos: dragStartPos, startSizes } = draggingRef.current\n const containerRect = containerRef.current.getBoundingClientRect()\n const containerSize = direction === 'horizontal' ? containerRect.width : containerRect.height\n const currentPos = direction === 'horizontal' ? moveEvent.clientX : moveEvent.clientY\n\n // Calculate delta as percentage\n const gutterCount = panelCount - 1\n const totalGutterSize = gutterCount * gutterSize\n const availableSize = containerSize - totalGutterSize\n const deltaPixels = currentPos - dragStartPos\n const deltaPercent = (deltaPixels / availableSize) * 100\n\n // Get min sizes for panels\n const panel1Props = panels[dragIndex]?.props || {}\n const panel2Props = panels[dragIndex + 1]?.props || {}\n const minSize1 = panel1Props.minSize ?? minSize\n const minSize2 = panel2Props.minSize ?? minSize\n const minPercent1 = (minSize1 / availableSize) * 100\n const minPercent2 = (minSize2 / availableSize) * 100\n\n // Calculate new sizes\n let newSize1 = startSizes[dragIndex] + deltaPercent\n let newSize2 = startSizes[dragIndex + 1] - deltaPercent\n\n // Apply min constraints\n if (newSize1 < minPercent1) {\n newSize1 = minPercent1\n newSize2 = startSizes[dragIndex] + startSizes[dragIndex + 1] - minPercent1\n }\n if (newSize2 < minPercent2) {\n newSize2 = minPercent2\n newSize1 = startSizes[dragIndex] + startSizes[dragIndex + 1] - minPercent2\n }\n\n // Apply max constraints\n const maxSize1 = panel1Props.maxSize\n const maxSize2 = panel2Props.maxSize\n if (maxSize1) {\n const maxPercent1 = (maxSize1 / availableSize) * 100\n if (newSize1 > maxPercent1) {\n newSize1 = maxPercent1\n newSize2 = startSizes[dragIndex] + startSizes[dragIndex + 1] - maxPercent1\n }\n }\n if (maxSize2) {\n const maxPercent2 = (maxSize2 / availableSize) * 100\n if (newSize2 > maxPercent2) {\n newSize2 = maxPercent2\n newSize1 = startSizes[dragIndex] + startSizes[dragIndex + 1] - maxPercent2\n }\n }\n\n const newSizes = [...startSizes]\n newSizes[dragIndex] = newSize1\n newSizes[dragIndex + 1] = newSize2\n updateSizes(newSizes)\n }\n\n const handleMouseUp = () => {\n draggingRef.current = null\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = direction === 'horizontal' ? 'col-resize' : 'row-resize'\n document.body.style.userSelect = 'none'\n },\n [direction, currentSizes, panelCount, gutterSize, panels, minSize, updateSizes, collapsedStates]\n )\n\n const handleKeyDown = useCallback(\n (index: number, e: React.KeyboardEvent) => {\n // Don't allow keyboard resize if either panel is collapsed\n if (collapsedStates[index] || collapsedStates[index + 1]) {\n return\n }\n\n const step = e.shiftKey ? 10 : 1\n let delta = 0\n\n if (direction === 'horizontal') {\n if (e.key === 'ArrowLeft') delta = -step\n else if (e.key === 'ArrowRight') delta = step\n } else {\n if (e.key === 'ArrowUp') delta = -step\n else if (e.key === 'ArrowDown') delta = step\n }\n\n if (delta !== 0) {\n e.preventDefault()\n const newSizes = [...currentSizes]\n const minPercent = 5 // Minimum 5% when using keyboard\n\n let newSize1 = newSizes[index] + delta\n let newSize2 = newSizes[index + 1] - delta\n\n if (newSize1 >= minPercent && newSize2 >= minPercent) {\n newSizes[index] = newSize1\n newSizes[index + 1] = newSize2\n updateSizes(newSizes)\n }\n }\n },\n [direction, currentSizes, updateSizes, collapsedStates]\n )\n\n const isHorizontal = direction === 'horizontal'\n\n // Determine if gutter should show collapse buttons\n const getCollapseConfig = (index: number) => {\n const panel1 = panels[index]\n const panel2 = panels[index + 1]\n const panel1Collapsible = panel1?.props.collapsible\n const panel2Collapsible = panel2?.props.collapsible\n const panel1Collapsed = collapsedStates[index]\n const panel2Collapsed = collapsedStates[index + 1]\n\n return {\n showStart: panel1Collapsible && !panel2Collapsed,\n showEnd: panel2Collapsible && !panel1Collapsed,\n panel1Collapsed,\n panel2Collapsed,\n }\n }\n\n return (\n <div\n ref={containerRef}\n className={`flex ${isHorizontal ? 'flex-row' : 'flex-col'} h-full w-full ${className}`}\n >\n {panels.map((panel, index) => {\n const panelProps = panel.props\n const isLast = index === panels.length - 1\n const isCollapsed = collapsedStates[index]\n const canResize = panelProps.resizable !== false && !isCollapsed\n\n return (\n <React.Fragment key={index}>\n <div\n ref={(el) => {\n panelsRef.current[index] = el\n }}\n className={`overflow-auto ${panelProps.className || ''}`}\n style={{\n [isHorizontal ? 'width' : 'height']: isCollapsed\n ? '0px'\n : `calc(${currentSizes[index]}% - ${((panelCount - 1) * gutterSize) / panelCount}px)`,\n flexShrink: 0,\n overflow: isCollapsed ? 'hidden' : 'auto',\n }}\n data-collapsed={isCollapsed}\n >\n {panelProps.children}\n </div>\n {!isLast && (\n <div\n role=\"separator\"\n aria-orientation={isHorizontal ? 'vertical' : 'horizontal'}\n aria-valuenow={Math.round(currentSizes[index])}\n tabIndex={canResize ? 0 : -1}\n className={`\n flex-shrink-0 bg-base-300 transition-colors duration-150 relative group\n ${canResize ? 'hover:bg-primary/30 active:bg-primary/50' : ''}\n ${canResize ? (isHorizontal ? 'cursor-col-resize' : 'cursor-row-resize') : 'cursor-default'}\n `}\n style={{\n [isHorizontal ? 'width' : 'height']: `${gutterSize}px`,\n }}\n onMouseDown={(e) => handleMouseDown(index, e)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n >\n {/* Collapse buttons */}\n {(() => {\n const { showStart, showEnd, panel1Collapsed, panel2Collapsed } = getCollapseConfig(index)\n\n if (!showStart && !showEnd) {\n // Just show grip indicator\n return (\n <div\n className={`\n absolute inset-0 flex items-center justify-center\n ${isHorizontal ? 'flex-col gap-0.5' : 'flex-row gap-0.5'}\n `}\n >\n <div className=\"w-1 h-1 rounded-full bg-base-content/30 group-hover:bg-primary/60\" />\n <div className=\"w-1 h-1 rounded-full bg-base-content/30 group-hover:bg-primary/60\" />\n <div className=\"w-1 h-1 rounded-full bg-base-content/30 group-hover:bg-primary/60\" />\n </div>\n )\n }\n\n return (\n <div\n className={`\n absolute inset-0 flex items-center justify-center\n ${isHorizontal ? 'flex-col' : 'flex-row'}\n `}\n >\n {showStart && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n toggleCollapse(index)\n }}\n className={`\n p-0.5 rounded hover:bg-base-content/20 transition-colors\n ${isHorizontal ? '' : ''}\n `}\n aria-label={panel1Collapsed ? 'Expand panel' : 'Collapse panel'}\n >\n <svg\n className={`w-3 h-3 text-base-content/50 hover:text-base-content transition-transform ${\n panel1Collapsed\n ? isHorizontal ? 'rotate-180' : '-rotate-90'\n : isHorizontal ? 'rotate-0' : 'rotate-90'\n }`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n )}\n {showEnd && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n toggleCollapse(index + 1)\n }}\n className={`\n p-0.5 rounded hover:bg-base-content/20 transition-colors\n `}\n aria-label={panel2Collapsed ? 'Expand panel' : 'Collapse panel'}\n >\n <svg\n className={`w-3 h-3 text-base-content/50 hover:text-base-content transition-transform ${\n panel2Collapsed\n ? isHorizontal ? 'rotate-0' : 'rotate-90'\n : isHorizontal ? 'rotate-180' : '-rotate-90'\n }`}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n )}\n </div>\n )\n })()}\n </div>\n )}\n </React.Fragment>\n )\n })}\n </div>\n )\n}\n\nSplitter.Panel = Panel\n"],"names":["Panel","children","Splitter","direction","sizes","defaultSizes","onSizesChange","gutterSize","minSize","className","containerRef","useRef","panelsRef","draggingRef","panels","React","child","panelCount","collapsedStates","setCollapsedStates","useState","panel","sizesBeforeCollapseRef","getInitialSizes","useCallback","panelDefaultSizes","hasAnyPanelSize","definedTotal","sum","s","undefinedCount","remainingSize","sizePerUndefined","equalSize","internalSizes","setInternalSizes","getControlledSizes","panelSizes","i","currentSizes","useEffect","newCollapsedStates","p","updateSizes","newSizes","toggleCollapse","panelIndex","newCollapsed","collapsedSize","sizeToRedistribute","otherPanels","_","sizePerPanel","previousSize","totalOtherSize","proportion","handleMouseDown","index","e","panel1Props","panel2Props","startPos","handleMouseMove","moveEvent","dragIndex","dragStartPos","startSizes","containerRect","containerSize","currentPos","totalGutterSize","availableSize","deltaPercent","minSize1","minSize2","minPercent1","minPercent2","newSize1","newSize2","maxSize1","maxSize2","maxPercent1","maxPercent2","handleMouseUp","handleKeyDown","step","delta","minPercent","isHorizontal","getCollapseConfig","panel1","panel2","panel1Collapsible","panel2Collapsible","panel1Collapsed","panel2Collapsed","jsx","panelProps","isLast","isCollapsed","canResize","jsxs","el","showStart","showEnd"],"mappings":"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"}
|
package/dist/index78.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index78.js","sources":["../src/components/Status.tsx"],"sourcesContent":["import React from 'react'\n\nexport type StatusType = 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\nexport type StatusSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface StatusProps {\n /** Status color type */\n type?: StatusType\n /** Status size */\n size?: StatusSize\n /** Ping animation effect */\n ping?: boolean\n /** Bounce animation effect */\n bounce?: boolean\n /** Accessibility label */\n label?: string\n /** Additional CSS classes */\n className?: string\n}\n\nconst typeClasses: Record<StatusType, string> = {\n neutral: 'status-neutral',\n primary: 'status-primary',\n secondary: 'status-secondary',\n accent: 'status-accent',\n info: 'status-info',\n success: 'status-success',\n warning: 'status-warning',\n error: 'status-error',\n}\n\nconst sizeClasses: Record<StatusSize, string> = {\n xs: 'status-xs',\n sm: 'status-sm',\n md: 'status-md',\n lg: 'status-lg',\n xl: 'status-xl',\n}\n\nexport const Status: React.FC<StatusProps> = ({\n type = 'neutral',\n size = 'md',\n ping = false,\n bounce = false,\n label,\n className = '',\n}) => {\n const baseClasses = `status ${typeClasses[type]} ${sizeClasses[size]} ${bounce ? 'animate-bounce' : ''} ${className}`.trim()\n\n if (ping) {\n return (\n <div className=\"inline-grid *:[grid-area:1/1]\" aria-label={label}>\n <div className={`${baseClasses} animate-ping`} />\n <div className={baseClasses} />\n </div>\n )\n }\n\n return <div className={baseClasses} aria-label={label} />\n}\n"],"names":["typeClasses","sizeClasses","Status","type","size","ping","bounce","label","className","baseClasses","jsxs","jsx"],"mappings":";AAoBA,MAAMA,IAA0C;AAAA,EAC9C,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT,GAEMC,IAA0C;AAAA,EAC9C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAAgC,CAAC;AAAA,EAC5C,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,QAAAC,IAAS;AAAA,EACT,OAAAC;AAAA,EACA,WAAAC,IAAY;AACd,MAAM;AACJ,QAAMC,IAAc,UAAUT,EAAYG,CAAI,CAAC,IAAIF,EAAYG,CAAI,CAAC,IAAIE,IAAS,mBAAmB,EAAE,IAAIE,CAAS,GAAG,KAAA;AAEtH,SAAIH,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAU,iCAAgC,cAAYH,GACzD,UAAA;AAAA,IAAA,gBAAAI,EAAC,OAAA,EAAI,WAAW,GAAGF,CAAW,iBAAiB;AAAA,IAC/C,gBAAAE,EAAC,OAAA,EAAI,WAAWF,EAAA,CAAa;AAAA,EAAA,GAC/B,IAIG,gBAAAE,EAAC,OAAA,EAAI,WAAWF,GAAa,cAAYF,GAAO;AACzD;"}
|
package/dist/index79.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index79.js","sources":["../src/components/Steps.tsx"],"sourcesContent":["import React from 'react'\n\nexport type StepsDirection = 'horizontal' | 'vertical'\n\nexport interface StepItem {\n key?: string\n title: React.ReactNode\n description?: React.ReactNode\n icon?: React.ReactNode\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n disabled?: boolean\n}\n\nexport interface StepsProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onChange'> {\n /** Step items (compound pattern) */\n children?: React.ReactNode\n /** Step items (data-driven pattern) */\n items?: StepItem[]\n /** Current step index (0-based) */\n current?: number\n /** Layout direction */\n direction?: StepsDirection\n /** @deprecated Use direction=\"vertical\" instead */\n vertical?: boolean\n /** Callback when step is clicked */\n onChange?: (current: number) => void\n}\n\nexport interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'color' | 'title'> {\n /** Step title/label */\n children?: React.ReactNode\n /** Step title (alternative to children) */\n title?: React.ReactNode\n /** Step description */\n description?: React.ReactNode\n /** Step icon */\n icon?: React.ReactNode\n /** Step color */\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n /** Custom content for step indicator */\n dataContent?: string\n /** Whether step is disabled */\n disabled?: boolean\n /** Internal: step index */\n _index?: number\n /** Internal: whether step is clickable */\n _clickable?: boolean\n /** Internal: click handler */\n _onClick?: (index: number) => void\n}\n\nconst colorClasses: Record<string, string> = {\n neutral: 'step-neutral',\n primary: 'step-primary',\n secondary: 'step-secondary',\n accent: 'step-accent',\n info: 'step-info',\n success: 'step-success',\n warning: 'step-warning',\n error: 'step-error',\n}\n\nfunction StepsRoot({\n children,\n items,\n current,\n direction,\n vertical = false,\n onChange,\n className = '',\n ...rest\n}: StepsProps) {\n const isVertical = direction === 'vertical' || vertical\n\n const classes = ['steps', isVertical && 'steps-vertical', className]\n .filter(Boolean)\n .join(' ')\n\n // Render data-driven items if provided\n if (items && items.length > 0) {\n return (\n <ul className={classes} {...rest}>\n {items.map((item, index) => {\n const isCompleted = current !== undefined && index < current\n const isCurrent = current !== undefined && index === current\n const stepColor = item.color || ((isCompleted || isCurrent) ? 'primary' : undefined)\n\n return (\n <Step\n key={item.key ?? index}\n color={stepColor}\n icon={item.icon}\n title={item.title}\n description={item.description}\n disabled={item.disabled}\n _index={index}\n _clickable={!!onChange && !item.disabled}\n _onClick={onChange}\n aria-current={isCurrent ? 'step' : undefined}\n />\n )\n })}\n </ul>\n )\n }\n\n // For compound pattern, inject props into children if current is provided\n const processedChildren =\n current !== undefined\n ? React.Children.map(children, (child, index) => {\n if (React.isValidElement<StepProps>(child)) {\n const isCompleted = index < current\n const isCurrent = index === current\n const childColor = child.props.color || ((isCompleted || isCurrent) ? 'primary' : undefined)\n\n return React.cloneElement(child, {\n color: childColor,\n _index: index,\n _clickable: !!onChange && !child.props.disabled,\n _onClick: onChange,\n 'aria-current': isCurrent ? 'step' : undefined,\n } as Partial<StepProps>)\n }\n return child\n })\n : children\n\n return (\n <ul className={classes} {...rest}>\n {processedChildren}\n </ul>\n )\n}\n\nfunction Step({\n children,\n title,\n description,\n icon,\n color,\n dataContent,\n disabled = false,\n className = '',\n _index,\n _clickable,\n _onClick,\n ...rest\n}: StepProps) {\n const classes = ['step', color && colorClasses[color], disabled && 'step-disabled', className]\n .filter(Boolean)\n .join(' ')\n\n const handleClick = () => {\n if (_clickable && _onClick && _index !== undefined && !disabled) {\n _onClick(_index)\n }\n }\n\n const displayContent = title ?? children\n\n return (\n <li\n className={classes}\n data-content={dataContent}\n onClick={handleClick}\n style={_clickable && !disabled ? { cursor: 'pointer' } : undefined}\n {...rest}\n >\n {icon && <span className=\"step-icon\">{icon}</span>}\n {displayContent}\n {description && <span className=\"text-xs opacity-70 block\">{description}</span>}\n </li>\n )\n}\n\nexport const Steps = Object.assign(StepsRoot, {\n Step,\n})\n"],"names":["colorClasses","StepsRoot","children","items","current","direction","vertical","onChange","className","rest","classes","jsx","item","index","isCompleted","isCurrent","stepColor","Step","processedChildren","React","child","childColor","title","description","icon","color","dataContent","disabled","_index","_clickable","_onClick","jsxs","Steps"],"mappings":"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"}
|
package/dist/index8.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { jsx as n, jsxs as f } from "react/jsx-runtime";
|
|
2
|
-
import h from "react";
|
|
3
|
-
function x({ children: c, items: r, separator: t, className: a = "", ...i }) {
|
|
4
|
-
const l = t !== void 0, o = typeof t == "string" ? "px-2" : "px-1", m = () => !r || r.length === 0 ? null : r.map((e, s) => {
|
|
5
|
-
const d = s === r.length - 1;
|
|
6
|
-
return /* @__PURE__ */ f(h.Fragment, { children: [
|
|
7
|
-
/* @__PURE__ */ n("li", { className: e.className, children: e.href || e.onClick ? /* @__PURE__ */ n("a", { href: e.href, onClick: e.onClick, children: e.title }) : e.title }),
|
|
8
|
-
l && !d && /* @__PURE__ */ n("li", { className: `flex items-center ${o} text-base-content/50`, children: t })
|
|
9
|
-
] }, s);
|
|
10
|
-
}), b = () => {
|
|
11
|
-
if (r && r.length > 0)
|
|
12
|
-
return m();
|
|
13
|
-
if (l && c) {
|
|
14
|
-
const e = h.Children.toArray(c), s = [];
|
|
15
|
-
return e.forEach((d, u) => {
|
|
16
|
-
s.push(d), u < e.length - 1 && s.push(
|
|
17
|
-
/* @__PURE__ */ n("li", { className: `flex items-center ${o} text-base-content/50`, children: t }, `sep-${u}`)
|
|
18
|
-
);
|
|
19
|
-
}), s;
|
|
20
|
-
}
|
|
21
|
-
return c;
|
|
22
|
-
}, p = l ? `breadcrumbs text-sm [&_li::before]:!hidden ${a}` : `breadcrumbs text-sm ${a}`;
|
|
23
|
-
return /* @__PURE__ */ n("div", { className: p, ...i, children: /* @__PURE__ */ n("ul", { children: b() }) });
|
|
24
|
-
}
|
|
25
|
-
function g({ children: c, href: r, onClick: t, icon: a, className: i = "", ...l }) {
|
|
26
|
-
const o = a ? /* @__PURE__ */ f("span", { className: "inline-flex items-center gap-2", children: [
|
|
27
|
-
a,
|
|
28
|
-
c
|
|
29
|
-
] }) : c;
|
|
30
|
-
return r || t ? /* @__PURE__ */ n("li", { className: i, ...l, children: /* @__PURE__ */ n("a", { href: r, onClick: t, children: o }) }) : /* @__PURE__ */ n("li", { className: i, ...l, children: o });
|
|
31
|
-
}
|
|
32
|
-
const N = Object.assign(x, {
|
|
33
|
-
Item: g
|
|
34
|
-
});
|
|
35
|
-
export {
|
|
36
|
-
N as Breadcrumb
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=index8.js.map
|
package/dist/index8.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index8.js","sources":["../src/components/Breadcrumb.tsx"],"sourcesContent":["import React from 'react'\n\nexport interface BreadcrumbItemType {\n /** Item title/label */\n title: React.ReactNode\n /** Link URL */\n href?: string\n /** Click handler */\n onClick?: () => void\n /** Custom class name */\n className?: string\n}\n\nexport interface BreadcrumbProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Breadcrumb.Item children (compound pattern) */\n children?: React.ReactNode\n /** Breadcrumb items data (data-driven pattern) */\n items?: BreadcrumbItemType[]\n /** Custom separator between items */\n separator?: React.ReactNode\n}\n\nexport interface BreadcrumbItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'onClick'> {\n children: React.ReactNode\n href?: string\n onClick?: () => void\n /** Icon to display before the label */\n icon?: React.ReactNode\n}\n\nfunction BreadcrumbRoot({ children, items, separator, className = '', ...rest }: BreadcrumbProps) {\n const hasCustomSeparator = separator !== undefined\n // Text separators need more padding than icon separators\n const separatorPadding = typeof separator === 'string' ? 'px-2' : 'px-1'\n\n const renderFromItems = () => {\n if (!items || items.length === 0) return null\n\n return items.map((item, index) => {\n const isLast = index === items.length - 1\n return (\n <React.Fragment key={index}>\n <li className={item.className}>\n {item.href || item.onClick ? (\n <a href={item.href} onClick={item.onClick}>\n {item.title}\n </a>\n ) : (\n item.title\n )}\n </li>\n {hasCustomSeparator && !isLast && (\n <li className={`flex items-center ${separatorPadding} text-base-content/50`}>\n {separator}\n </li>\n )}\n </React.Fragment>\n )\n })\n }\n\n const renderChildren = () => {\n if (items && items.length > 0) {\n return renderFromItems()\n }\n\n if (hasCustomSeparator && children) {\n // Insert custom separator nodes between children\n const childArray = React.Children.toArray(children)\n const result: React.ReactNode[] = []\n childArray.forEach((child, index) => {\n result.push(child)\n if (index < childArray.length - 1) {\n result.push(\n <li key={`sep-${index}`} className={`flex items-center ${separatorPadding} text-base-content/50`}>\n {separator}\n </li>\n )\n }\n })\n return result\n }\n\n return children\n }\n\n // When custom separator is provided, hide default DaisyUI separator\n const cssClass = hasCustomSeparator\n ? `breadcrumbs text-sm [&_li::before]:!hidden ${className}`\n : `breadcrumbs text-sm ${className}`\n\n return (\n <div className={cssClass} {...rest}>\n <ul>{renderChildren()}</ul>\n </div>\n )\n}\n\nfunction BreadcrumbItem({ children, href, onClick, icon, className = '', ...rest }: BreadcrumbItemProps) {\n const content = icon ? (\n <span className=\"inline-flex items-center gap-2\">\n {icon}\n {children}\n </span>\n ) : children\n\n if (href || onClick) {\n return (\n <li className={className} {...rest}>\n <a href={href} onClick={onClick}>\n {content}\n </a>\n </li>\n )\n }\n\n return <li className={className} {...rest}>{content}</li>\n}\n\nexport const Breadcrumb = Object.assign(BreadcrumbRoot, {\n Item: BreadcrumbItem,\n})\n"],"names":["BreadcrumbRoot","children","items","separator","className","rest","hasCustomSeparator","separatorPadding","renderFromItems","item","index","isLast","jsxs","React","jsx","renderChildren","childArray","result","child","cssClass","BreadcrumbItem","href","onClick","icon","content","Breadcrumb"],"mappings":";;AA8BA,SAASA,EAAe,EAAE,UAAAC,GAAU,OAAAC,GAAO,WAAAC,GAAW,WAAAC,IAAY,IAAI,GAAGC,KAAyB;AAChG,QAAMC,IAAqBH,MAAc,QAEnCI,IAAmB,OAAOJ,KAAc,WAAW,SAAS,QAE5DK,IAAkB,MAClB,CAACN,KAASA,EAAM,WAAW,IAAU,OAElCA,EAAM,IAAI,CAACO,GAAMC,MAAU;AAChC,UAAMC,IAASD,MAAUR,EAAM,SAAS;AACxC,WACE,gBAAAU,EAACC,EAAM,UAAN,EACC,UAAA;AAAA,MAAA,gBAAAC,EAAC,MAAA,EAAG,WAAWL,EAAK,WACjB,YAAK,QAAQA,EAAK,UACjB,gBAAAK,EAAC,KAAA,EAAE,MAAML,EAAK,MAAM,SAASA,EAAK,SAC/B,YAAK,MAAA,CACR,IAEAA,EAAK,MAAA,CAET;AAAA,MACCH,KAAsB,CAACK,KACtB,gBAAAG,EAAC,QAAG,WAAW,qBAAqBP,CAAgB,yBACjD,UAAAJ,EAAA,CACH;AAAA,IAAA,EAAA,GAbiBO,CAerB;AAAA,EAEJ,CAAC,GAGGK,IAAiB,MAAM;AAC3B,QAAIb,KAASA,EAAM,SAAS;AAC1B,aAAOM,EAAA;AAGT,QAAIF,KAAsBL,GAAU;AAElC,YAAMe,IAAaH,EAAM,SAAS,QAAQZ,CAAQ,GAC5CgB,IAA4B,CAAA;AAClC,aAAAD,EAAW,QAAQ,CAACE,GAAOR,MAAU;AACnC,QAAAO,EAAO,KAAKC,CAAK,GACbR,IAAQM,EAAW,SAAS,KAC9BC,EAAO;AAAA,UACL,gBAAAH,EAAC,QAAwB,WAAW,qBAAqBP,CAAgB,yBACtE,UAAAJ,EAAA,GADM,OAAOO,CAAK,EAErB;AAAA,QAAA;AAAA,MAGN,CAAC,GACMO;AAAA,IACT;AAEA,WAAOhB;AAAA,EACT,GAGMkB,IAAWb,IACb,8CAA8CF,CAAS,KACvD,uBAAuBA,CAAS;AAEpC,SACE,gBAAAU,EAAC,OAAA,EAAI,WAAWK,GAAW,GAAGd,GAC5B,UAAA,gBAAAS,EAAC,MAAA,EAAI,UAAAC,EAAA,EAAe,CAAE,EAAA,CACxB;AAEJ;AAEA,SAASK,EAAe,EAAE,UAAAnB,GAAU,MAAAoB,GAAM,SAAAC,GAAS,MAAAC,GAAM,WAAAnB,IAAY,IAAI,GAAGC,KAA6B;AACvG,QAAMmB,IAAUD,IACd,gBAAAX,EAAC,QAAA,EAAK,WAAU,kCACb,UAAA;AAAA,IAAAW;AAAA,IACAtB;AAAA,EAAA,EAAA,CACH,IACEA;AAEJ,SAAIoB,KAAQC,IAER,gBAAAR,EAAC,MAAA,EAAG,WAAAV,GAAuB,GAAGC,GAC5B,4BAAC,KAAA,EAAE,MAAAgB,GAAY,SAAAC,GACZ,UAAAE,EAAA,CACH,EAAA,CACF,IAIG,gBAAAV,EAAC,MAAA,EAAG,WAAAV,GAAuB,GAAGC,GAAO,UAAAmB,GAAQ;AACtD;AAEO,MAAMC,IAAa,OAAO,OAAOzB,GAAgB;AAAA,EACtD,MAAMoB;AACR,CAAC;"}
|
package/dist/index80.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index80.js","sources":["../src/components/Table.tsx"],"sourcesContent":["import React, { useState, forwardRef, useMemo, useCallback, useId } from 'react'\n\nexport interface FilterConfig {\n text: string\n value: string | number | boolean\n}\n\nexport type TableSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nexport interface ColumnType<T> {\n key: string\n title: React.ReactNode\n dataIndex?: keyof T & string\n render?: (value: T[keyof T] | undefined, record: T, index: number) => React.ReactNode\n width?: string | number\n align?: 'left' | 'center' | 'right'\n fixed?: 'left' | 'right'\n sorter?: boolean | ((a: T, b: T) => number)\n sortOrder?: 'ascend' | 'descend' | null\n filters?: FilterConfig[]\n filteredValue?: (string | number | boolean)[]\n onFilter?: (value: string | number | boolean, record: T) => boolean\n defaultSortOrder?: 'ascend' | 'descend'\n defaultFilteredValue?: (string | number | boolean)[]\n ellipsis?: boolean\n hidden?: boolean\n}\n\nexport interface RowSelection<T> {\n type?: 'checkbox' | 'radio'\n selectedRowKeys?: React.Key[]\n onChange?: (selectedRowKeys: React.Key[], selectedRows: T[]) => void\n getCheckboxProps?: (record: T) => { disabled?: boolean; name?: string }\n}\n\nexport interface ExpandableConfig<T> {\n expandedRowKeys?: React.Key[]\n defaultExpandedRowKeys?: React.Key[]\n expandedRowRender: (record: T, index: number, expanded: boolean) => React.ReactNode\n rowExpandable?: (record: T) => boolean\n onExpand?: (expanded: boolean, record: T) => void\n onExpandedRowsChange?: (expandedKeys: React.Key[]) => void\n expandRowByClick?: boolean\n expandIcon?: (props: { expanded: boolean; onExpand: () => void; record: T }) => React.ReactNode\n}\n\nexport interface PaginationConfig {\n current?: number\n pageSize?: number\n total?: number\n showSizeChanger?: boolean\n showQuickJumper?: boolean\n showTotal?: (total: number, range: [number, number]) => React.ReactNode\n pageSizeOptions?: number[]\n onChange?: (page: number, pageSize: number) => void\n onShowSizeChange?: (current: number, size: number) => void\n position?: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n}\n\nexport interface ScrollConfig {\n x?: number | string\n y?: number | string\n}\n\nexport interface SorterResult<T> {\n column?: ColumnType<T>\n order?: 'ascend' | 'descend' | null\n field?: string\n}\n\nexport interface TableChangeExtra<T> {\n currentDataSource: T[]\n action: 'paginate' | 'sort' | 'filter'\n}\n\nexport interface TableProps<T> {\n columns: ColumnType<T>[]\n dataSource: T[]\n rowKey?: keyof T & string | ((record: T) => string)\n loading?: boolean\n size?: TableSize\n bordered?: boolean\n hoverable?: boolean\n striped?: boolean\n pinRows?: boolean\n pinCols?: boolean\n pagination?: false | PaginationConfig\n rowSelection?: RowSelection<T>\n expandable?: ExpandableConfig<T>\n scroll?: ScrollConfig\n className?: string\n onRow?: (record: T, index: number) => React.HTMLAttributes<HTMLTableRowElement>\n onChange?: (\n pagination: PaginationConfig,\n filters: Record<string, (string | number | boolean)[] | null>,\n sorter: SorterResult<T>,\n extra: TableChangeExtra<T>\n ) => void\n onSortChange?: (sorter: SorterResult<T>) => void\n onFilterChange?: (filters: Record<string, (string | number | boolean)[] | null>) => void\n locale?: {\n emptyText?: React.ReactNode\n filterConfirm?: string\n filterReset?: string\n selectAll?: string\n selectInvert?: string\n }\n 'data-testid'?: string\n 'aria-label'?: string\n}\n\nconst sizeClasses: Record<TableSize, string> = {\n xs: 'table-xs',\n sm: 'table-sm',\n md: '',\n lg: 'table-lg',\n xl: 'table-xl',\n}\n\nfunction FilterDropdown({\n filters,\n selectedValues,\n onChange,\n locale,\n testId,\n}: {\n filters: FilterConfig[]\n selectedValues: (string | number | boolean)[]\n onChange: (values: (string | number | boolean)[]) => void\n locale?: { filterConfirm?: string; filterReset?: string }\n testId: string\n}) {\n const [isOpen, setIsOpen] = useState(false)\n const dropdownId = useId()\n\n const handleToggle = (value: string | number | boolean) => {\n const newValues = selectedValues.includes(value)\n ? selectedValues.filter((v) => v !== value)\n : [...selectedValues, value]\n onChange(newValues)\n }\n\n const handleClear = () => {\n onChange([])\n setIsOpen(false)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsOpen(false)\n }\n }\n\n return (\n <div className=\"dropdown dropdown-end\" onKeyDown={handleKeyDown}>\n <button\n type=\"button\"\n className={`btn btn-ghost btn-xs ${selectedValues.length > 0 ? 'text-primary' : ''}`}\n onClick={() => setIsOpen(!isOpen)}\n aria-label=\"Filter column\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownId}\n data-testid={`${testId}-filter-button`}\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z\" />\n </svg>\n </button>\n {isOpen && (\n <div\n id={dropdownId}\n role=\"listbox\"\n aria-multiselectable=\"true\"\n className=\"dropdown-content z-[1] menu p-2 shadow bg-base-100 rounded-box w-52 border border-base-content/10\"\n data-testid={`${testId}-filter-dropdown`}\n >\n <div className=\"space-y-2\">\n {filters.map((filter) => (\n <label\n key={String(filter.value)}\n className=\"flex items-center gap-2 cursor-pointer p-2 hover:bg-base-200 rounded\"\n role=\"option\"\n aria-selected={selectedValues.includes(filter.value)}\n >\n <input\n type=\"checkbox\"\n className=\"checkbox checkbox-xs checkbox-primary\"\n checked={selectedValues.includes(filter.value)}\n onChange={() => handleToggle(filter.value)}\n data-testid={`${testId}-filter-${String(filter.value)}`}\n />\n <span className=\"text-sm\">{filter.text}</span>\n </label>\n ))}\n </div>\n <div className=\"divider my-1\"></div>\n <button\n type=\"button\"\n className=\"btn btn-ghost btn-xs w-full\"\n onClick={handleClear}\n data-testid={`${testId}-filter-reset`}\n >\n {locale?.filterReset ?? 'Clear'}\n </button>\n </div>\n )}\n </div>\n )\n}\n\nfunction DefaultExpandIcon({ expanded, onExpand }: { expanded: boolean; onExpand: () => void }) {\n return (\n <button\n type=\"button\"\n className=\"btn btn-ghost btn-xs btn-square\"\n onClick={(e) => {\n e.stopPropagation()\n onExpand()\n }}\n aria-label={expanded ? 'Collapse row' : 'Expand row'}\n aria-expanded={expanded}\n >\n <svg\n className={`w-4 h-4 transition-transform ${expanded ? 'rotate-90' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n )\n}\n\nfunction TableInner<T extends Record<string, unknown>>(\n {\n columns,\n dataSource,\n rowKey = 'id' as keyof T & string,\n loading = false,\n size = 'md',\n bordered = false,\n hoverable = true,\n striped = false,\n pinRows = false,\n pinCols = false,\n pagination,\n rowSelection,\n expandable,\n scroll,\n className = '',\n onRow,\n onChange,\n onSortChange,\n onFilterChange,\n locale,\n 'data-testid': testId,\n 'aria-label': ariaLabel,\n ...rest\n }: TableProps<T>,\n ref: React.ForwardedRef<HTMLTableElement>\n) {\n const baseTestId = testId ?? 'table'\n const defaultPageSize = 10\n\n // Pagination state\n const [currentPage, setCurrentPage] = useState(\n pagination !== false && pagination?.current ? pagination.current : 1\n )\n const [internalPageSize, setInternalPageSize] = useState(\n pagination !== false && pagination?.pageSize ? pagination.pageSize : defaultPageSize\n )\n const pageSize = pagination !== false && pagination?.pageSize !== undefined ? pagination.pageSize : internalPageSize\n\n // Sorting state\n const [sortState, setSortState] = useState<{\n columnKey: string | null\n order: 'ascend' | 'descend' | null\n }>(() => {\n // Check for controlled sort\n const controlledSortColumn = columns.find((col) => col.sortOrder !== undefined)\n if (controlledSortColumn) {\n return {\n columnKey: controlledSortColumn.key,\n order: controlledSortColumn.sortOrder ?? null,\n }\n }\n // Fallback to default\n const defaultSortColumn = columns.find((col) => col.defaultSortOrder)\n return {\n columnKey: defaultSortColumn?.key || null,\n order: defaultSortColumn?.defaultSortOrder || null,\n }\n })\n\n // Filtering state\n const [filterState, setFilterState] = useState<Record<string, (string | number | boolean)[]>>(() => {\n const initial: Record<string, (string | number | boolean)[]> = {}\n columns.forEach((col) => {\n // Check for controlled filter\n if (col.filteredValue !== undefined) {\n initial[col.key] = col.filteredValue\n } else if (col.defaultFilteredValue) {\n initial[col.key] = col.defaultFilteredValue\n }\n })\n return initial\n })\n\n // Row selection state\n const [selectedKeys, setSelectedKeys] = useState<React.Key[]>(\n rowSelection?.selectedRowKeys || []\n )\n\n // Expandable state\n const [expandedKeys, setExpandedKeys] = useState<React.Key[]>(\n expandable?.expandedRowKeys ?? expandable?.defaultExpandedRowKeys ?? []\n )\n\n // Sync controlled states\n const isControlledSort = columns.some((col) => col.sortOrder !== undefined)\n const isControlledFilter = columns.some((col) => col.filteredValue !== undefined)\n const isControlledExpand = expandable?.expandedRowKeys !== undefined\n const isControlledSelection = rowSelection?.selectedRowKeys !== undefined\n\n const effectiveSortState = useMemo(() => {\n if (isControlledSort) {\n const controlledCol = columns.find((col) => col.sortOrder !== undefined && col.sortOrder !== null)\n return {\n columnKey: controlledCol?.key ?? null,\n order: controlledCol?.sortOrder ?? null,\n }\n }\n return sortState\n }, [isControlledSort, columns, sortState])\n\n const effectiveFilterState = useMemo(() => {\n if (isControlledFilter) {\n const controlled: Record<string, (string | number | boolean)[]> = {}\n columns.forEach((col) => {\n if (col.filteredValue !== undefined) {\n controlled[col.key] = col.filteredValue\n }\n })\n return controlled\n }\n return filterState\n }, [isControlledFilter, columns, filterState])\n\n const effectiveSelectedKeys = isControlledSelection ? rowSelection!.selectedRowKeys! : selectedKeys\n const effectiveExpandedKeys = isControlledExpand ? expandable!.expandedRowKeys! : expandedKeys\n\n const isPaginationEnabled = pagination !== false\n\n // Visible columns (filter out hidden)\n const visibleColumns = useMemo(() => columns.filter((col) => !col.hidden), [columns])\n\n // Get row key helper\n const getRowKey = useCallback((record: T, index: number): string => {\n if (typeof rowKey === 'function') {\n return rowKey(record)\n }\n const keyValue = record[rowKey]\n return keyValue !== undefined ? String(keyValue) : String(index)\n }, [rowKey])\n\n // Apply filters\n const filteredData = useMemo(() => {\n let data = [...dataSource]\n Object.entries(effectiveFilterState).forEach(([columnKey, filterValues]) => {\n if (filterValues && filterValues.length > 0) {\n const column = columns.find((col) => col.key === columnKey)\n if (column?.onFilter) {\n data = data.filter((record) =>\n filterValues.some((value) => column.onFilter!(value, record))\n )\n }\n }\n })\n return data\n }, [dataSource, effectiveFilterState, columns])\n\n // Apply sorting\n const sortedData = useMemo(() => {\n if (!effectiveSortState.columnKey || !effectiveSortState.order) {\n return filteredData\n }\n const column = columns.find((col) => col.key === effectiveSortState.columnKey)\n if (!column?.sorter) {\n return filteredData\n }\n\n const sorted = [...filteredData]\n sorted.sort((a, b) => {\n let result = 0\n if (typeof column.sorter === 'function') {\n result = column.sorter(a, b)\n } else if (column.dataIndex) {\n const aVal = a[column.dataIndex]\n const bVal = b[column.dataIndex]\n if (aVal === undefined || aVal === null) return 1\n if (bVal === undefined || bVal === null) return -1\n if (aVal < bVal) result = -1\n if (aVal > bVal) result = 1\n }\n return effectiveSortState.order === 'ascend' ? result : -result\n })\n return sorted\n }, [filteredData, effectiveSortState, columns])\n\n const totalItems = pagination !== false && pagination?.total !== undefined ? pagination.total : sortedData.length\n const totalPages = Math.ceil(totalItems / pageSize)\n const startIndex = (currentPage - 1) * pageSize\n const endIndex = startIndex + pageSize\n const paginatedData = isPaginationEnabled ? sortedData.slice(startIndex, endIndex) : sortedData\n\n const handlePageChange = useCallback((page: number) => {\n setCurrentPage(page)\n if (pagination !== false && pagination?.onChange) {\n pagination.onChange(page, pageSize)\n }\n if (onChange) {\n const sorterResult: SorterResult<T> = {\n column: columns.find((col) => col.key === effectiveSortState.columnKey),\n order: effectiveSortState.order,\n field: effectiveSortState.columnKey ?? undefined,\n }\n onChange(\n { current: page, pageSize, total: totalItems },\n effectiveFilterState,\n sorterResult,\n { currentDataSource: sortedData, action: 'paginate' }\n )\n }\n }, [pagination, pageSize, onChange, columns, effectiveSortState, effectiveFilterState, sortedData, totalItems])\n\n const handlePageSizeChange = useCallback((newSize: number) => {\n setInternalPageSize(newSize)\n setCurrentPage(1)\n if (pagination !== false && pagination?.onShowSizeChange) {\n pagination.onShowSizeChange(1, newSize)\n }\n if (pagination !== false && pagination?.onChange) {\n pagination.onChange(1, newSize)\n }\n }, [pagination])\n\n const handleSort = useCallback((columnKey: string) => {\n const column = columns.find((col) => col.key === columnKey)\n let newOrder: 'ascend' | 'descend' | null = 'ascend'\n\n if (effectiveSortState.columnKey === columnKey) {\n if (effectiveSortState.order === 'ascend') newOrder = 'descend'\n else if (effectiveSortState.order === 'descend') newOrder = null\n }\n\n if (!isControlledSort) {\n setSortState({ columnKey: newOrder ? columnKey : null, order: newOrder })\n }\n setCurrentPage(1)\n\n const sorterResult: SorterResult<T> = {\n column,\n order: newOrder,\n field: columnKey,\n }\n\n onSortChange?.(sorterResult)\n\n if (onChange) {\n onChange(\n { current: 1, pageSize, total: totalItems },\n effectiveFilterState,\n sorterResult,\n { currentDataSource: sortedData, action: 'sort' }\n )\n }\n }, [columns, effectiveSortState, isControlledSort, pageSize, totalItems, effectiveFilterState, sortedData, onSortChange, onChange])\n\n const handleFilterChange = useCallback((columnKey: string, values: (string | number | boolean)[]) => {\n const newFilterState = {\n ...effectiveFilterState,\n [columnKey]: values,\n }\n\n if (!isControlledFilter) {\n setFilterState(newFilterState)\n }\n setCurrentPage(1)\n\n onFilterChange?.(newFilterState)\n\n if (onChange) {\n const sorterResult: SorterResult<T> = {\n column: columns.find((col) => col.key === effectiveSortState.columnKey),\n order: effectiveSortState.order,\n field: effectiveSortState.columnKey ?? undefined,\n }\n onChange(\n { current: 1, pageSize, total: totalItems },\n newFilterState,\n sorterResult,\n { currentDataSource: sortedData, action: 'filter' }\n )\n }\n }, [effectiveFilterState, isControlledFilter, columns, effectiveSortState, pageSize, totalItems, sortedData, onFilterChange, onChange])\n\n const handleSelectAll = useCallback((checked: boolean) => {\n const newSelectedKeys = checked\n ? paginatedData.map((record, index) => getRowKey(record, index))\n : []\n if (!isControlledSelection) {\n setSelectedKeys(newSelectedKeys)\n }\n if (rowSelection?.onChange) {\n const selectedRecords = checked ? paginatedData : []\n rowSelection.onChange(newSelectedKeys, selectedRecords)\n }\n }, [paginatedData, getRowKey, isControlledSelection, rowSelection])\n\n const handleSelectRow = useCallback((record: T, index: number, checked: boolean) => {\n const key = getRowKey(record, index)\n\n if (rowSelection?.type === 'radio') {\n const newSelectedKeys = checked ? [key] : []\n if (!isControlledSelection) {\n setSelectedKeys(newSelectedKeys)\n }\n if (rowSelection?.onChange) {\n rowSelection.onChange(newSelectedKeys, checked ? [record] : [])\n }\n return\n }\n\n const newSelectedKeys = checked\n ? [...effectiveSelectedKeys, key]\n : effectiveSelectedKeys.filter((k) => k !== key)\n\n if (!isControlledSelection) {\n setSelectedKeys(newSelectedKeys)\n }\n if (rowSelection?.onChange) {\n const selectedRecords = sortedData.filter((r, i) =>\n newSelectedKeys.includes(getRowKey(r, i))\n )\n rowSelection.onChange(newSelectedKeys, selectedRecords)\n }\n }, [getRowKey, rowSelection, isControlledSelection, effectiveSelectedKeys, sortedData])\n\n const handleExpand = useCallback((record: T, index: number) => {\n const key = getRowKey(record, index)\n const isExpanded = effectiveExpandedKeys.includes(key)\n const newExpandedKeys = isExpanded\n ? effectiveExpandedKeys.filter((k) => k !== key)\n : [...effectiveExpandedKeys, key]\n\n if (!isControlledExpand) {\n setExpandedKeys(newExpandedKeys)\n }\n expandable?.onExpand?.(!isExpanded, record)\n expandable?.onExpandedRowsChange?.(newExpandedKeys)\n }, [getRowKey, effectiveExpandedKeys, isControlledExpand, expandable])\n\n const getCellValue = useCallback((column: ColumnType<T>, record: T, index: number) => {\n if (column.render) {\n return column.render(\n column.dataIndex ? record[column.dataIndex] : undefined,\n record,\n index\n )\n }\n if (column.dataIndex) {\n const value = record[column.dataIndex]\n return value !== undefined && value !== null ? String(value) : ''\n }\n return ''\n }, [])\n\n const getAlignClass = (align?: 'left' | 'center' | 'right') => {\n if (align === 'center') return 'text-center'\n if (align === 'right') return 'text-right'\n return 'text-left'\n }\n\n // Calculate fixed column offsets\n const getFixedColumnStyle = useCallback((columnIndex: number, isHeader = false): { className: string; style?: React.CSSProperties } => {\n const column = visibleColumns[columnIndex]\n if (!column?.fixed) return { className: '' }\n\n const classes = ['sticky', 'bg-base-100']\n let offset = 0\n const style: React.CSSProperties = {\n boxSizing: 'border-box',\n }\n\n if (column.fixed === 'left') {\n for (let i = 0; i < columnIndex; i++) {\n if (visibleColumns[i].fixed === 'left' && visibleColumns[i].width) {\n const colWidth = visibleColumns[i].width!\n const width = typeof colWidth === 'number' ? colWidth : parseInt(String(colWidth))\n if (!isNaN(width)) offset += width\n }\n }\n if (offset === 0) {\n classes.push('left-0')\n } else {\n style.left = `${offset}px`\n }\n classes.push(isHeader ? 'z-30' : 'z-20')\n\n let lastLeftFixedIndex = -1\n for (let i = visibleColumns.length - 1; i >= 0; i--) {\n if (visibleColumns[i].fixed === 'left') {\n lastLeftFixedIndex = i\n break\n }\n }\n if (columnIndex === lastLeftFixedIndex) {\n style.boxShadow = '2px 0 4px rgba(0, 0, 0, 0.1)'\n }\n }\n\n if (column.fixed === 'right') {\n for (let i = columnIndex + 1; i < visibleColumns.length; i++) {\n if (visibleColumns[i].fixed === 'right' && visibleColumns[i].width) {\n const colWidth = visibleColumns[i].width!\n const width = typeof colWidth === 'number' ? colWidth : parseInt(String(colWidth))\n if (!isNaN(width)) offset += width\n }\n }\n if (offset === 0) {\n classes.push('right-0')\n } else {\n style.right = `${offset}px`\n }\n classes.push(isHeader ? 'z-30' : 'z-20')\n\n const isFirstRightFixed = columnIndex === visibleColumns.findIndex((col) => col.fixed === 'right')\n if (isFirstRightFixed) {\n style.boxShadow = '-2px 0 4px rgba(0, 0, 0, 0.1)'\n }\n }\n\n return {\n className: classes.filter(Boolean).join(' '),\n style: Object.keys(style).length > 0 ? style : undefined,\n }\n }, [visibleColumns])\n\n const tableClasses = [\n 'table',\n 'bg-base-100',\n sizeClasses[size],\n striped && 'table-zebra',\n pinRows && 'table-pin-rows',\n pinCols && 'table-pin-cols',\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const hasFixedColumns = visibleColumns.some((col) => col.fixed)\n const hasExpandable = expandable !== undefined\n\n const wrapperStyle: React.CSSProperties = {}\n if (scroll?.x) {\n wrapperStyle.overflowX = 'auto'\n wrapperStyle.maxWidth = typeof scroll.x === 'number' ? `${scroll.x}px` : scroll.x\n }\n if (scroll?.y) {\n wrapperStyle.overflowY = 'auto'\n wrapperStyle.maxHeight = typeof scroll.y === 'number' ? `${scroll.y}px` : scroll.y\n }\n\n const wrapperClasses = [\n (!pinRows || hasFixedColumns || scroll?.x) && 'overflow-x-auto',\n bordered && 'rounded-box border border-base-content/5 bg-base-100',\n ]\n .filter(Boolean)\n .join(' ')\n\n if (loading) {\n return (\n <div className=\"flex justify-center items-center p-8\" data-testid={`${baseTestId}-loading`}>\n <span className=\"loading loading-spinner loading-lg\" aria-label=\"Loading\"></span>\n </div>\n )\n }\n\n const isAllSelected = paginatedData.length > 0 &&\n paginatedData.every((record, index) => effectiveSelectedKeys.includes(getRowKey(record, index)))\n const isSomeSelected = paginatedData.some((record, index) => effectiveSelectedKeys.includes(getRowKey(record, index)))\n\n const emptyText = locale?.emptyText ?? 'No data'\n\n // Calculate extra columns count (selection + expand)\n const extraColsCount = (rowSelection ? 1 : 0) + (hasExpandable ? 1 : 0)\n\n const renderPagination = () => {\n if (!isPaginationEnabled || totalPages <= 1) return null\n if (typeof pagination === 'boolean') return null\n\n const paginationConfig: PaginationConfig = pagination ?? {}\n const position = paginationConfig.position ?? 'bottomRight'\n const showSizeChanger = paginationConfig.showSizeChanger\n const showQuickJumper = paginationConfig.showQuickJumper\n const showTotal = paginationConfig.showTotal\n const pageSizeOptions = paginationConfig.pageSizeOptions ?? [10, 20, 50, 100]\n\n const justifyClass = position.includes('Left') ? 'justify-start' : position.includes('Center') ? 'justify-center' : 'justify-end'\n\n const paginationElement = (\n <div className={`flex items-center gap-4 ${justifyClass}`} data-testid={`${baseTestId}-pagination`}>\n {showTotal && (\n <span className=\"text-sm text-base-content/70\">\n {showTotal(totalItems, [startIndex + 1, Math.min(endIndex, totalItems)])}\n </span>\n )}\n\n {showSizeChanger && (\n <select\n className=\"select select-sm select-bordered\"\n value={pageSize}\n onChange={(e) => handlePageSizeChange(Number(e.target.value))}\n aria-label=\"Page size\"\n data-testid={`${baseTestId}-page-size`}\n >\n {pageSizeOptions.map((size) => (\n <option key={size} value={size}>{size} / page</option>\n ))}\n </select>\n )}\n\n <div className=\"join\">\n <button\n type=\"button\"\n className=\"join-item btn btn-sm\"\n onClick={() => handlePageChange(currentPage - 1)}\n disabled={currentPage === 1}\n aria-label=\"Previous page\"\n data-testid={`${baseTestId}-prev`}\n >\n «\n </button>\n {Array.from({ length: Math.min(totalPages, 7) }, (_, i) => {\n let page: number\n if (totalPages <= 7) {\n page = i + 1\n } else if (currentPage <= 4) {\n page = i + 1\n } else if (currentPage >= totalPages - 3) {\n page = totalPages - 6 + i\n } else {\n page = currentPage - 3 + i\n }\n return (\n <button\n key={page}\n type=\"button\"\n className={`join-item btn btn-sm ${currentPage === page ? 'btn-active' : ''}`}\n onClick={() => handlePageChange(page)}\n aria-label={`Page ${page}`}\n aria-current={currentPage === page ? 'page' : undefined}\n data-testid={`${baseTestId}-page-${page}`}\n >\n {page}\n </button>\n )\n })}\n <button\n type=\"button\"\n className=\"join-item btn btn-sm\"\n onClick={() => handlePageChange(currentPage + 1)}\n disabled={currentPage === totalPages}\n aria-label=\"Next page\"\n data-testid={`${baseTestId}-next`}\n >\n »\n </button>\n </div>\n\n {showQuickJumper && (\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm\">Go to</span>\n <input\n type=\"number\"\n className=\"input input-sm input-bordered w-16\"\n min={1}\n max={totalPages}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n const value = parseInt((e.target as HTMLInputElement).value)\n if (value >= 1 && value <= totalPages) {\n handlePageChange(value)\n }\n }\n }}\n aria-label=\"Go to page\"\n data-testid={`${baseTestId}-jumper`}\n />\n </div>\n )}\n </div>\n )\n\n return paginationElement\n }\n\n const paginationPosition = pagination && typeof pagination !== 'boolean' ? pagination.position : undefined\n const topPagination = isPaginationEnabled && paginationPosition?.startsWith('top') ? renderPagination() : null\n const bottomPagination = isPaginationEnabled && (!paginationPosition || paginationPosition.startsWith('bottom')) ? renderPagination() : null\n\n return (\n <div className=\"space-y-4\" data-testid={baseTestId} {...rest}>\n {topPagination}\n\n <div className={wrapperClasses} style={wrapperStyle}>\n <table\n ref={ref}\n className={tableClasses}\n style={{ borderCollapse: 'separate', borderSpacing: 0, tableLayout: 'fixed' }}\n role=\"grid\"\n aria-label={ariaLabel}\n aria-rowcount={sortedData.length}\n data-testid={`${baseTestId}-table`}\n >\n <thead>\n <tr role=\"row\">\n {hasExpandable && (\n <th style={{ width: 50 }} className=\"sticky left-0 z-20 bg-base-100\" role=\"columnheader\">\n <span className=\"sr-only\">Expand</span>\n </th>\n )}\n {rowSelection && (\n <th\n style={{ width: 50 }}\n className={`sticky ${hasExpandable ? '' : 'left-0'} z-20 bg-base-100`}\n role=\"columnheader\"\n >\n {rowSelection.type !== 'radio' && (\n <input\n type=\"checkbox\"\n className=\"checkbox checkbox-sm checkbox-primary\"\n checked={isAllSelected}\n ref={(el) => {\n if (el) el.indeterminate = isSomeSelected && !isAllSelected\n }}\n onChange={(e) => handleSelectAll(e.target.checked)}\n aria-label={locale?.selectAll ?? 'Select all rows'}\n data-testid={`${baseTestId}-select-all`}\n />\n )}\n </th>\n )}\n {visibleColumns.map((column, columnIndex) => {\n const fixedStyle = getFixedColumnStyle(columnIndex, true)\n const isSorted = effectiveSortState.columnKey === column.key\n const sortOrder = isSorted ? effectiveSortState.order : null\n\n return (\n <th\n key={column.key}\n className={`${getAlignClass(column.align)} ${fixedStyle.className}`}\n style={{\n ...(column.width ? { width: column.width } : {}),\n ...fixedStyle.style,\n }}\n role=\"columnheader\"\n aria-sort={sortOrder === 'ascend' ? 'ascending' : sortOrder === 'descend' ? 'descending' : undefined}\n data-testid={`${baseTestId}-header-${column.key}`}\n >\n <div className=\"flex items-center gap-2\">\n <span\n className={column.sorter ? 'cursor-pointer select-none hover:text-primary' : ''}\n onClick={() => column.sorter && handleSort(column.key)}\n onKeyDown={(e) => {\n if (column.sorter && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n handleSort(column.key)\n }\n }}\n tabIndex={column.sorter ? 0 : undefined}\n role={column.sorter ? 'button' : undefined}\n aria-label={column.sorter ? `Sort by ${column.title}` : undefined}\n >\n {column.title}\n </span>\n {column.sorter && (\n <div className=\"flex flex-col\" aria-hidden=\"true\">\n <svg\n className={`w-3 h-3 ${sortOrder === 'ascend' ? 'text-primary' : 'text-base-content/30'}`}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path d=\"M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z\" />\n </svg>\n <svg\n className={`w-3 h-3 -mt-1 ${sortOrder === 'descend' ? 'text-primary' : 'text-base-content/30'}`}\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path d=\"M14.707 10.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L9 12.586V5a1 1 0 012 0v7.586l2.293-2.293a1 1 0 011.414 0z\" />\n </svg>\n </div>\n )}\n {column.filters && (\n <FilterDropdown\n filters={column.filters}\n selectedValues={effectiveFilterState[column.key] || []}\n onChange={(values) => handleFilterChange(column.key, values)}\n locale={locale}\n testId={`${baseTestId}-${column.key}`}\n />\n )}\n </div>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {paginatedData.length === 0 ? (\n <tr role=\"row\">\n <td\n colSpan={visibleColumns.length + extraColsCount}\n className=\"text-center py-8 text-base-content/50\"\n role=\"gridcell\"\n data-testid={`${baseTestId}-empty`}\n >\n {emptyText}\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const rowProps = onRow?.(record, index) || {}\n const key = getRowKey(record, index)\n const isSelected = effectiveSelectedKeys.includes(key)\n const isExpanded = effectiveExpandedKeys.includes(key)\n const isExpandable = expandable?.rowExpandable ? expandable.rowExpandable(record) : true\n const rowClasses = [\n hoverable && 'hover:bg-base-200',\n isSelected && 'bg-primary/10',\n ]\n .filter(Boolean)\n .join(' ')\n\n const checkboxProps = rowSelection?.getCheckboxProps?.(record) || {}\n\n const handleRowClick = (e: React.MouseEvent<HTMLTableRowElement>) => {\n rowProps.onClick?.(e)\n if (expandable?.expandRowByClick && isExpandable) {\n handleExpand(record, index)\n }\n }\n\n return (\n <React.Fragment key={key}>\n <tr\n className={rowClasses}\n role=\"row\"\n aria-selected={isSelected}\n data-testid={`${baseTestId}-row-${index}`}\n data-state={isSelected ? 'selected' : undefined}\n {...rowProps}\n onClick={handleRowClick}\n >\n {hasExpandable && (\n <td className=\"sticky left-0 z-10 bg-base-100\" role=\"gridcell\">\n {isExpandable && (\n expandable.expandIcon ? (\n expandable.expandIcon({\n expanded: isExpanded,\n onExpand: () => handleExpand(record, index),\n record,\n })\n ) : (\n <DefaultExpandIcon\n expanded={isExpanded}\n onExpand={() => handleExpand(record, index)}\n />\n )\n )}\n </td>\n )}\n {rowSelection && (\n <td\n className={`sticky ${hasExpandable ? '' : 'left-0'} z-10 bg-base-100`}\n role=\"gridcell\"\n >\n <input\n type={rowSelection.type === 'radio' ? 'radio' : 'checkbox'}\n className={rowSelection.type === 'radio' ? 'radio radio-sm radio-primary' : 'checkbox checkbox-sm checkbox-primary'}\n checked={isSelected}\n onChange={(e) => handleSelectRow(record, index, e.target.checked)}\n aria-label={`Select row ${index + 1}`}\n data-testid={`${baseTestId}-row-${index}-select`}\n {...checkboxProps}\n />\n </td>\n )}\n {visibleColumns.map((column, columnIndex) => {\n const fixedStyle = getFixedColumnStyle(columnIndex, false)\n const cellContent = getCellValue(column, record, index)\n\n return (\n <td\n key={column.key}\n className={`${getAlignClass(column.align)} ${fixedStyle.className} ${column.ellipsis ? 'truncate max-w-0' : ''}`}\n style={fixedStyle.style}\n role=\"gridcell\"\n title={column.ellipsis && typeof cellContent === 'string' ? cellContent : undefined}\n data-testid={`${baseTestId}-row-${index}-${column.key}`}\n >\n {cellContent}\n </td>\n )\n })}\n </tr>\n {hasExpandable && isExpanded && (\n <tr\n className=\"bg-base-200/50\"\n role=\"row\"\n data-testid={`${baseTestId}-row-${index}-expanded`}\n >\n <td\n colSpan={visibleColumns.length + extraColsCount}\n className=\"p-4\"\n role=\"gridcell\"\n >\n {expandable.expandedRowRender(record, index, isExpanded)}\n </td>\n </tr>\n )}\n </React.Fragment>\n )\n })\n )}\n </tbody>\n </table>\n </div>\n\n {bottomPagination}\n </div>\n )\n}\n\nexport const Table = forwardRef(TableInner) as <T extends Record<string, unknown>>(\n props: TableProps<T> & { ref?: React.ForwardedRef<HTMLTableElement> }\n) => React.ReactElement\n"],"names":["sizeClasses","FilterDropdown","filters","selectedValues","onChange","locale","testId","isOpen","setIsOpen","useState","dropdownId","useId","handleToggle","value","newValues","v","handleClear","jsxs","e","jsx","filter","DefaultExpandIcon","expanded","onExpand","TableInner","columns","dataSource","rowKey","loading","size","bordered","hoverable","striped","pinRows","pinCols","pagination","rowSelection","expandable","scroll","className","onRow","onSortChange","onFilterChange","ariaLabel","rest","ref","baseTestId","defaultPageSize","currentPage","setCurrentPage","internalPageSize","setInternalPageSize","pageSize","sortState","setSortState","controlledSortColumn","col","defaultSortColumn","filterState","setFilterState","initial","selectedKeys","setSelectedKeys","expandedKeys","setExpandedKeys","isControlledSort","isControlledFilter","isControlledExpand","isControlledSelection","effectiveSortState","useMemo","controlledCol","effectiveFilterState","controlled","effectiveSelectedKeys","effectiveExpandedKeys","isPaginationEnabled","visibleColumns","getRowKey","useCallback","record","index","keyValue","filteredData","data","columnKey","filterValues","column","sortedData","sorted","a","b","result","aVal","bVal","totalItems","totalPages","startIndex","endIndex","paginatedData","handlePageChange","page","sorterResult","handlePageSizeChange","newSize","handleSort","newOrder","handleFilterChange","values","newFilterState","handleSelectAll","checked","newSelectedKeys","selectedRecords","handleSelectRow","key","k","r","i","handleExpand","isExpanded","newExpandedKeys","getCellValue","getAlignClass","align","getFixedColumnStyle","columnIndex","isHeader","classes","offset","style","colWidth","width","lastLeftFixedIndex","tableClasses","hasFixedColumns","hasExpandable","wrapperStyle","wrapperClasses","isAllSelected","isSomeSelected","emptyText","extraColsCount","renderPagination","paginationConfig","position","showSizeChanger","showQuickJumper","showTotal","pageSizeOptions","justifyClass","_","paginationPosition","topPagination","bottomPagination","el","fixedStyle","sortOrder","rowProps","isSelected","isExpandable","rowClasses","checkboxProps","handleRowClick","React","cellContent","Table","forwardRef"],"mappings":"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"}
|