asterui 0.12.61 → 0.12.63
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/components/Affix.d.ts +2 -0
- package/dist/components/Affix.js.map +1 -1
- package/dist/components/Alert.d.ts +2 -0
- package/dist/components/Alert.js.map +1 -1
- package/dist/components/Anchor.d.ts +2 -0
- package/dist/components/Anchor.js +79 -75
- package/dist/components/Anchor.js.map +1 -1
- package/dist/components/Autocomplete.d.ts +1 -0
- package/dist/components/Autocomplete.js +115 -110
- package/dist/components/Autocomplete.js.map +1 -1
- package/dist/components/Avatar.d.ts +4 -0
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/Breadcrumb.d.ts +4 -2
- package/dist/components/Breadcrumb.js +54 -29
- package/dist/components/Breadcrumb.js.map +1 -1
- package/dist/components/Browser.d.ts +2 -0
- package/dist/components/Browser.js.map +1 -1
- package/dist/components/Button.d.ts +5 -1
- package/dist/components/Button.js +117 -107
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Chart.d.ts +1 -0
- package/dist/components/Chart.js +31 -30
- package/dist/components/Chart.js.map +1 -1
- package/dist/components/Chat.d.ts +1 -0
- package/dist/components/Chat.js +39 -28
- package/dist/components/Chat.js.map +1 -1
- package/dist/components/Code.d.ts +2 -0
- package/dist/components/Code.js.map +1 -1
- package/dist/components/Command.d.ts +5 -2
- package/dist/components/Command.js +262 -233
- package/dist/components/Command.js.map +1 -1
- package/dist/components/Container.d.ts +2 -0
- package/dist/components/Container.js.map +1 -1
- package/dist/components/ContextMenu.d.ts +4 -0
- package/dist/components/ContextMenu.js +157 -122
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/CopyButton.d.ts +2 -0
- package/dist/components/CopyButton.js +9 -8
- package/dist/components/CopyButton.js.map +1 -1
- package/dist/components/Countdown.d.ts +3 -3
- package/dist/components/Countdown.js +49 -47
- package/dist/components/Countdown.js.map +1 -1
- package/dist/components/Diff.d.ts +3 -3
- package/dist/components/Diff.js +14 -10
- package/dist/components/Diff.js.map +1 -1
- package/dist/components/Divider.d.ts +2 -0
- package/dist/components/Divider.js.map +1 -1
- package/dist/components/Dock.d.ts +6 -0
- package/dist/components/Dock.js +75 -38
- package/dist/components/Dock.js.map +1 -1
- package/dist/components/Dropdown.js +110 -110
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/Fieldset.d.ts +2 -0
- package/dist/components/Fieldset.js.map +1 -1
- package/dist/components/FileInput.d.ts +1 -0
- package/dist/components/FileInput.js +26 -26
- package/dist/components/FileInput.js.map +1 -1
- package/dist/components/Filter.d.ts +1 -0
- package/dist/components/Filter.js +43 -40
- package/dist/components/Filter.js.map +1 -1
- package/dist/components/Flex.d.ts +1 -0
- package/dist/components/Flex.js +43 -42
- package/dist/components/Flex.js.map +1 -1
- package/dist/components/FloatButton.d.ts +9 -0
- package/dist/components/FloatButton.js +211 -136
- package/dist/components/FloatButton.js.map +1 -1
- package/dist/components/Footer.d.ts +2 -0
- package/dist/components/Footer.js.map +1 -1
- package/dist/components/Grid.d.ts +4 -0
- package/dist/components/Grid.js.map +1 -1
- package/dist/components/Hero.d.ts +2 -0
- package/dist/components/Hero.js.map +1 -1
- package/dist/components/HoverGallery.d.ts +3 -3
- package/dist/components/HoverGallery.js +12 -10
- package/dist/components/HoverGallery.js.map +1 -1
- package/dist/components/Input.d.ts +1 -0
- package/dist/components/Input.js +201 -184
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Join.d.ts +2 -0
- package/dist/components/Join.js.map +1 -1
- package/dist/components/Kbd.d.ts +2 -0
- package/dist/components/Kbd.js.map +1 -1
- package/dist/components/Loading.d.ts +3 -0
- package/dist/components/Loading.js +58 -35
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/Mask.d.ts +2 -2
- package/dist/components/Mask.js.map +1 -1
- package/dist/components/Masonry.d.ts +1 -0
- package/dist/components/Masonry.js +45 -42
- package/dist/components/Masonry.js.map +1 -1
- package/dist/components/Mention.d.ts +1 -0
- package/dist/components/Mention.js +95 -91
- package/dist/components/Mention.js.map +1 -1
- package/dist/components/MonthCalendar.d.ts +1 -0
- package/dist/components/MonthCalendar.js +104 -97
- package/dist/components/MonthCalendar.js.map +1 -1
- package/dist/components/Navbar.d.ts +2 -0
- package/dist/components/Navbar.js.map +1 -1
- package/dist/components/Notification.js +32 -18
- package/dist/components/Notification.js.map +1 -1
- package/dist/components/Phone.d.ts +3 -2
- package/dist/components/Phone.js +10 -8
- package/dist/components/Phone.js.map +1 -1
- package/dist/components/Popconfirm.js +110 -92
- package/dist/components/Popconfirm.js.map +1 -1
- package/dist/components/Popover.d.ts +2 -0
- package/dist/components/Popover.js.map +1 -1
- package/dist/components/Progress.d.ts +2 -0
- package/dist/components/Progress.js.map +1 -1
- package/dist/components/QRCode.d.ts +1 -0
- package/dist/components/QRCode.js +84 -55
- package/dist/components/QRCode.js.map +1 -1
- package/dist/components/RadialProgress.d.ts +1 -0
- package/dist/components/RadialProgress.js +19 -17
- package/dist/components/RadialProgress.js.map +1 -1
- package/dist/components/Radio.d.ts +6 -3
- package/dist/components/Radio.js +9 -9
- package/dist/components/Radio.js.map +1 -1
- package/dist/components/Range.d.ts +1 -0
- package/dist/components/Range.js +45 -43
- package/dist/components/Range.js.map +1 -1
- package/dist/components/Rating.d.ts +4 -2
- package/dist/components/Rating.js +83 -79
- package/dist/components/Rating.js.map +1 -1
- package/dist/components/Responsive.d.ts +4 -2
- package/dist/components/Responsive.js +10 -9
- package/dist/components/Responsive.js.map +1 -1
- package/dist/components/Result.d.ts +1 -0
- package/dist/components/Result.js +24 -22
- package/dist/components/Result.js.map +1 -1
- package/dist/components/Select.d.ts +1 -0
- package/dist/components/Select.js +72 -62
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Skeleton.d.ts +2 -0
- package/dist/components/Skeleton.js.map +1 -1
- package/dist/components/Space.d.ts +2 -0
- package/dist/components/Space.js.map +1 -1
- package/dist/components/Splitter.d.ts +2 -0
- package/dist/components/Splitter.js +137 -131
- package/dist/components/Splitter.js.map +1 -1
- package/dist/components/Stat.d.ts +4 -2
- package/dist/components/Stat.js +19 -18
- package/dist/components/Stat.js.map +1 -1
- package/dist/components/Status.d.ts +3 -3
- package/dist/components/Status.js +27 -25
- package/dist/components/Status.js.map +1 -1
- package/dist/components/Steps.d.ts +4 -2
- package/dist/components/Steps.js +56 -52
- package/dist/components/Steps.js.map +1 -1
- package/dist/components/TextRotate.d.ts +1 -0
- package/dist/components/TextRotate.js +14 -12
- package/dist/components/TextRotate.js.map +1 -1
- package/dist/components/Textarea.d.ts +1 -0
- package/dist/components/Textarea.js +31 -30
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/ThemeController.d.ts +6 -3
- package/dist/components/ThemeController.js +101 -92
- package/dist/components/ThemeController.js.map +1 -1
- package/dist/components/Toggle.d.ts +2 -0
- package/dist/components/Toggle.js.map +1 -1
- package/dist/components/Tooltip.d.ts +2 -0
- package/dist/components/Tooltip.js +38 -32
- package/dist/components/Tooltip.js.map +1 -1
- package/dist/components/Typography.d.ts +10 -5
- package/dist/components/Typography.js +84 -81
- package/dist/components/Typography.js.map +1 -1
- package/dist/components/VirtualList.d.ts +2 -1
- package/dist/components/VirtualList.js +40 -36
- package/dist/components/VirtualList.js.map +1 -1
- package/dist/components/Watermark.d.ts +1 -0
- package/dist/components/Watermark.js +74 -71
- package/dist/components/Watermark.js.map +1 -1
- package/dist/components/WeekCalendar.d.ts +1 -0
- package/dist/components/WeekCalendar.js +91 -76
- package/dist/components/WeekCalendar.js.map +1 -1
- package/dist/components/Window.d.ts +3 -2
- package/dist/components/Window.js +9 -7
- package/dist/components/Window.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dSelect = 'select'\nconst dSelectBordered = 'select-bordered'\nconst dSelectGhost = 'select-ghost'\nconst dSelectXs = 'select-xs'\nconst dSelectSm = 'select-sm'\nconst dSelectMd = 'select-md'\nconst dSelectLg = 'select-lg'\nconst dSelectXl = 'select-xl'\nconst dSelectNeutral = 'select-neutral'\nconst dSelectPrimary = 'select-primary'\nconst dSelectSecondary = 'select-secondary'\nconst dSelectAccent = 'select-accent'\nconst dSelectInfo = 'select-info'\nconst dSelectSuccess = 'select-success'\nconst dSelectWarning = 'select-warning'\nconst dSelectError = 'select-error'\nconst dFloatingLabel = 'floating-label'\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 { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const innerRef = useRef<HTMLSelectElement>(null)\n const selectRef = (ref as React.RefObject<HTMLSelectElement>) || innerRef\n\n const sizeClasses = {\n xs: dSelectXs,\n sm: dSelectSm,\n md: dSelectMd,\n lg: dSelectLg,\n xl: dSelectXl,\n }\n\n const colorClasses = {\n neutral: dSelectNeutral,\n primary: dSelectPrimary,\n secondary: dSelectSecondary,\n accent: dSelectAccent,\n info: dSelectInfo,\n success: dSelectSuccess,\n warning: dSelectWarning,\n error: dSelectError,\n }\n\n const statusClasses = {\n error: dSelectError,\n warning: dSelectWarning,\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 dSelect,\n 'w-full',\n bordered && dSelectBordered,\n ghost && dSelectGhost,\n effectiveSize && sizeClasses[effectiveSize],\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 dFloatingLabel,\n effectiveSize && sizeClasses[effectiveSize],\n ].filter(Boolean).join(' ')\n\n return (\n <label className={floatingClasses}>\n <select
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dSelect = 'select'\nconst dSelectBordered = 'select-bordered'\nconst dSelectGhost = 'select-ghost'\nconst dSelectXs = 'select-xs'\nconst dSelectSm = 'select-sm'\nconst dSelectMd = 'select-md'\nconst dSelectLg = 'select-lg'\nconst dSelectXl = 'select-xl'\nconst dSelectNeutral = 'select-neutral'\nconst dSelectPrimary = 'select-primary'\nconst dSelectSecondary = 'select-secondary'\nconst dSelectAccent = 'select-accent'\nconst dSelectInfo = 'select-info'\nconst dSelectSuccess = 'select-success'\nconst dSelectWarning = 'select-warning'\nconst dSelectError = 'select-error'\nconst dFloatingLabel = 'floating-label'\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 'data-testid'?: string\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 'data-testid': testId,\n ...props\n },\n ref\n ) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const innerRef = useRef<HTMLSelectElement>(null)\n const selectRef = (ref as React.RefObject<HTMLSelectElement>) || innerRef\n\n const sizeClasses = {\n xs: dSelectXs,\n sm: dSelectSm,\n md: dSelectMd,\n lg: dSelectLg,\n xl: dSelectXl,\n }\n\n const colorClasses = {\n neutral: dSelectNeutral,\n primary: dSelectPrimary,\n secondary: dSelectSecondary,\n accent: dSelectAccent,\n info: dSelectInfo,\n success: dSelectSuccess,\n warning: dSelectWarning,\n error: dSelectError,\n }\n\n const statusClasses = {\n error: dSelectError,\n warning: dSelectWarning,\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 const hasWrapper = hasExternalAddons || !!floatingLabel\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n const selectTestId = testId ? (hasWrapper ? getTestId('select') : testId) : undefined\n\n const selectClasses = hasExternalAddons\n ? ['grow', 'bg-transparent', 'border-0', 'outline-none', 'focus:outline-none', className].filter(Boolean).join(' ')\n : [\n dSelect,\n 'w-full',\n bordered && dSelectBordered,\n ghost && dSelectGhost,\n effectiveSize && sizeClasses[effectiveSize],\n effectiveColorClass,\n className,\n ].filter(Boolean).join(' ')\n\n // Build the core select element\n const selectElement = (\n <select ref={selectRef} className={selectClasses} data-testid={selectTestId} {...props}>\n {children}\n </select>\n )\n\n // Wrap with floating label if specified\n if (floatingLabel) {\n const floatingClasses = [\n dFloatingLabel,\n effectiveSize && sizeClasses[effectiveSize],\n ].filter(Boolean).join(' ')\n\n return (\n <label className={floatingClasses} data-testid={testId}>\n <select\n ref={selectRef}\n className={`${dSelect} ${dSelectBordered} w-full`}\n data-testid={selectTestId}\n {...props}\n >\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 dSelect,\n dSelectBordered,\n 'flex',\n 'items-center',\n 'gap-2',\n effectiveSize && sizeClasses[effectiveSize],\n effectiveColorClass,\n ].filter(Boolean).join(' ')\n\n return (\n <label className={addonClasses} data-testid={testId}>\n {addonBefore && (\n <span className=\"text-base-content/70\" data-testid={getTestId('addon-before')}>\n {addonBefore}\n </span>\n )}\n {selectElement}\n {addonAfter && (\n <span className=\"text-base-content/70\" data-testid={getTestId('addon-after')}>\n {addonAfter}\n </span>\n )}\n </label>\n )\n }\n\n return selectElement\n }\n)\n\nSelect.displayName = 'Select'\n"],"names":["dSelect","dSelectBordered","dSelectGhost","dSelectXs","dSelectSm","dSelectMd","dSelectLg","dSelectXl","dSelectNeutral","dSelectPrimary","dSelectSecondary","dSelectAccent","dSelectInfo","dSelectSuccess","dSelectWarning","dSelectError","dFloatingLabel","Select","forwardRef","size","color","status","ghost","bordered","floatingLabel","addonBefore","addonAfter","className","children","testId","props","ref","componentSize","useConfig","effectiveSize","innerRef","useRef","selectRef","sizeClasses","effectiveColorClass","hasExternalAddons","hasWrapper","getTestId","suffix","selectTestId","selectClasses","selectElement","jsx","floatingClasses","jsxs","addonClasses"],"mappings":"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"}
|
|
@@ -5,5 +5,7 @@ export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
circle?: boolean;
|
|
6
6
|
variant?: 'default' | 'text';
|
|
7
7
|
children?: React.ReactNode;
|
|
8
|
+
/** Test ID for testing */
|
|
9
|
+
'data-testid'?: string;
|
|
8
10
|
}
|
|
9
11
|
export declare const Skeleton: React.FC<SkeletonProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.js","sources":["../../src/components/Skeleton.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dSkeleton = 'skeleton'\nconst dSkeletonText = 'skeleton-text'\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 = [dSkeleton]\n\n if (variant === 'text') {\n classes.push(dSkeletonText)\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":["dSkeleton","dSkeletonText","Skeleton","width","height","circle","variant","className","children","style","rest","getClasses","classes","getStyles","styles","jsx"],"mappings":";AAGA,MAAMA,IAAY,YACZC,IAAgB,
|
|
1
|
+
{"version":3,"file":"Skeleton.js","sources":["../../src/components/Skeleton.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dSkeleton = 'skeleton'\nconst dSkeletonText = 'skeleton-text'\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 /** Test ID for testing */\n 'data-testid'?: string\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 = [dSkeleton]\n\n if (variant === 'text') {\n classes.push(dSkeletonText)\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":["dSkeleton","dSkeletonText","Skeleton","width","height","circle","variant","className","children","style","rest","getClasses","classes","getStyles","styles","jsx"],"mappings":";AAGA,MAAMA,IAAY,YACZC,IAAgB,iBAYTC,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,CAACZ,CAAS;AAE1B,WAAIM,MAAY,UACdM,EAAQ,KAAKX,CAAa,GAGxBI,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;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Space.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 = 'sm',\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 effectiveAlign = align ?? (direction === 'vertical' ? 'start' : undefined)\n const alignClass = effectiveAlign ? alignClasses[effectiveAlign] : ''\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","effectiveAlign","alignClass","justifyClass","classes","combinedStyle","jsx","childArray","React","result","child","index"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Space.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 /** Test ID for testing */\n 'data-testid'?: string\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 = 'sm',\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 effectiveAlign = align ?? (direction === 'vertical' ? 'start' : undefined)\n const alignClass = effectiveAlign ? alignClasses[effectiveAlign] : ''\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","effectiveAlign","alignClass","justifyClass","classes","combinedStyle","jsx","childArray","React","result","child","index"],"mappings":";;AAcA,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,IAAiBV,MAAUF,MAAc,aAAa,UAAU,SAChEa,IAAaD,IAAiBf,EAAae,CAAc,IAAI,IAC7DE,IAAeX,IAAUL,EAAeK,CAAO,IAAI,IAInDY,IAAU;AAAA,IACd;AAAA,IAHqBf,MAAc,eAAe,aAAa;AAAA,IAK/DW;AAAA,IACAE;AAAA,IACAC;AAAA,IARgBV,IAAO,cAAc;AAAA,IAUrCE;AAAA,EAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG,GAEpBU,IAAqC;AAAA,IACzC,GAAGT;AAAA,IACH,GAAIG,IAAgB,EAAE,KAAK,GAAGT,CAAI,SAAS,CAAA;AAAA,EAAC;AAwB9C,SAAO,gBAAAgB,EAAC,SAAI,WAAWF,GAAS,OAAOC,GAAgB,GAAGP,GAAO,WApB1C,MAAM;AAC3B,QAAI,CAACJ,EAAO,QAAOG;AAEnB,UAAMU,IAAaC,EAAM,SAAS,QAAQX,CAAQ,EAAE,OAAO,OAAO;AAClE,QAAIU,EAAW,UAAU,EAAG,QAAOV;AAEnC,UAAMY,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,UAAAf,KADQ,SAASiB,CAAK,EAEzB;AAAA,MAAA;AAAA,IAGN,CAAC,GACMF;AAAA,EACT,GAEiE,EAAe,CAAE;AACpF;"}
|
|
@@ -11,6 +11,7 @@ export interface SplitterPanelProps {
|
|
|
11
11
|
onCollapse?: (collapsed: boolean) => void;
|
|
12
12
|
resizable?: boolean;
|
|
13
13
|
className?: string;
|
|
14
|
+
'data-testid'?: string;
|
|
14
15
|
}
|
|
15
16
|
export interface SplitterProps {
|
|
16
17
|
children: React.ReactNode;
|
|
@@ -21,6 +22,7 @@ export interface SplitterProps {
|
|
|
21
22
|
gutterSize?: number;
|
|
22
23
|
minSize?: number;
|
|
23
24
|
className?: string;
|
|
25
|
+
'data-testid'?: string;
|
|
24
26
|
}
|
|
25
27
|
declare const Panel: React.FC<SplitterPanelProps>;
|
|
26
28
|
export declare const Splitter: React.FC<SplitterProps> & {
|
|
@@ -1,177 +1,181 @@
|
|
|
1
|
-
import { jsx as h, jsxs as
|
|
2
|
-
import
|
|
3
|
-
const
|
|
4
|
-
children:
|
|
5
|
-
direction:
|
|
1
|
+
import { jsx as h, jsxs as F, Fragment as ue } from "react/jsx-runtime";
|
|
2
|
+
import W, { useRef as E, useState as Z, useCallback as y, useEffect as I } from "react";
|
|
3
|
+
const de = ({ children: D }) => /* @__PURE__ */ h(ue, { children: D }), fe = ({
|
|
4
|
+
children: D,
|
|
5
|
+
direction: b = "horizontal",
|
|
6
6
|
sizes: P,
|
|
7
|
-
defaultSizes:
|
|
8
|
-
onSizesChange:
|
|
7
|
+
defaultSizes: N,
|
|
8
|
+
onSizesChange: X,
|
|
9
9
|
gutterSize: R = 8,
|
|
10
|
-
minSize:
|
|
11
|
-
className:
|
|
10
|
+
minSize: j = 50,
|
|
11
|
+
className: ee = "",
|
|
12
|
+
"data-testid": A
|
|
12
13
|
}) => {
|
|
13
|
-
const
|
|
14
|
-
(e) =>
|
|
15
|
-
), m = u.length, [
|
|
14
|
+
const x = E(null), te = E([]), L = E(null), u = W.Children.toArray(D).filter(
|
|
15
|
+
(e) => W.isValidElement(e)
|
|
16
|
+
), m = u.length, [d, Y] = Z(
|
|
16
17
|
() => u.map((e) => e.props.defaultCollapsed ?? e.props.collapsed ?? !1)
|
|
17
|
-
),
|
|
18
|
-
const e = u.map((
|
|
19
|
-
if (
|
|
20
|
-
return
|
|
21
|
-
if (
|
|
22
|
-
const
|
|
23
|
-
return e.map((
|
|
18
|
+
), _ = E([]), T = y(() => {
|
|
19
|
+
const e = u.map((n) => n.props.defaultSize), t = e.some((n) => n !== void 0);
|
|
20
|
+
if (N && N.length === m)
|
|
21
|
+
return N;
|
|
22
|
+
if (t) {
|
|
23
|
+
const n = e.reduce((s, o) => s + (o ?? 0), 0), r = e.filter((s) => s === void 0).length, c = Math.max(0, 100 - n), l = r > 0 ? c / r : 0;
|
|
24
|
+
return e.map((s) => s ?? l);
|
|
24
25
|
}
|
|
25
|
-
const
|
|
26
|
-
return Array(m).fill(
|
|
27
|
-
}, [
|
|
28
|
-
const e = u.map((
|
|
29
|
-
if (!e.some((
|
|
30
|
-
const
|
|
31
|
-
return e.map((
|
|
32
|
-
}, [u,
|
|
33
|
-
|
|
34
|
-
!P &&
|
|
35
|
-
}, [m, P,
|
|
26
|
+
const a = 100 / m;
|
|
27
|
+
return Array(m).fill(a);
|
|
28
|
+
}, [N, m, u]), [$, q] = Z(T), oe = y(() => {
|
|
29
|
+
const e = u.map((l) => l.props.size);
|
|
30
|
+
if (!e.some((l) => l !== void 0)) return null;
|
|
31
|
+
const a = e.reduce((l, s) => l + (s ?? 0), 0), n = e.filter((l) => l === void 0).length, r = Math.max(0, 100 - a), c = n > 0 ? r / n : 0;
|
|
32
|
+
return e.map((l, s) => l ?? $[s] ?? c);
|
|
33
|
+
}, [u, $]), f = P || oe() || $;
|
|
34
|
+
I(() => {
|
|
35
|
+
!P && $.length !== m && q(T());
|
|
36
|
+
}, [m, P, $.length, T]), I(() => {
|
|
36
37
|
const e = u.map(
|
|
37
|
-
(
|
|
38
|
+
(a, n) => a.props.collapsed ?? d[n] ?? !1
|
|
38
39
|
);
|
|
39
|
-
e.some((
|
|
40
|
+
e.some((a, n) => a !== d[n]) && Y(e);
|
|
40
41
|
}, [u.map((e) => e.props.collapsed).join(",")]);
|
|
41
|
-
const
|
|
42
|
+
const v = y(
|
|
42
43
|
(e) => {
|
|
43
|
-
P ||
|
|
44
|
+
P || q(e), X?.(e);
|
|
44
45
|
},
|
|
45
|
-
[P,
|
|
46
|
-
),
|
|
46
|
+
[P, X]
|
|
47
|
+
), G = y(
|
|
47
48
|
(e) => {
|
|
48
|
-
const
|
|
49
|
-
if (!
|
|
50
|
-
const
|
|
51
|
-
if (r[e] =
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
if (
|
|
55
|
-
const
|
|
56
|
-
|
|
49
|
+
const t = u[e];
|
|
50
|
+
if (!t?.props.collapsible) return;
|
|
51
|
+
const n = !d[e], r = [...d];
|
|
52
|
+
if (r[e] = n, Y(r), t.props.onCollapse?.(n), n) {
|
|
53
|
+
_.current = [...f];
|
|
54
|
+
const c = 0, l = f[e] - c, s = f.map((o, i) => ({ size: o, index: i })).filter((o, i) => i !== e && !r[i]);
|
|
55
|
+
if (s.length > 0) {
|
|
56
|
+
const o = l / s.length, i = f.map((p, z) => z === e ? c : r[z] ? p : p + o);
|
|
57
|
+
v(i);
|
|
57
58
|
}
|
|
58
59
|
} else {
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
61
|
-
const
|
|
62
|
-
if (p === e) return
|
|
60
|
+
const c = _.current[e] || 100 / m, s = f.map((o, i) => ({ size: o, index: i })).filter((o, i) => i !== e && !r[i]).reduce((o, i) => o + i.size, 0);
|
|
61
|
+
if (s > 0) {
|
|
62
|
+
const o = f.map((i, p) => {
|
|
63
|
+
if (p === e) return c;
|
|
63
64
|
if (!r[p]) {
|
|
64
|
-
const
|
|
65
|
-
return
|
|
65
|
+
const z = i / s;
|
|
66
|
+
return i - c * z;
|
|
66
67
|
}
|
|
67
|
-
return
|
|
68
|
+
return i;
|
|
68
69
|
});
|
|
69
|
-
|
|
70
|
+
v(o);
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
},
|
|
73
|
-
[u,
|
|
74
|
-
),
|
|
75
|
-
(e,
|
|
76
|
-
const
|
|
77
|
-
if (
|
|
74
|
+
[u, d, f, m, v]
|
|
75
|
+
), ne = y(
|
|
76
|
+
(e, t) => {
|
|
77
|
+
const a = u[e]?.props || {}, n = u[e + 1]?.props || {};
|
|
78
|
+
if (a.resizable === !1 || n.resizable === !1 || d[e] || d[e + 1])
|
|
78
79
|
return;
|
|
79
|
-
|
|
80
|
-
const r =
|
|
81
|
-
|
|
80
|
+
t.preventDefault();
|
|
81
|
+
const r = b === "horizontal" ? t.clientX : t.clientY;
|
|
82
|
+
L.current = {
|
|
82
83
|
index: e,
|
|
83
84
|
startPos: r,
|
|
84
|
-
startSizes: [...
|
|
85
|
+
startSizes: [...f]
|
|
85
86
|
};
|
|
86
|
-
const
|
|
87
|
-
if (!
|
|
88
|
-
const { index:
|
|
89
|
-
let
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
if (
|
|
93
|
-
const S =
|
|
94
|
-
|
|
87
|
+
const c = (s) => {
|
|
88
|
+
if (!L.current || !x.current) return;
|
|
89
|
+
const { index: o, startPos: i, startSizes: p } = L.current, z = x.current.getBoundingClientRect(), le = b === "horizontal" ? z.width : z.height, ae = b === "horizontal" ? s.clientX : s.clientY, ce = (m - 1) * R, k = le - ce, H = (ae - i) / k * 100, O = u[o]?.props || {}, V = u[o + 1]?.props || {}, ie = O.minSize ?? j, pe = V.minSize ?? j, B = ie / k * 100, U = pe / k * 100;
|
|
90
|
+
let w = p[o] + H, C = p[o + 1] - H;
|
|
91
|
+
w < B && (w = B, C = p[o] + p[o + 1] - B), C < U && (C = U, w = p[o] + p[o + 1] - U);
|
|
92
|
+
const J = O.maxSize, Q = V.maxSize;
|
|
93
|
+
if (J) {
|
|
94
|
+
const S = J / k * 100;
|
|
95
|
+
w > S && (w = S, C = p[o] + p[o + 1] - S);
|
|
95
96
|
}
|
|
96
|
-
if (
|
|
97
|
-
const S =
|
|
98
|
-
C > S && (C = S,
|
|
97
|
+
if (Q) {
|
|
98
|
+
const S = Q / k * 100;
|
|
99
|
+
C > S && (C = S, w = p[o] + p[o + 1] - S);
|
|
99
100
|
}
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
-
|
|
101
|
+
const K = [...p];
|
|
102
|
+
K[o] = w, K[o + 1] = C, v(K);
|
|
103
|
+
}, l = () => {
|
|
104
|
+
L.current = null, document.removeEventListener("mousemove", c), document.removeEventListener("mouseup", l), document.body.style.cursor = "", document.body.style.userSelect = "";
|
|
104
105
|
};
|
|
105
|
-
document.addEventListener("mousemove",
|
|
106
|
+
document.addEventListener("mousemove", c), document.addEventListener("mouseup", l), document.body.style.cursor = b === "horizontal" ? "col-resize" : "row-resize", document.body.style.userSelect = "none";
|
|
106
107
|
},
|
|
107
|
-
[
|
|
108
|
-
),
|
|
109
|
-
(e,
|
|
110
|
-
if (
|
|
108
|
+
[b, f, m, R, u, j, v, d]
|
|
109
|
+
), se = y(
|
|
110
|
+
(e, t) => {
|
|
111
|
+
if (d[e] || d[e + 1])
|
|
111
112
|
return;
|
|
112
|
-
const
|
|
113
|
-
let
|
|
114
|
-
if (
|
|
115
|
-
|
|
116
|
-
const r = [...
|
|
117
|
-
let
|
|
118
|
-
|
|
113
|
+
const a = t.shiftKey ? 10 : 1;
|
|
114
|
+
let n = 0;
|
|
115
|
+
if (b === "horizontal" ? t.key === "ArrowLeft" ? n = -a : t.key === "ArrowRight" && (n = a) : t.key === "ArrowUp" ? n = -a : t.key === "ArrowDown" && (n = a), n !== 0) {
|
|
116
|
+
t.preventDefault();
|
|
117
|
+
const r = [...f], c = 5;
|
|
118
|
+
let l = r[e] + n, s = r[e + 1] - n;
|
|
119
|
+
l >= c && s >= c && (r[e] = l, r[e + 1] = s, v(r));
|
|
119
120
|
}
|
|
120
121
|
},
|
|
121
|
-
[
|
|
122
|
-
), g =
|
|
123
|
-
const
|
|
122
|
+
[b, f, v, d]
|
|
123
|
+
), g = b === "horizontal", re = (e) => {
|
|
124
|
+
const t = u[e], a = u[e + 1], n = t?.props.collapsible, r = a?.props.collapsible, c = d[e], l = d[e + 1];
|
|
124
125
|
return {
|
|
125
|
-
showStart:
|
|
126
|
-
showEnd: r && !
|
|
127
|
-
panel1Collapsed:
|
|
128
|
-
panel2Collapsed:
|
|
126
|
+
showStart: n && !l,
|
|
127
|
+
showEnd: r && !c,
|
|
128
|
+
panel1Collapsed: c,
|
|
129
|
+
panel2Collapsed: l
|
|
129
130
|
};
|
|
130
|
-
};
|
|
131
|
+
}, M = (e) => A ? `${A}-${e}` : void 0;
|
|
131
132
|
return /* @__PURE__ */ h(
|
|
132
133
|
"div",
|
|
133
134
|
{
|
|
134
|
-
ref:
|
|
135
|
-
className: `flex ${g ? "flex-row" : "flex-col"} h-full w-full ${
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
ref: x,
|
|
136
|
+
className: `flex ${g ? "flex-row" : "flex-col"} h-full w-full ${ee}`,
|
|
137
|
+
"data-testid": A,
|
|
138
|
+
children: u.map((e, t) => {
|
|
139
|
+
const a = e.props, n = t === u.length - 1, r = d[t], c = a.resizable !== !1 && !r, l = a["data-testid"] ?? M(`panel-${t}`);
|
|
140
|
+
return /* @__PURE__ */ F(W.Fragment, { children: [
|
|
139
141
|
/* @__PURE__ */ h(
|
|
140
142
|
"div",
|
|
141
143
|
{
|
|
142
|
-
ref: (
|
|
143
|
-
|
|
144
|
+
ref: (s) => {
|
|
145
|
+
te.current[t] = s;
|
|
144
146
|
},
|
|
145
|
-
className: `overflow-auto ${
|
|
147
|
+
className: `overflow-auto ${a.className || ""}`,
|
|
146
148
|
style: {
|
|
147
|
-
[g ? "width" : "height"]: r ? "0px" : `calc(${
|
|
149
|
+
[g ? "width" : "height"]: r ? "0px" : `calc(${f[t]}% - ${(m - 1) * R / m}px)`,
|
|
148
150
|
flexShrink: 0,
|
|
149
151
|
overflow: r ? "hidden" : "auto"
|
|
150
152
|
},
|
|
151
153
|
"data-collapsed": r,
|
|
152
|
-
|
|
154
|
+
"data-testid": l,
|
|
155
|
+
children: a.children
|
|
153
156
|
}
|
|
154
157
|
),
|
|
155
|
-
!
|
|
158
|
+
!n && /* @__PURE__ */ h(
|
|
156
159
|
"div",
|
|
157
160
|
{
|
|
158
161
|
role: "separator",
|
|
159
162
|
"aria-orientation": g ? "vertical" : "horizontal",
|
|
160
|
-
"aria-valuenow": Math.round(
|
|
161
|
-
tabIndex:
|
|
163
|
+
"aria-valuenow": Math.round(f[t]),
|
|
164
|
+
tabIndex: c ? 0 : -1,
|
|
162
165
|
className: `
|
|
163
166
|
flex-shrink-0 bg-base-300 transition-colors duration-150 relative group
|
|
164
|
-
${
|
|
165
|
-
${
|
|
167
|
+
${c ? "hover:bg-primary/30 active:bg-primary/50" : ""}
|
|
168
|
+
${c ? g ? "cursor-col-resize" : "cursor-row-resize" : "cursor-default"}
|
|
166
169
|
`,
|
|
167
170
|
style: {
|
|
168
171
|
[g ? "width" : "height"]: `${R}px`
|
|
169
172
|
},
|
|
170
|
-
|
|
171
|
-
|
|
173
|
+
"data-testid": M(`gutter-${t}`),
|
|
174
|
+
onMouseDown: (s) => ne(t, s),
|
|
175
|
+
onKeyDown: (s) => se(t, s),
|
|
172
176
|
children: (() => {
|
|
173
|
-
const { showStart:
|
|
174
|
-
return !
|
|
177
|
+
const { showStart: s, showEnd: o, panel1Collapsed: i, panel2Collapsed: p } = re(t);
|
|
178
|
+
return !s && !o ? /* @__PURE__ */ F(
|
|
175
179
|
"div",
|
|
176
180
|
{
|
|
177
181
|
className: `
|
|
@@ -184,7 +188,7 @@ const pe = ({ children: M }) => /* @__PURE__ */ h(ie, { children: M }), ue = ({
|
|
|
184
188
|
/* @__PURE__ */ h("div", { className: "w-1 h-1 rounded-full bg-base-content/30 group-hover:bg-primary/60" })
|
|
185
189
|
]
|
|
186
190
|
}
|
|
187
|
-
) : /* @__PURE__ */
|
|
191
|
+
) : /* @__PURE__ */ F(
|
|
188
192
|
"div",
|
|
189
193
|
{
|
|
190
194
|
className: `
|
|
@@ -192,22 +196,23 @@ const pe = ({ children: M }) => /* @__PURE__ */ h(ie, { children: M }), ue = ({
|
|
|
192
196
|
${g ? "flex-col" : "flex-row"}
|
|
193
197
|
`,
|
|
194
198
|
children: [
|
|
195
|
-
|
|
199
|
+
s && /* @__PURE__ */ h(
|
|
196
200
|
"button",
|
|
197
201
|
{
|
|
198
202
|
type: "button",
|
|
199
|
-
onClick: (
|
|
200
|
-
|
|
203
|
+
onClick: (z) => {
|
|
204
|
+
z.stopPropagation(), G(t);
|
|
201
205
|
},
|
|
202
206
|
className: `
|
|
203
207
|
p-0.5 rounded hover:bg-base-content/20 transition-colors
|
|
204
208
|
|
|
205
209
|
`,
|
|
206
|
-
"aria-label":
|
|
210
|
+
"aria-label": i ? "Expand panel" : "Collapse panel",
|
|
211
|
+
"data-testid": M(`collapse-${t}`),
|
|
207
212
|
children: /* @__PURE__ */ h(
|
|
208
213
|
"svg",
|
|
209
214
|
{
|
|
210
|
-
className: `w-3 h-3 text-base-content/50 hover:text-base-content transition-transform ${
|
|
215
|
+
className: `w-3 h-3 text-base-content/50 hover:text-base-content transition-transform ${i ? g ? "rotate-180" : "-rotate-90" : g ? "rotate-0" : "rotate-90"}`,
|
|
211
216
|
fill: "none",
|
|
212
217
|
viewBox: "0 0 24 24",
|
|
213
218
|
stroke: "currentColor",
|
|
@@ -216,19 +221,20 @@ const pe = ({ children: M }) => /* @__PURE__ */ h(ie, { children: M }), ue = ({
|
|
|
216
221
|
)
|
|
217
222
|
}
|
|
218
223
|
),
|
|
219
|
-
|
|
224
|
+
o && /* @__PURE__ */ h(
|
|
220
225
|
"button",
|
|
221
226
|
{
|
|
222
227
|
type: "button",
|
|
223
|
-
onClick: (
|
|
224
|
-
|
|
228
|
+
onClick: (z) => {
|
|
229
|
+
z.stopPropagation(), G(t + 1);
|
|
225
230
|
},
|
|
226
231
|
className: "p-0.5 rounded hover:bg-base-content/20 transition-colors",
|
|
227
|
-
"aria-label":
|
|
232
|
+
"aria-label": p ? "Expand panel" : "Collapse panel",
|
|
233
|
+
"data-testid": M(`collapse-${t + 1}`),
|
|
228
234
|
children: /* @__PURE__ */ h(
|
|
229
235
|
"svg",
|
|
230
236
|
{
|
|
231
|
-
className: `w-3 h-3 text-base-content/50 hover:text-base-content transition-transform ${
|
|
237
|
+
className: `w-3 h-3 text-base-content/50 hover:text-base-content transition-transform ${p ? g ? "rotate-0" : "rotate-90" : g ? "rotate-180" : "-rotate-90"}`,
|
|
232
238
|
fill: "none",
|
|
233
239
|
viewBox: "0 0 24 24",
|
|
234
240
|
stroke: "currentColor",
|
|
@@ -243,13 +249,13 @@ const pe = ({ children: M }) => /* @__PURE__ */ h(ie, { children: M }), ue = ({
|
|
|
243
249
|
})()
|
|
244
250
|
}
|
|
245
251
|
)
|
|
246
|
-
] },
|
|
252
|
+
] }, t);
|
|
247
253
|
})
|
|
248
254
|
}
|
|
249
255
|
);
|
|
250
256
|
};
|
|
251
|
-
|
|
257
|
+
fe.Panel = de;
|
|
252
258
|
export {
|
|
253
|
-
|
|
259
|
+
fe as Splitter
|
|
254
260
|
};
|
|
255
261
|
//# sourceMappingURL=Splitter.js.map
|