asterui 0.12.43 → 0.12.45
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/ContextMenu.d.ts +4 -4
- package/dist/components/ContextMenu.js +96 -89
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/Dropdown.d.ts +7 -6
- package/dist/components/Dropdown.js +192 -186
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/Menu.d.ts +7 -5
- package/dist/components/Menu.js +106 -99
- package/dist/components/Menu.js.map +1 -1
- package/dist/components/Message.d.ts +20 -0
- package/dist/components/Message.js +56 -0
- package/dist/components/Message.js.map +1 -0
- package/dist/components/Notification.d.ts +8 -1
- package/dist/components/Notification.js +84 -60
- package/dist/components/Notification.js.map +1 -1
- package/dist/components/Tabs.d.ts +0 -2
- package/dist/components/Tabs.js +46 -43
- package/dist/components/Tabs.js.map +1 -1
- package/dist/components/Tour.d.ts +71 -9
- package/dist/components/Tour.js +361 -198
- package/dist/components/Tour.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +120 -117
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tour.js","sources":["../../src/components/Tour.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef } from 'react'\nimport { createPortal } from 'react-dom'\n\nexport type TourPlacement =\n | 'top'\n | 'topLeft'\n | 'topRight'\n | 'bottom'\n | 'bottomLeft'\n | 'bottomRight'\n | 'left'\n | 'leftTop'\n | 'leftBottom'\n | 'right'\n | 'rightTop'\n | 'rightBottom'\n | 'center'\n\nexport interface TourStepProps {\n /** Target element ref or function returning element */\n target?: React.RefObject<HTMLElement | null> | (() => HTMLElement | null) | null\n /** Step title */\n title: React.ReactNode\n /** Step description */\n description?: React.ReactNode\n /** Cover image or content above title */\n cover?: React.ReactNode\n /** Placement of popover relative to target */\n placement?: TourPlacement\n /** Custom class for this step's popover */\n className?: string\n /** Called when this step becomes active */\n onOpen?: () => void\n /** Called when leaving this step */\n onClose?: () => void\n}\n\nexport interface TourProps {\n /** Whether tour is visible */\n open?: boolean\n /** Callback when tour closes */\n onClose?: () => void\n /** Callback when tour finishes (last step completed) */\n onFinish?: () => void\n /** Tour steps */\n steps: TourStepProps[]\n /** Current step (controlled) */\n current?: number\n /** Callback when step changes */\n onChange?: (current: number) => void\n /** Show mask overlay */\n mask?: boolean\n /** Type affects styling */\n type?: 'default' | 'primary'\n /** Gap between highlight and target [radius, offset] or single number */\n gap?: number | [number, number]\n /** Text for prev button */\n prevButtonText?: React.ReactNode\n /** Text for next button */\n nextButtonText?: React.ReactNode\n /** Text for finish button */\n finishButtonText?: React.ReactNode\n /** Text for skip button */\n skipButtonText?: React.ReactNode\n /** Show skip button */\n showSkip?: boolean\n /** Show step indicators */\n showIndicators?: boolean\n /** Close on mask click */\n closeOnMaskClick?: boolean\n /** Close on escape key */\n closeOnEscape?: boolean\n /** Scroll target into view */\n scrollIntoView?: boolean\n /** Z-index for tour overlay */\n zIndex?: number\n}\n\nconst getTargetElement = (\n target: TourStepProps['target']\n): HTMLElement | null => {\n if (!target) return null\n if (typeof target === 'function') return target()\n return target.current\n}\n\nconst getPopoverPosition = (\n targetRect: DOMRect | null,\n placement: TourPlacement,\n popoverRect: DOMRect,\n gap: number\n): { top: number; left: number } => {\n if (!targetRect || placement === 'center') {\n return {\n top: window.innerHeight / 2 - popoverRect.height / 2,\n left: window.innerWidth / 2 - popoverRect.width / 2,\n }\n }\n\n const scrollY = window.scrollY\n const scrollX = window.scrollX\n\n const positions: Record<TourPlacement, { top: number; left: number }> = {\n top: {\n top: targetRect.top + scrollY - popoverRect.height - gap,\n left: targetRect.left + scrollX + targetRect.width / 2 - popoverRect.width / 2,\n },\n topLeft: {\n top: targetRect.top + scrollY - popoverRect.height - gap,\n left: targetRect.left + scrollX,\n },\n topRight: {\n top: targetRect.top + scrollY - popoverRect.height - gap,\n left: targetRect.right + scrollX - popoverRect.width,\n },\n bottom: {\n top: targetRect.bottom + scrollY + gap,\n left: targetRect.left + scrollX + targetRect.width / 2 - popoverRect.width / 2,\n },\n bottomLeft: {\n top: targetRect.bottom + scrollY + gap,\n left: targetRect.left + scrollX,\n },\n bottomRight: {\n top: targetRect.bottom + scrollY + gap,\n left: targetRect.right + scrollX - popoverRect.width,\n },\n left: {\n top: targetRect.top + scrollY + targetRect.height / 2 - popoverRect.height / 2,\n left: targetRect.left + scrollX - popoverRect.width - gap,\n },\n leftTop: {\n top: targetRect.top + scrollY,\n left: targetRect.left + scrollX - popoverRect.width - gap,\n },\n leftBottom: {\n top: targetRect.bottom + scrollY - popoverRect.height,\n left: targetRect.left + scrollX - popoverRect.width - gap,\n },\n right: {\n top: targetRect.top + scrollY + targetRect.height / 2 - popoverRect.height / 2,\n left: targetRect.right + scrollX + gap,\n },\n rightTop: {\n top: targetRect.top + scrollY,\n left: targetRect.right + scrollX + gap,\n },\n rightBottom: {\n top: targetRect.bottom + scrollY - popoverRect.height,\n left: targetRect.right + scrollX + gap,\n },\n center: {\n top: window.innerHeight / 2 - popoverRect.height / 2,\n left: window.innerWidth / 2 - popoverRect.width / 2,\n },\n }\n\n return positions[placement]\n}\n\nexport const Tour: React.FC<TourProps> = ({\n open = false,\n onClose,\n onFinish,\n steps,\n current: controlledCurrent,\n onChange,\n mask = true,\n type = 'default',\n gap = 8,\n prevButtonText = 'Previous',\n nextButtonText = 'Next',\n finishButtonText = 'Finish',\n skipButtonText = 'Skip',\n showSkip = true,\n showIndicators = true,\n closeOnMaskClick = true,\n closeOnEscape = true,\n scrollIntoView = true,\n zIndex = 1000,\n}) => {\n const [internalCurrent, setInternalCurrent] = useState(0)\n const [targetRect, setTargetRect] = useState<DOMRect | null>(null)\n const [popoverPosition, setPopoverPosition] = useState({ top: 0, left: 0 })\n const popoverRef = useRef<HTMLDivElement>(null)\n\n const isControlled = controlledCurrent !== undefined\n const currentStep = isControlled ? controlledCurrent : internalCurrent\n const step = steps[currentStep]\n\n const gapRadius = Array.isArray(gap) ? gap[0] : gap\n const gapOffset = Array.isArray(gap) ? gap[1] : gap\n\n const updatePosition = useCallback(() => {\n if (!step) return\n\n const target = getTargetElement(step.target)\n const rect = target?.getBoundingClientRect() ?? null\n setTargetRect(rect)\n\n if (popoverRef.current) {\n const popoverRect = popoverRef.current.getBoundingClientRect()\n const placement = step.placement ?? 'bottom'\n const pos = getPopoverPosition(rect, placement, popoverRect, gapOffset + gapRadius)\n setPopoverPosition(pos)\n }\n }, [step, gapOffset, gapRadius])\n\n const goToStep = useCallback(\n (stepIndex: number) => {\n if (stepIndex < 0 || stepIndex >= steps.length) return\n\n // Call onClose for current step\n steps[currentStep]?.onClose?.()\n\n if (!isControlled) {\n setInternalCurrent(stepIndex)\n }\n onChange?.(stepIndex)\n\n // Call onOpen for new step\n steps[stepIndex]?.onOpen?.()\n },\n [steps, currentStep, isControlled, onChange]\n )\n\n const handlePrev = useCallback(() => {\n goToStep(currentStep - 1)\n }, [currentStep, goToStep])\n\n const handleNext = useCallback(() => {\n if (currentStep === steps.length - 1) {\n onFinish?.()\n onClose?.()\n } else {\n goToStep(currentStep + 1)\n }\n }, [currentStep, steps.length, goToStep, onFinish, onClose])\n\n const handleSkip = useCallback(() => {\n onClose?.()\n }, [onClose])\n\n const handleMaskClick = useCallback(() => {\n if (closeOnMaskClick) {\n onClose?.()\n }\n }, [closeOnMaskClick, onClose])\n\n // Reset to first step when opening\n useEffect(() => {\n if (open && !isControlled) {\n setInternalCurrent(0)\n }\n }, [open, isControlled])\n\n // Update position on step change or open\n useEffect(() => {\n if (!open) return\n\n updatePosition()\n\n // Scroll target into view\n if (scrollIntoView && step?.target) {\n const target = getTargetElement(step.target)\n target?.scrollIntoView({ behavior: 'smooth', block: 'center' })\n }\n\n // Call onOpen for first step\n if (currentStep === 0) {\n step?.onOpen?.()\n }\n }, [open, currentStep, step, scrollIntoView, updatePosition])\n\n // Update position on resize/scroll\n useEffect(() => {\n if (!open) return\n\n const handleUpdate = () => updatePosition()\n window.addEventListener('resize', handleUpdate)\n window.addEventListener('scroll', handleUpdate, true)\n\n // Initial position after popover renders\n requestAnimationFrame(updatePosition)\n\n return () => {\n window.removeEventListener('resize', handleUpdate)\n window.removeEventListener('scroll', handleUpdate, true)\n }\n }, [open, updatePosition])\n\n // Keyboard handling\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onClose?.()\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n handleNext()\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n handlePrev()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [open, closeOnEscape, onClose, handleNext, handlePrev])\n\n if (!open || !step) return null\n\n const isFirstStep = currentStep === 0\n const isLastStep = currentStep === steps.length - 1\n\n const content = (\n <div\n className=\"fixed inset-0\"\n style={{ zIndex }}\n data-testid=\"tour\"\n role=\"dialog\"\n aria-modal=\"true\"\n >\n {/* Mask overlay with spotlight cutout */}\n {mask && (\n <svg\n className=\"absolute inset-0 w-full h-full pointer-events-auto\"\n onClick={handleMaskClick}\n style={{ zIndex }}\n >\n <defs>\n <mask id=\"tour-mask\">\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"white\" />\n {targetRect && (\n <rect\n x={targetRect.left - gapRadius}\n y={targetRect.top - gapRadius}\n width={targetRect.width + gapRadius * 2}\n height={targetRect.height + gapRadius * 2}\n rx={gapRadius}\n fill=\"black\"\n />\n )}\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill=\"rgba(0, 0, 0, 0.5)\"\n mask=\"url(#tour-mask)\"\n />\n </svg>\n )}\n\n {/* Popover */}\n <div\n ref={popoverRef}\n className={`absolute bg-base-100 rounded-lg shadow-xl border border-base-300 max-w-sm ${step.className ?? ''}`}\n style={{\n top: popoverPosition.top,\n left: popoverPosition.left,\n zIndex: zIndex + 1,\n }}\n onClick={(e) => e.stopPropagation()}\n data-testid=\"tour-popover\"\n >\n {/* Cover */}\n {step.cover && (\n <div className=\"rounded-t-lg overflow-hidden\">{step.cover}</div>\n )}\n\n {/* Content */}\n <div className=\"p-4\">\n <h3 className=\"font-semibold text-lg mb-1\">{step.title}</h3>\n {step.description && (\n <p className=\"text-base-content/70 text-sm mb-4\">{step.description}</p>\n )}\n\n {/* Indicators */}\n {showIndicators && steps.length > 1 && (\n <div className=\"flex gap-1 mb-4\">\n {steps.map((_, index) => (\n <button\n key={index}\n className={`w-2 h-2 rounded-full transition-colors ${\n index === currentStep\n ? 'bg-primary'\n : 'bg-base-300 hover:bg-base-content/30'\n }`}\n onClick={() => goToStep(index)}\n aria-label={`Go to step ${index + 1}`}\n />\n ))}\n </div>\n )}\n\n {/* Navigation */}\n <div className=\"flex items-center justify-between gap-2\">\n <div>\n {showSkip && !isLastStep && (\n <button\n className=\"btn btn-ghost btn-sm\"\n onClick={handleSkip}\n data-testid=\"tour-skip\"\n >\n {skipButtonText}\n </button>\n )}\n </div>\n <div className=\"flex gap-2\">\n {!isFirstStep && (\n <button\n className=\"btn btn-ghost btn-sm\"\n onClick={handlePrev}\n data-testid=\"tour-prev\"\n >\n {prevButtonText}\n </button>\n )}\n <button\n className={`btn btn-sm ${type === 'primary' ? 'btn-primary' : ''}`}\n onClick={handleNext}\n data-testid=\"tour-next\"\n >\n {isLastStep ? finishButtonText : nextButtonText}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n\n return createPortal(content, document.body)\n}\n"],"names":["getTargetElement","target","getPopoverPosition","targetRect","placement","popoverRect","gap","scrollY","scrollX","Tour","open","onClose","onFinish","steps","controlledCurrent","onChange","mask","type","prevButtonText","nextButtonText","finishButtonText","skipButtonText","showSkip","showIndicators","closeOnMaskClick","closeOnEscape","scrollIntoView","zIndex","internalCurrent","setInternalCurrent","useState","setTargetRect","popoverPosition","setPopoverPosition","popoverRef","useRef","isControlled","currentStep","step","gapRadius","gapOffset","updatePosition","useCallback","rect","pos","goToStep","stepIndex","handlePrev","handleNext","handleSkip","handleMaskClick","useEffect","handleUpdate","handleKeyDown","e","isFirstStep","isLastStep","content","jsxs","jsx","_","index","createPortal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tour.js","sources":["../../src/components/Tour.tsx"],"sourcesContent":["import React, {\n useState,\n useEffect,\n useCallback,\n useRef,\n forwardRef,\n useImperativeHandle,\n} from 'react'\nimport { createPortal } from 'react-dom'\n\nexport type TourPlacement =\n | 'top'\n | 'topLeft'\n | 'topRight'\n | 'bottom'\n | 'bottomLeft'\n | 'bottomRight'\n | 'left'\n | 'leftTop'\n | 'leftBottom'\n | 'right'\n | 'rightTop'\n | 'rightBottom'\n | 'center'\n\nexport type TourType = 'default' | 'primary'\n\nexport interface TourArrowConfig {\n pointAtCenter?: boolean\n}\n\nexport interface TourMaskConfig {\n style?: React.CSSProperties\n color?: string\n}\n\nexport interface TourButtonProps {\n children?: React.ReactNode\n onClick?: () => void\n}\n\nexport interface TourStepProps {\n /** Target element ref or function returning element */\n target?: React.RefObject<HTMLElement | null> | (() => HTMLElement | null) | null\n /** Step title */\n title: React.ReactNode\n /** Step description */\n description?: React.ReactNode\n /** Cover image or content above title */\n cover?: React.ReactNode\n /** Placement of popover relative to target */\n placement?: TourPlacement\n /** Whether to show arrow (overrides Tour setting) */\n arrow?: boolean | TourArrowConfig\n /** Custom close icon for this step */\n closeIcon?: React.ReactNode\n /** Show mask overlay (overrides Tour setting) */\n mask?: boolean | TourMaskConfig\n /** Type affects styling (overrides Tour setting) */\n type?: TourType\n /** Scroll into view options (overrides Tour setting) */\n scrollIntoViewOptions?: boolean | ScrollIntoViewOptions\n /** Next button props */\n nextButtonProps?: TourButtonProps\n /** Previous button props */\n prevButtonProps?: TourButtonProps\n /** Custom class for this step's popover */\n className?: string\n /** Custom style for this step's popover */\n style?: React.CSSProperties\n /** Called when this step becomes active */\n onClose?: () => void\n}\n\nexport type TourSemanticName = 'root' | 'mask' | 'popover' | 'header' | 'content' | 'footer' | 'indicator' | 'close'\n\nexport interface TourActionInfo {\n current: number\n total: number\n}\n\nexport interface TourRef {\n /** Go to a specific step */\n goTo: (step: number) => void\n /** Go to the next step */\n next: () => void\n /** Go to the previous step */\n prev: () => void\n /** Close the tour */\n close: () => void\n}\n\nexport interface TourProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Whether tour is visible */\n open?: boolean\n /** Callback when tour closes */\n onClose?: () => void\n /** Callback when tour finishes (last step completed) */\n onFinish?: () => void\n /** Tour steps */\n steps: TourStepProps[]\n /** Current step (controlled) */\n current?: number\n /** Callback when step changes */\n onChange?: (current: number) => void\n /** Whether to show arrow on popover */\n arrow?: boolean | TourArrowConfig\n /** Custom close icon */\n closeIcon?: React.ReactNode\n /** Show mask overlay */\n mask?: boolean | TourMaskConfig\n /** Disable interaction on highlighted area */\n disabledInteraction?: boolean\n /** Type affects styling */\n type?: TourType\n /** Gap between highlight and target */\n gap?: { offset?: number | [number, number]; radius?: number }\n /** Text for prev button */\n prevButtonText?: React.ReactNode\n /** Text for next button */\n nextButtonText?: React.ReactNode\n /** Text for finish button */\n finishButtonText?: React.ReactNode\n /** Text for skip button */\n skipButtonText?: React.ReactNode\n /** Show skip button */\n showSkip?: boolean\n /** Show step indicators */\n showIndicators?: boolean\n /** Close on mask click */\n closeOnMaskClick?: boolean\n /** Close on escape key */\n closeOnEscape?: boolean\n /** Scroll target into view */\n scrollIntoViewOptions?: boolean | ScrollIntoViewOptions\n /** Z-index for tour overlay */\n zIndex?: number\n /** Custom indicator renderer */\n indicatorsRender?: (current: number, total: number) => React.ReactNode\n /** Custom action buttons renderer */\n actionsRender?: (originNode: React.ReactNode, info: TourActionInfo) => React.ReactNode\n /** Rendering container for tour */\n getPopupContainer?: (node: HTMLElement) => HTMLElement\n /** Semantic class names */\n classNames?: Partial<Record<TourSemanticName, string>>\n /** Semantic styles */\n styles?: Partial<Record<TourSemanticName, React.CSSProperties>>\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\nconst getTargetElement = (\n target: TourStepProps['target']\n): HTMLElement | null => {\n if (!target) return null\n if (typeof target === 'function') return target()\n return target.current\n}\n\nconst getPopoverPosition = (\n targetRect: DOMRect | null,\n placement: TourPlacement,\n popoverRect: DOMRect,\n gap: number,\n arrow: boolean | TourArrowConfig\n): { top: number; left: number } => {\n if (!targetRect || placement === 'center') {\n return {\n top: window.innerHeight / 2 - popoverRect.height / 2,\n left: window.innerWidth / 2 - popoverRect.width / 2,\n }\n }\n\n const scrollY = window.scrollY\n const scrollX = window.scrollX\n const pointAtCenter = typeof arrow === 'object' && arrow.pointAtCenter\n\n const positions: Record<TourPlacement, { top: number; left: number }> = {\n top: {\n top: targetRect.top + scrollY - popoverRect.height - gap,\n left: pointAtCenter\n ? targetRect.left + scrollX + targetRect.width / 2 - popoverRect.width / 2\n : targetRect.left + scrollX + targetRect.width / 2 - popoverRect.width / 2,\n },\n topLeft: {\n top: targetRect.top + scrollY - popoverRect.height - gap,\n left: targetRect.left + scrollX,\n },\n topRight: {\n top: targetRect.top + scrollY - popoverRect.height - gap,\n left: targetRect.right + scrollX - popoverRect.width,\n },\n bottom: {\n top: targetRect.bottom + scrollY + gap,\n left: targetRect.left + scrollX + targetRect.width / 2 - popoverRect.width / 2,\n },\n bottomLeft: {\n top: targetRect.bottom + scrollY + gap,\n left: targetRect.left + scrollX,\n },\n bottomRight: {\n top: targetRect.bottom + scrollY + gap,\n left: targetRect.right + scrollX - popoverRect.width,\n },\n left: {\n top: targetRect.top + scrollY + targetRect.height / 2 - popoverRect.height / 2,\n left: targetRect.left + scrollX - popoverRect.width - gap,\n },\n leftTop: {\n top: targetRect.top + scrollY,\n left: targetRect.left + scrollX - popoverRect.width - gap,\n },\n leftBottom: {\n top: targetRect.bottom + scrollY - popoverRect.height,\n left: targetRect.left + scrollX - popoverRect.width - gap,\n },\n right: {\n top: targetRect.top + scrollY + targetRect.height / 2 - popoverRect.height / 2,\n left: targetRect.right + scrollX + gap,\n },\n rightTop: {\n top: targetRect.top + scrollY,\n left: targetRect.right + scrollX + gap,\n },\n rightBottom: {\n top: targetRect.bottom + scrollY - popoverRect.height,\n left: targetRect.right + scrollX + gap,\n },\n center: {\n top: window.innerHeight / 2 - popoverRect.height / 2,\n left: window.innerWidth / 2 - popoverRect.width / 2,\n },\n }\n\n return positions[placement]\n}\n\nconst getArrowPosition = (\n placement: TourPlacement\n): { position: string; transform: string } => {\n const arrowPositions: Record<TourPlacement, { position: string; transform: string }> = {\n top: { position: 'bottom-0 left-1/2', transform: 'translate(-50%, 50%) rotate(45deg)' },\n topLeft: { position: 'bottom-0 left-4', transform: 'translate(0, 50%) rotate(45deg)' },\n topRight: { position: 'bottom-0 right-4', transform: 'translate(0, 50%) rotate(45deg)' },\n bottom: { position: 'top-0 left-1/2', transform: 'translate(-50%, -50%) rotate(45deg)' },\n bottomLeft: { position: 'top-0 left-4', transform: 'translate(0, -50%) rotate(45deg)' },\n bottomRight: { position: 'top-0 right-4', transform: 'translate(0, -50%) rotate(45deg)' },\n left: { position: 'right-0 top-1/2', transform: 'translate(50%, -50%) rotate(45deg)' },\n leftTop: { position: 'right-0 top-4', transform: 'translate(50%, 0) rotate(45deg)' },\n leftBottom: { position: 'right-0 bottom-4', transform: 'translate(50%, 0) rotate(45deg)' },\n right: { position: 'left-0 top-1/2', transform: 'translate(-50%, -50%) rotate(45deg)' },\n rightTop: { position: 'left-0 top-4', transform: 'translate(-50%, 0) rotate(45deg)' },\n rightBottom: { position: 'left-0 bottom-4', transform: 'translate(-50%, 0) rotate(45deg)' },\n center: { position: 'hidden', transform: '' },\n }\n return arrowPositions[placement]\n}\n\nconst defaultCloseIcon = (\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n)\n\nexport const Tour = forwardRef<TourRef, TourProps>(\n (\n {\n open = false,\n onClose,\n onFinish,\n steps,\n current: controlledCurrent,\n onChange,\n arrow = true,\n closeIcon,\n mask = true,\n disabledInteraction = false,\n type = 'default',\n gap = { offset: 6, radius: 2 },\n prevButtonText = 'Previous',\n nextButtonText = 'Next',\n finishButtonText = 'Finish',\n skipButtonText = 'Skip',\n showSkip = true,\n showIndicators = true,\n closeOnMaskClick = true,\n closeOnEscape = true,\n scrollIntoViewOptions = true,\n zIndex = 1001,\n indicatorsRender,\n actionsRender,\n getPopupContainer,\n classNames = {},\n styles = {},\n className,\n style,\n 'data-testid': testId,\n ...rest\n },\n ref\n ) => {\n const [internalCurrent, setInternalCurrent] = useState(0)\n const [targetRect, setTargetRect] = useState<DOMRect | null>(null)\n const [popoverPosition, setPopoverPosition] = useState({ top: 0, left: 0 })\n const popoverRef = useRef<HTMLDivElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const liveRegionRef = useRef<HTMLDivElement>(null)\n\n const baseTestId = testId ?? 'tour'\n const getTestId = (suffix: string) => `${baseTestId}-${suffix}`\n\n const isControlled = controlledCurrent !== undefined\n const currentStep = isControlled ? controlledCurrent : internalCurrent\n const step = steps[currentStep]\n\n // Resolve gap values\n const gapOffset = gap.offset ?? 6\n const gapRadius = gap.radius ?? 2\n const gapOffsetValue = Array.isArray(gapOffset) ? gapOffset[0] : gapOffset\n\n // Resolve per-step overrides\n const resolvedArrow = step?.arrow ?? arrow\n const resolvedMask = step?.mask ?? mask\n const resolvedType = step?.type ?? type\n const resolvedScrollOptions = step?.scrollIntoViewOptions ?? scrollIntoViewOptions\n const resolvedCloseIcon = step?.closeIcon ?? closeIcon\n\n const showArrow = resolvedArrow !== false && step?.placement !== 'center'\n\n // Mask color\n const maskColor =\n typeof resolvedMask === 'object' && resolvedMask.color\n ? resolvedMask.color\n : 'rgba(0, 0, 0, 0.5)'\n const maskStyle =\n typeof resolvedMask === 'object' && resolvedMask.style ? resolvedMask.style : {}\n\n const updatePosition = useCallback(() => {\n if (!step) return\n\n const target = getTargetElement(step.target)\n const rect = target?.getBoundingClientRect() ?? null\n setTargetRect(rect)\n\n if (popoverRef.current) {\n const popoverRect = popoverRef.current.getBoundingClientRect()\n const placement = step.placement ?? 'bottom'\n const pos = getPopoverPosition(\n rect,\n placement,\n popoverRect,\n gapOffsetValue + gapRadius,\n resolvedArrow\n )\n setPopoverPosition(pos)\n }\n }, [step, gapOffsetValue, gapRadius, resolvedArrow])\n\n const goToStep = useCallback(\n (stepIndex: number) => {\n if (stepIndex < 0 || stepIndex >= steps.length) return\n\n // Call onClose for current step\n steps[currentStep]?.onClose?.()\n\n if (!isControlled) {\n setInternalCurrent(stepIndex)\n }\n onChange?.(stepIndex)\n\n // Announce step change\n if (liveRegionRef.current) {\n liveRegionRef.current.textContent = `Step ${stepIndex + 1} of ${steps.length}: ${\n typeof steps[stepIndex]?.title === 'string' ? steps[stepIndex]?.title : ''\n }`\n }\n },\n [steps, currentStep, isControlled, onChange]\n )\n\n const handleClose = useCallback(() => {\n onClose?.()\n }, [onClose])\n\n const handlePrev = useCallback(() => {\n step?.prevButtonProps?.onClick?.()\n goToStep(currentStep - 1)\n }, [currentStep, goToStep, step])\n\n const handleNext = useCallback(() => {\n step?.nextButtonProps?.onClick?.()\n if (currentStep === steps.length - 1) {\n onFinish?.()\n onClose?.()\n } else {\n goToStep(currentStep + 1)\n }\n }, [currentStep, steps.length, goToStep, onFinish, onClose, step])\n\n const handleSkip = useCallback(() => {\n onClose?.()\n }, [onClose])\n\n const handleMaskClick = useCallback(() => {\n if (closeOnMaskClick) {\n onClose?.()\n }\n }, [closeOnMaskClick, onClose])\n\n // Expose imperative methods\n useImperativeHandle(\n ref,\n () => ({\n goTo: goToStep,\n next: handleNext,\n prev: handlePrev,\n close: handleClose,\n }),\n [goToStep, handleNext, handlePrev, handleClose]\n )\n\n // Reset to first step when opening\n useEffect(() => {\n if (open && !isControlled) {\n setInternalCurrent(0)\n }\n }, [open, isControlled])\n\n // Update position on step change or open\n useEffect(() => {\n if (!open) return\n\n updatePosition()\n\n // Scroll target into view\n if (resolvedScrollOptions && step?.target) {\n const target = getTargetElement(step.target)\n if (target) {\n const scrollOptions: ScrollIntoViewOptions =\n typeof resolvedScrollOptions === 'object'\n ? resolvedScrollOptions\n : { behavior: 'smooth', block: 'center' }\n target.scrollIntoView(scrollOptions)\n }\n }\n\n // Announce first step\n if (currentStep === 0 && liveRegionRef.current) {\n liveRegionRef.current.textContent = `Tour started. Step 1 of ${steps.length}: ${\n typeof step?.title === 'string' ? step?.title : ''\n }`\n }\n }, [open, currentStep, step, resolvedScrollOptions, updatePosition, steps.length])\n\n // Update position on resize/scroll\n useEffect(() => {\n if (!open) return\n\n const handleUpdate = () => updatePosition()\n window.addEventListener('resize', handleUpdate)\n window.addEventListener('scroll', handleUpdate, true)\n\n // Initial position after popover renders\n requestAnimationFrame(updatePosition)\n\n return () => {\n window.removeEventListener('resize', handleUpdate)\n window.removeEventListener('scroll', handleUpdate, true)\n }\n }, [open, updatePosition])\n\n // Keyboard handling\n useEffect(() => {\n if (!open) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && closeOnEscape) {\n onClose?.()\n } else if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n e.preventDefault()\n handleNext()\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n e.preventDefault()\n handlePrev()\n } else if (e.key === 'Tab') {\n // Focus trap within popover\n if (popoverRef.current) {\n const focusableElements = popoverRef.current.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [open, closeOnEscape, onClose, handleNext, handlePrev])\n\n // Focus management - focus first button when tour opens\n useEffect(() => {\n if (open && popoverRef.current) {\n requestAnimationFrame(() => {\n const firstButton = popoverRef.current?.querySelector<HTMLElement>('button')\n firstButton?.focus()\n })\n }\n }, [open, currentStep])\n\n if (!open || !step) return null\n\n const isFirstStep = currentStep === 0\n const isLastStep = currentStep === steps.length - 1\n const placement = step.placement ?? 'bottom'\n const arrowPos = getArrowPosition(placement)\n\n // Default indicators\n const defaultIndicators =\n showIndicators && steps.length > 1 ? (\n <div\n className={`flex gap-1 mb-4 ${classNames.indicator ?? ''}`}\n style={styles.indicator}\n data-testid={getTestId('indicators')}\n >\n {steps.map((_, index) => (\n <button\n key={index}\n className={`w-2 h-2 rounded-full transition-colors ${\n index === currentStep\n ? 'bg-primary'\n : 'bg-base-300 hover:bg-base-content/30'\n }`}\n onClick={() => goToStep(index)}\n aria-label={`Go to step ${index + 1}`}\n aria-current={index === currentStep ? 'step' : undefined}\n data-testid={getTestId(`indicator-${index}`)}\n />\n ))}\n </div>\n ) : null\n\n const indicators = indicatorsRender\n ? indicatorsRender(currentStep, steps.length)\n : defaultIndicators\n\n // Default action buttons\n const defaultActions = (\n <div\n className={`flex items-center justify-between gap-2 ${classNames.footer ?? ''}`}\n style={styles.footer}\n data-testid={getTestId('footer')}\n >\n <div>\n {showSkip && !isLastStep && (\n <button\n className=\"btn btn-ghost btn-sm\"\n onClick={handleSkip}\n data-testid={getTestId('skip')}\n >\n {skipButtonText}\n </button>\n )}\n </div>\n <div className=\"flex gap-2\">\n {!isFirstStep && (\n <button\n className=\"btn btn-ghost btn-sm\"\n onClick={handlePrev}\n data-testid={getTestId('prev')}\n >\n {step.prevButtonProps?.children ?? prevButtonText}\n </button>\n )}\n <button\n className={`btn btn-sm ${resolvedType === 'primary' ? 'btn-primary' : ''}`}\n onClick={handleNext}\n data-testid={getTestId('next')}\n >\n {step.nextButtonProps?.children ?? (isLastStep ? finishButtonText : nextButtonText)}\n </button>\n </div>\n </div>\n )\n\n const actions = actionsRender\n ? actionsRender(defaultActions, { current: currentStep, total: steps.length })\n : defaultActions\n\n const content = (\n <div\n ref={containerRef}\n className={`fixed inset-0 ${classNames.root ?? ''} ${className ?? ''}`}\n style={{ zIndex, ...styles.root, ...style }}\n data-testid={baseTestId}\n data-state={open ? 'open' : 'closed'}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={`Tour step ${currentStep + 1} of ${steps.length}`}\n {...rest}\n >\n {/* Live region for screen reader announcements */}\n <div\n ref={liveRegionRef}\n className=\"sr-only\"\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n />\n\n {/* Mask overlay with spotlight cutout */}\n {resolvedMask && (\n <svg\n className={`absolute inset-0 w-full h-full ${\n disabledInteraction ? 'pointer-events-auto' : 'pointer-events-auto'\n } ${classNames.mask ?? ''}`}\n style={{ zIndex, ...maskStyle, ...styles.mask }}\n onClick={handleMaskClick}\n data-testid={getTestId('mask')}\n aria-hidden=\"true\"\n >\n <defs>\n <mask id={`tour-mask-${baseTestId}`}>\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"white\" />\n {targetRect && (\n <rect\n x={targetRect.left - gapRadius}\n y={targetRect.top - gapRadius}\n width={targetRect.width + gapRadius * 2}\n height={targetRect.height + gapRadius * 2}\n rx={gapRadius}\n fill=\"black\"\n />\n )}\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n fill={maskColor}\n mask={`url(#tour-mask-${baseTestId})`}\n />\n </svg>\n )}\n\n {/* Interaction blocker for highlighted area */}\n {disabledInteraction && targetRect && (\n <div\n className=\"absolute pointer-events-auto\"\n style={{\n left: targetRect.left - gapRadius,\n top: targetRect.top - gapRadius,\n width: targetRect.width + gapRadius * 2,\n height: targetRect.height + gapRadius * 2,\n zIndex: zIndex + 1,\n }}\n data-testid={getTestId('blocker')}\n />\n )}\n\n {/* Popover */}\n <div\n ref={popoverRef}\n className={`absolute bg-base-100 rounded-lg shadow-xl border border-base-300 max-w-sm ${\n classNames.popover ?? ''\n } ${step.className ?? ''}`}\n style={{\n top: popoverPosition.top,\n left: popoverPosition.left,\n zIndex: zIndex + 2,\n ...styles.popover,\n ...step.style,\n }}\n onClick={(e) => e.stopPropagation()}\n data-testid={getTestId('popover')}\n data-placement={placement}\n >\n {/* Arrow */}\n {showArrow && (\n <div\n className={`absolute w-3 h-3 bg-base-100 border-base-300 ${arrowPos.position}`}\n style={{\n transform: arrowPos.transform,\n borderWidth: '1px',\n borderTopColor: 'transparent',\n borderLeftColor: 'transparent',\n }}\n data-testid={getTestId('arrow')}\n />\n )}\n\n {/* Close button */}\n {resolvedCloseIcon !== false && (\n <button\n className={`absolute top-2 right-2 btn btn-ghost btn-xs btn-circle ${\n classNames.close ?? ''\n }`}\n style={styles.close}\n onClick={handleClose}\n aria-label=\"Close tour\"\n data-testid={getTestId('close')}\n >\n {resolvedCloseIcon ?? defaultCloseIcon}\n </button>\n )}\n\n {/* Cover */}\n {step.cover && (\n <div className=\"rounded-t-lg overflow-hidden\" data-testid={getTestId('cover')}>\n {step.cover}\n </div>\n )}\n\n {/* Content */}\n <div\n className={`p-4 ${classNames.content ?? ''}`}\n style={styles.content}\n data-testid={getTestId('content')}\n >\n <div\n className={`${classNames.header ?? ''}`}\n style={styles.header}\n data-testid={getTestId('header')}\n >\n <h3 className=\"font-semibold text-lg mb-1 pr-6\">{step.title}</h3>\n {step.description && (\n <p className=\"text-base-content/70 text-sm mb-4\">{step.description}</p>\n )}\n </div>\n\n {/* Indicators */}\n {indicators}\n\n {/* Navigation */}\n {actions}\n </div>\n </div>\n </div>\n )\n\n // Get container for portal\n const container = getPopupContainer\n ? getPopupContainer(document.body)\n : document.body\n\n return createPortal(content, container)\n }\n)\n\nTour.displayName = 'Tour'\n"],"names":["getTargetElement","target","getPopoverPosition","targetRect","placement","popoverRect","gap","arrow","scrollY","scrollX","pointAtCenter","getArrowPosition","defaultCloseIcon","jsx","Tour","forwardRef","open","onClose","onFinish","steps","controlledCurrent","onChange","closeIcon","mask","disabledInteraction","type","prevButtonText","nextButtonText","finishButtonText","skipButtonText","showSkip","showIndicators","closeOnMaskClick","closeOnEscape","scrollIntoViewOptions","zIndex","indicatorsRender","actionsRender","getPopupContainer","classNames","styles","className","style","testId","rest","ref","internalCurrent","setInternalCurrent","useState","setTargetRect","popoverPosition","setPopoverPosition","popoverRef","useRef","containerRef","liveRegionRef","baseTestId","getTestId","suffix","isControlled","currentStep","step","gapOffset","gapRadius","gapOffsetValue","resolvedArrow","resolvedMask","resolvedType","resolvedScrollOptions","resolvedCloseIcon","showArrow","maskColor","maskStyle","updatePosition","useCallback","rect","pos","goToStep","stepIndex","handleClose","handlePrev","handleNext","handleSkip","handleMaskClick","useImperativeHandle","useEffect","scrollOptions","handleUpdate","handleKeyDown","e","focusableElements","firstElement","lastElement","isFirstStep","isLastStep","arrowPos","defaultIndicators","_","index","indicators","defaultActions","jsxs","actions","content","container","createPortal"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -111,7 +111,9 @@ export type { ModalProps, ModalFuncProps, ModalPosition, ModalAlign, ResponsiveP
|
|
|
111
111
|
export { Navbar } from './components/Navbar';
|
|
112
112
|
export type { NavbarProps, NavbarColor, NavbarShadow, NavbarRounded } from './components/Navbar';
|
|
113
113
|
export { notification } from './components/Notification';
|
|
114
|
-
export type { NotificationConfig, NotificationType, NotificationPlacement } from './components/Notification';
|
|
114
|
+
export type { NotificationConfig, NotificationType, NotificationPlacement, NotificationVariant } from './components/Notification';
|
|
115
|
+
export { message, MessageManager } from './components/Message';
|
|
116
|
+
export type { MessageConfig } from './components/Message';
|
|
115
117
|
export { OTPInput } from './components/OTPInput';
|
|
116
118
|
export type { OTPInputProps, OTPInputRef } from './components/OTPInput';
|
|
117
119
|
export { Pagination } from './components/Pagination';
|
|
@@ -167,7 +169,7 @@ export type { TimelineProps, TimelineItemProps, TimelineItemConfig, TimelineMode
|
|
|
167
169
|
export { Toggle } from './components/Toggle';
|
|
168
170
|
export type { ToggleProps } from './components/Toggle';
|
|
169
171
|
export { Tour } from './components/Tour';
|
|
170
|
-
export type { TourProps, TourStepProps, TourPlacement } from './components/Tour';
|
|
172
|
+
export type { TourProps, TourStepProps, TourPlacement, TourType, TourArrowConfig, TourMaskConfig, TourButtonProps, TourSemanticName, TourActionInfo, TourRef, } from './components/Tour';
|
|
171
173
|
export { Tooltip } from './components/Tooltip';
|
|
172
174
|
export type { TooltipProps } from './components/Tooltip';
|
|
173
175
|
export { Transfer } from './components/Transfer';
|
package/dist/index.js
CHANGED
|
@@ -2,17 +2,17 @@ import { Affix as e } from "./components/Affix.js";
|
|
|
2
2
|
import { Anchor as p } from "./components/Anchor.js";
|
|
3
3
|
import { Alert as x } from "./components/Alert.js";
|
|
4
4
|
import { Autocomplete as a } from "./components/Autocomplete.js";
|
|
5
|
-
import { Avatar as
|
|
5
|
+
import { Avatar as s, AvatarGroup as i } from "./components/Avatar.js";
|
|
6
6
|
import { Badge as u } from "./components/Badge.js";
|
|
7
7
|
import { Breadcrumb as d } from "./components/Breadcrumb.js";
|
|
8
|
-
import { Button as
|
|
8
|
+
import { Button as g, IconSizeContext as T } from "./components/Button.js";
|
|
9
9
|
import { CopyButton as P } from "./components/CopyButton.js";
|
|
10
10
|
import { Checkbox as b } from "./components/Checkbox.js";
|
|
11
11
|
import { Chat as D } from "./components/Chat.js";
|
|
12
12
|
import { ColorPicker as y } from "./components/ColorPicker.js";
|
|
13
13
|
import { Card as h } from "./components/Card.js";
|
|
14
|
-
import { Cascader as
|
|
15
|
-
import { Carousel as
|
|
14
|
+
import { Cascader as M } from "./components/Cascader.js";
|
|
15
|
+
import { Carousel as I } from "./components/Carousel.js";
|
|
16
16
|
import { Collapse as L } from "./components/Collapse.js";
|
|
17
17
|
import { Container as G } from "./components/Container.js";
|
|
18
18
|
import { ContextMenu as W } from "./components/ContextMenu.js";
|
|
@@ -28,16 +28,16 @@ import { Fieldset as eo } from "./components/Fieldset.js";
|
|
|
28
28
|
import { FileInput as po } from "./components/FileInput.js";
|
|
29
29
|
import { Filter as xo } from "./components/Filter.js";
|
|
30
30
|
import { Flex as ao } from "./components/Flex.js";
|
|
31
|
-
import { FloatButton as
|
|
31
|
+
import { FloatButton as so } from "./components/FloatButton.js";
|
|
32
32
|
import { Footer as lo } from "./components/Footer.js";
|
|
33
33
|
import { Form as co, useFormInstance as Co } from "./components/Form.js";
|
|
34
|
-
import { Col as
|
|
34
|
+
import { Col as To, Grid as So, Row as Po } from "./components/Grid.js";
|
|
35
35
|
import { Hero as bo } from "./components/Hero.js";
|
|
36
36
|
import { HoverGallery as Do } from "./components/HoverGallery.js";
|
|
37
37
|
import { Image as yo } from "./components/Image.js";
|
|
38
38
|
import { Dropdown as ho } from "./components/Dropdown.js";
|
|
39
|
-
import { Empty as
|
|
40
|
-
import { Input as
|
|
39
|
+
import { Empty as Mo } from "./components/Empty.js";
|
|
40
|
+
import { Input as Io } from "./components/Input.js";
|
|
41
41
|
import { InputNumber as Lo } from "./components/InputNumber.js";
|
|
42
42
|
import { Join as Go } from "./components/Join.js";
|
|
43
43
|
import { Kbd as Wo } from "./components/Kbd.js";
|
|
@@ -53,73 +53,74 @@ import { Code as tr } from "./components/Code.js";
|
|
|
53
53
|
import { Phone as mr } from "./components/Phone.js";
|
|
54
54
|
import { Window as fr } from "./components/Window.js";
|
|
55
55
|
import { Modal as nr } from "./components/Modal.js";
|
|
56
|
-
import { Navbar as
|
|
56
|
+
import { Navbar as ir } from "./components/Navbar.js";
|
|
57
57
|
import { notification as ur } from "./components/Notification.js";
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
-
import {
|
|
76
|
-
import {
|
|
77
|
-
import {
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
import {
|
|
95
|
-
import {
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import {
|
|
102
|
-
import {
|
|
103
|
-
import {
|
|
58
|
+
import { MessageManager as dr, message as Cr } from "./components/Message.js";
|
|
59
|
+
import { OTPInput as Tr } from "./components/OTPInput.js";
|
|
60
|
+
import { Pagination as Pr } from "./components/Pagination.js";
|
|
61
|
+
import { Popconfirm as br } from "./components/Popconfirm.js";
|
|
62
|
+
import { Popover as Dr } from "./components/Popover.js";
|
|
63
|
+
import { Progress as yr } from "./components/Progress.js";
|
|
64
|
+
import { Radio as hr } from "./components/Radio.js";
|
|
65
|
+
import { RadialProgress as Mr } from "./components/RadialProgress.js";
|
|
66
|
+
import { Range as Ir } from "./components/Range.js";
|
|
67
|
+
import { Rating as Lr } from "./components/Rating.js";
|
|
68
|
+
import { Result as Gr } from "./components/Result.js";
|
|
69
|
+
import { Select as Wr } from "./components/Select.js";
|
|
70
|
+
import { Segmented as Nr } from "./components/Segmented.js";
|
|
71
|
+
import { Skeleton as Er } from "./components/Skeleton.js";
|
|
72
|
+
import { Space as Ur } from "./components/Space.js";
|
|
73
|
+
import { Splitter as qr } from "./components/Splitter.js";
|
|
74
|
+
import { Stats as Vr } from "./components/Stat.js";
|
|
75
|
+
import { Status as Yr } from "./components/Status.js";
|
|
76
|
+
import { Steps as _r } from "./components/Steps.js";
|
|
77
|
+
import { Table as oe } from "./components/Table.js";
|
|
78
|
+
import { Tabs as ee } from "./components/Tabs.js";
|
|
79
|
+
import { Textarea as pe } from "./components/Textarea.js";
|
|
80
|
+
import { TextRotate as xe } from "./components/TextRotate.js";
|
|
81
|
+
import { CheckableTag as ae, Tag as ne, TagLiveRegion as se } from "./components/Tag.js";
|
|
82
|
+
import { ThemeController as le } from "./components/ThemeController.js";
|
|
83
|
+
import { TimePicker as ce } from "./components/TimePicker.js";
|
|
84
|
+
import { Timeline as Ce } from "./components/Timeline.js";
|
|
85
|
+
import { Toggle as Te } from "./components/Toggle.js";
|
|
86
|
+
import { Tour as Pe } from "./components/Tour.js";
|
|
87
|
+
import { Tooltip as be } from "./components/Tooltip.js";
|
|
88
|
+
import { Transfer as De } from "./components/Transfer.js";
|
|
89
|
+
import { Tree as ye } from "./components/Tree.js";
|
|
90
|
+
import { TreeSelect as he, TreeSelectComponent as Fe } from "./components/TreeSelect.js";
|
|
91
|
+
import { Typography as Be } from "./components/Typography.js";
|
|
92
|
+
import { Upload as Ae } from "./components/Upload.js";
|
|
93
|
+
import { Watermark as He } from "./components/Watermark.js";
|
|
94
|
+
import { Hide as Ke, Show as We } from "./components/Responsive.js";
|
|
95
|
+
import { useBreakpoint as Ne } from "./hooks/useBreakpoint.js";
|
|
96
|
+
import { useDisclosure as Ee } from "./hooks/useDisclosure.js";
|
|
97
|
+
import { useClipboard as Ue } from "./hooks/useClipboard.js";
|
|
98
|
+
import { useLocalStorage as qe } from "./hooks/useLocalStorage.js";
|
|
99
|
+
import { useDebounce as Ve } from "./hooks/useDebounce.js";
|
|
100
|
+
import { useClickOutside as Ye } from "./hooks/useClickOutside.js";
|
|
101
|
+
import { usePrevious as _e } from "./hooks/usePrevious.js";
|
|
102
|
+
import { useHover as ot } from "./hooks/useHover.js";
|
|
103
|
+
import { useKeyPress as et, useKeyPressCallback as tt } from "./hooks/useKeyPress.js";
|
|
104
|
+
import { useWindowSize as mt } from "./hooks/useWindowSize.js";
|
|
104
105
|
export {
|
|
105
106
|
e as Affix,
|
|
106
107
|
x as Alert,
|
|
107
108
|
p as Anchor,
|
|
108
109
|
a as Autocomplete,
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
s as Avatar,
|
|
111
|
+
i as AvatarGroup,
|
|
111
112
|
u as Badge,
|
|
112
113
|
d as Breadcrumb,
|
|
113
114
|
rr as Browser,
|
|
114
|
-
|
|
115
|
+
g as Button,
|
|
115
116
|
h as Card,
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
I as Carousel,
|
|
118
|
+
M as Cascader,
|
|
118
119
|
D as Chat,
|
|
119
|
-
|
|
120
|
+
ae as CheckableTag,
|
|
120
121
|
b as Checkbox,
|
|
121
122
|
tr as Code,
|
|
122
|
-
|
|
123
|
+
To as Col,
|
|
123
124
|
L as Collapse,
|
|
124
125
|
y as ColorPicker,
|
|
125
126
|
G as Container,
|
|
@@ -133,21 +134,21 @@ export {
|
|
|
133
134
|
V as Dock,
|
|
134
135
|
_ as Drawer,
|
|
135
136
|
ho as Dropdown,
|
|
136
|
-
|
|
137
|
+
Mo as Empty,
|
|
137
138
|
eo as Fieldset,
|
|
138
139
|
po as FileInput,
|
|
139
140
|
xo as Filter,
|
|
140
141
|
ao as Flex,
|
|
141
|
-
|
|
142
|
+
so as FloatButton,
|
|
142
143
|
lo as Footer,
|
|
143
144
|
co as Form,
|
|
144
145
|
So as Grid,
|
|
145
146
|
bo as Hero,
|
|
146
|
-
|
|
147
|
+
Ke as Hide,
|
|
147
148
|
Do as HoverGallery,
|
|
148
|
-
|
|
149
|
+
T as IconSizeContext,
|
|
149
150
|
yo as Image,
|
|
150
|
-
|
|
151
|
+
Io as Input,
|
|
151
152
|
Lo as InputNumber,
|
|
152
153
|
Go as Join,
|
|
153
154
|
Wo as Kbd,
|
|
@@ -158,63 +159,65 @@ export {
|
|
|
158
159
|
Xo as Masonry,
|
|
159
160
|
Zo as Mention,
|
|
160
161
|
$o as Menu,
|
|
162
|
+
dr as MessageManager,
|
|
161
163
|
nr as Modal,
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
ir as Navbar,
|
|
165
|
+
Tr as OTPInput,
|
|
166
|
+
Pr as Pagination,
|
|
165
167
|
mr as Phone,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
168
|
+
br as Popconfirm,
|
|
169
|
+
Dr as Popover,
|
|
170
|
+
yr as Progress,
|
|
171
|
+
Mr as RadialProgress,
|
|
172
|
+
hr as Radio,
|
|
173
|
+
Ir as Range,
|
|
174
|
+
Lr as Rating,
|
|
173
175
|
oo as ResponsiveDrawer,
|
|
174
|
-
|
|
176
|
+
Gr as Result,
|
|
175
177
|
Po as Row,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
178
|
+
Nr as Segmented,
|
|
179
|
+
Wr as Select,
|
|
180
|
+
We as Show,
|
|
181
|
+
Er as Skeleton,
|
|
182
|
+
Ur as Space,
|
|
183
|
+
qr as Splitter,
|
|
184
|
+
Vr as Stats,
|
|
185
|
+
Yr as Status,
|
|
186
|
+
_r as Steps,
|
|
187
|
+
oe as Table,
|
|
188
|
+
ee as Tabs,
|
|
189
|
+
ne as Tag,
|
|
190
|
+
se as TagLiveRegion,
|
|
191
|
+
xe as TextRotate,
|
|
192
|
+
pe as Textarea,
|
|
193
|
+
le as ThemeController,
|
|
194
|
+
ce as TimePicker,
|
|
195
|
+
Ce as Timeline,
|
|
196
|
+
Te as Toggle,
|
|
197
|
+
be as Tooltip,
|
|
198
|
+
Pe as Tour,
|
|
199
|
+
De as Transfer,
|
|
200
|
+
ye as Tree,
|
|
201
|
+
he as TreeSelect,
|
|
202
|
+
Fe as TreeSelectComponent,
|
|
203
|
+
Be as Typography,
|
|
204
|
+
Ae as Upload,
|
|
205
|
+
He as Watermark,
|
|
204
206
|
fr as Window,
|
|
207
|
+
Cr as message,
|
|
205
208
|
ur as notification,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
Ne as useBreakpoint,
|
|
210
|
+
Ye as useClickOutside,
|
|
211
|
+
Ue as useClipboard,
|
|
212
|
+
Ve as useDebounce,
|
|
213
|
+
Ee as useDisclosure,
|
|
211
214
|
Co as useFormInstance,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
215
|
+
ot as useHover,
|
|
216
|
+
et as useKeyPress,
|
|
217
|
+
tt as useKeyPressCallback,
|
|
218
|
+
qe as useLocalStorage,
|
|
219
|
+
_e as usePrevious,
|
|
217
220
|
Oo as useSiderContext,
|
|
218
|
-
|
|
221
|
+
mt as useWindowSize
|
|
219
222
|
};
|
|
220
223
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|