@purpur/library 9.0.0 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +12 -0
- package/CHANGELOG.md +8 -1
- package/dist/LICENSE.txt +5 -5
- package/dist/checkbox-Dk3bZkZ3.js.map +1 -1
- package/dist/checkbox-LYzMiXu7.mjs.map +1 -1
- package/dist/chip-group-CJVvfl_J.mjs.map +1 -1
- package/dist/chip-group-aj1fdnjC.js.map +1 -1
- package/dist/{date-picker-BRkh2YEH.mjs → date-picker-BRnwwZv1.mjs} +364 -354
- package/dist/date-picker-BRnwwZv1.mjs.map +1 -0
- package/dist/date-picker-DlJGggam.js +2 -0
- package/dist/date-picker-DlJGggam.js.map +1 -0
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/floating-ui.react-dom-0ol4sFzt.mjs +1363 -0
- package/dist/floating-ui.react-dom-0ol4sFzt.mjs.map +1 -0
- package/dist/floating-ui.react-dom-Cc_YSprQ.js +2 -0
- package/dist/floating-ui.react-dom-Cc_YSprQ.js.map +1 -0
- package/dist/index-2cFVyGXq.js.map +1 -1
- package/dist/index-B8Mazo6u.mjs.map +1 -1
- package/dist/index-BG6K_yAm.js.map +1 -1
- package/dist/index-BVmlsxuF.js.map +1 -1
- package/dist/index-BbtRr5Q6.js.map +1 -1
- package/dist/index-BtWPC8xc.js.map +1 -1
- package/dist/index-ByaXH_ih.mjs.map +1 -1
- package/dist/index-C1AXAWlO.mjs.map +1 -1
- package/dist/index-CCNZ9uWB.mjs.map +1 -1
- package/dist/index-CEQ35j8b.mjs.map +1 -1
- package/dist/index-CKCTy3ZL.mjs.map +1 -1
- package/dist/index-CLMd7NJE.mjs.map +1 -1
- package/dist/index-Cje7xxa1.js.map +1 -1
- package/dist/index-CleLBinl.js.map +1 -1
- package/dist/index-CoR7YA3H.js.map +1 -1
- package/dist/index-CxBG4Ssm.js.map +1 -1
- package/dist/index-DA01QPpC.js.map +1 -1
- package/dist/index-DCcK_d4W.mjs.map +1 -1
- package/dist/index-DDrLXRUs.mjs.map +1 -1
- package/dist/index-DLcqcWxM.mjs.map +1 -1
- package/dist/index-DOFLOnao.js.map +1 -1
- package/dist/index-DOfn3ixy.mjs.map +1 -1
- package/dist/index-DPxjTK4w.mjs.map +1 -1
- package/dist/index-DSf4qCR-.mjs.map +1 -1
- package/dist/index-DlMXYAr3.js.map +1 -1
- package/dist/index-HJvG7FXj.js.map +1 -1
- package/dist/index-Hk_HrrHM.js.map +1 -1
- package/dist/index-IpWiejWQ.mjs.map +1 -1
- package/dist/index-MiRhI3nq.mjs.map +1 -1
- package/dist/index-_XxjJPRD.js.map +1 -1
- package/dist/index-kcwFA4Dv.js.map +1 -1
- package/dist/index-tyLV0iiH.mjs.map +1 -1
- package/dist/label-7sJe5-pX.mjs.map +1 -1
- package/dist/label-yHK80hhV.js.map +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +5 -5
- package/dist/{popover-CYyCtoef.js → popover-B1BgSoQx.js} +2 -2
- package/dist/{popover-CYyCtoef.js.map → popover-B1BgSoQx.js.map} +1 -1
- package/dist/{popover-C6nZb3cQ.mjs → popover-DBMI9Jy1.mjs} +4 -4
- package/dist/{popover-C6nZb3cQ.mjs.map → popover-DBMI9Jy1.mjs.map} +1 -1
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/slider-CDOrFmK-.mjs.map +1 -1
- package/dist/slider-_R6JmPZl.js.map +1 -1
- package/dist/{stepper-DA0c9Utm.js → stepper-B248FwO-.js} +2 -2
- package/dist/{stepper-DA0c9Utm.js.map → stepper-B248FwO-.js.map} +1 -1
- package/dist/{stepper-D81jmbEf.mjs → stepper-BfIbJwZn.mjs} +2 -2
- package/dist/{stepper-D81jmbEf.mjs.map → stepper-BfIbJwZn.mjs.map} +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-Dd58bK_Q.js → table-BNeo_B1h.js} +2 -2
- package/dist/{table-Dd58bK_Q.js.map → table-BNeo_B1h.js.map} +1 -1
- package/dist/{table-CIrmGGb2.mjs → table-DvcpczWf.mjs} +2 -2
- package/dist/{table-CIrmGGb2.mjs.map → table-DvcpczWf.mjs.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/tabs-CfHd4UQ2.js.map +1 -1
- package/dist/tabs-CoXMAwMx.mjs.map +1 -1
- package/dist/toggle-C8IwTbX8.js.map +1 -1
- package/dist/toggle-Cezg5MUc.mjs.map +1 -1
- package/dist/{tooltip-870Nmk-v.js → tooltip-CLQLxoaf.js} +2 -2
- package/dist/{tooltip-870Nmk-v.js.map → tooltip-CLQLxoaf.js.map} +1 -1
- package/dist/{tooltip-Cqfj0lSz.mjs → tooltip-DXi7ikUT.mjs} +2 -2
- package/dist/{tooltip-Cqfj0lSz.mjs.map → tooltip-DXi7ikUT.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/visually-hidden-BYFkJEp1.mjs.map +1 -1
- package/dist/visually-hidden-C2CKovZx.js.map +1 -1
- package/package.json +68 -68
- package/dist/date-picker-BRkh2YEH.mjs.map +0 -1
- package/dist/date-picker-C2Wtf7XQ.js +0 -2
- package/dist/date-picker-C2Wtf7XQ.js.map +0 -1
- package/dist/floating-ui.react-dom-B_rB55Mr.mjs +0 -1340
- package/dist/floating-ui.react-dom-B_rB55Mr.mjs.map +0 -1
- package/dist/floating-ui.react-dom-z0lMBJ4R.js +0 -2
- package/dist/floating-ui.react-dom-z0lMBJ4R.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-Cezg5MUc.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-switch@1.1.4_@types+react-dom@19.2.3_@types+react@19.2.10__@types+react_046e92fbe833e5e92998d97a45d91da7/node_modules/@radix-ui/react-switch/dist/index.mjs","../../../components/toggle/src/DraggableX.tsx","../../../components/toggle/src/hooks/useResizeObserver.ts","../../../components/toggle/src/hooks/useToggleDrag.ts","../../../components/toggle/src/toggle.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/switch/src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import {\n cloneElement,\n type CSSProperties,\n isValidElement,\n type ReactElement,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { type SwitchThumbProps } from \"@radix-ui/react-switch\";\n\nexport type DraggableXProps = {\n children?: ReactElement<SwitchThumbProps>;\n disabled?: boolean;\n position: number;\n bounds: { left: number; right: number };\n onStart?: () => void;\n onDrag?: (args: { x: number }) => void;\n onStop?: () => void;\n style?: CSSProperties;\n};\n\nconst isTouchEvent = (e: MouseEvent | TouchEvent): e is TouchEvent => e && \"touches\" in e;\n\n/**\n * Bare minimum to make the toggle draggable.\n * It is created for usage in the toggle only but could easily be extracted and used elsewhere.\n *\n * It is called `DraggableX` since it's only for dragging along the x-axis.\n */\nexport const DraggableX = ({\n children,\n disabled,\n onStart,\n onDrag,\n onStop,\n bounds,\n position,\n style,\n}: DraggableXProps) => {\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [dragStartX, setDragStartX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n\n const startDrag = (e: React.MouseEvent | React.TouchEvent) => {\n if (!disabled) {\n e.preventDefault();\n const clientX = isTouchEvent(e.nativeEvent)\n ? e.nativeEvent.touches[0].clientX\n : e.nativeEvent.clientX;\n setDragStartX(clientX);\n onStart?.();\n }\n };\n\n const onMouseMove = useCallback(\n (e: MouseEvent | TouchEvent) => {\n if (typeof dragStartX !== \"number\") {\n return;\n }\n\n const clientX = isTouchEvent(e) ? e.touches[0].clientX : e.clientX;\n const dragDelta = clientX - dragStartX;\n\n if (!dragDelta) {\n return;\n }\n\n const nextDragX = position + dragDelta;\n if (!isDragging && Math.abs(nextDragX)) {\n setIsDragging(true);\n }\n\n const nextDragXBounded = (() => {\n if (nextDragX > bounds.right) {\n return bounds.right;\n }\n\n if (nextDragX < bounds.left) {\n return bounds.left;\n }\n\n return nextDragX;\n })();\n\n setDragX(nextDragXBounded);\n onDrag?.({ x: nextDragXBounded });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onDrag, setDragX, isDragging, dragStartX]\n );\n\n const onMouseUp = useCallback(() => {\n setDragStartX(undefined);\n setDragX(undefined);\n setIsDragging(false);\n onStop?.();\n }, [onStop, setDragStartX]);\n\n useEffect(() => {\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"touchmove\", onMouseMove);\n\n return () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"touchmove\", onMouseMove);\n };\n }, [onMouseMove]);\n\n useEffect(() => {\n window.addEventListener(\"mouseup\", onMouseUp);\n window.addEventListener(\"touchend\", onMouseUp);\n\n return () => {\n window.removeEventListener(\"mouseup\", onMouseUp);\n window.removeEventListener(\"touchend\", onMouseUp);\n };\n }, [onMouseUp]);\n\n return isValidElement(children)\n ? cloneElement<SwitchThumbProps>(children, {\n onMouseDown: startDrag,\n onTouchStart: startDrag,\n style: { ...style, transform: `translateX(${isDragging ? dragX : position}px)` },\n })\n : null;\n};\n","import type { RefObject } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\n// This hook is a clone of useResizeObserver in b2c-sales/hooks\n\ntype Size = {\n width: number | undefined;\n height: number | undefined;\n};\n\ntype UseResizeObserverOptions<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>;\n onResize?: (size: Size) => void;\n box?: \"border-box\" | \"content-box\" | \"device-pixel-content-box\";\n round?: boolean;\n};\n\nconst initialSize: Size = {\n width: undefined,\n height: undefined,\n};\n\nexport function useResizeObserver<T extends HTMLElement = HTMLElement>(\n options: UseResizeObserverOptions<T>\n): Size {\n const { ref, box = \"content-box\", round } = options;\n const [{ width, height }, setSize] = useState<Size>(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef<Size>({ ...initialSize });\n const onResize = useRef<((size: Size) => void) | undefined>(undefined);\n onResize.current = options.onResize;\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window)) {\n return;\n }\n\n const observer = new ResizeObserver(([entry]) => {\n const boxProp =\n\n box === \"border-box\"\n ? \"borderBoxSize\"\n : box === \"device-pixel-content-box\"\n ? \"devicePixelContentBoxSize\"\n : \"contentBoxSize\";\n\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n\n const hasChanged =\n previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n\n if (hasChanged) {\n const newSize: Size = {\n width: newWidth && round ? Math.round(newWidth) : newWidth,\n height: newHeight && round ? Math.round(newHeight) : newHeight,\n };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n\n if (onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n\n observer.observe(ref.current, { box });\n\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted, round]);\n\n return { width, height };\n}\n\ntype BoxSizesKey = keyof Pick<\n ResizeObserverEntry,\n \"borderBoxSize\" | \"contentBoxSize\" | \"devicePixelContentBoxSize\"\n>;\n\nfunction extractSize(\n entry: ResizeObserverEntry,\n box: BoxSizesKey,\n sizeType: keyof ResizeObserverSize\n): number | undefined {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return undefined;\n }\n\n return Array.isArray(entry[box])\n ? entry[box][0][sizeType]\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Support Firefox's non-standard behavior\n (entry[box][sizeType] as number);\n}\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return useCallback(() => isMounted.current, []);\n}\n","import { type RefObject, useRef, useState } from \"react\";\n\nimport { useResizeObserver } from \"./useResizeObserver\";\n\ntype UseToggleDragProps = {\n checked: boolean;\n onChange: ((checked: boolean) => void) | undefined;\n};\n\nexport const useToggleDrag = ({ checked, onChange }: UseToggleDragProps) => {\n const trackRef: RefObject<HTMLDivElement | null> = useRef(null);\n const thumbRef = useRef<HTMLSpanElement>(null);\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n const [dragStopped, setDragStopped] = useState(0);\n\n const { height: thumbHeight = 0 } = useResizeObserver({ ref: thumbRef, round: true });\n const { height: switchHeight = 0 } = useResizeObserver({ ref: trackRef, round: true });\n\n const switchThumbHeightDelta = (switchHeight || 0) - thumbHeight;\n const maxDragRange = thumbHeight + switchThumbHeightDelta;\n const minDragRange = switchThumbHeightDelta / 2;\n const halfMaxDragRange = maxDragRange / 2;\n const isDraggedHalfway =\n typeof dragX === \"number\" && (checked ? dragX < halfMaxDragRange : dragX > halfMaxDragRange);\n\n const onDrag = ({ x }: { x: number }) => {\n setDragX(x);\n const dragDelta = Math.abs((checked ? maxDragRange : minDragRange) - x);\n\n // Add a threshold here for then accidentally dragging when clicking/touching\n dragDelta > 2 && setIsDragging(true);\n };\n\n const onStop = () => {\n setIsDragging(false);\n isDragging && setDragStopped(Date.now());\n if (isDraggedHalfway) {\n onChange?.(!checked);\n }\n };\n\n const onChangeWithDrag = () => {\n if (Date.now() - dragStopped > 50) {\n onChange?.(!checked);\n }\n setDragX(undefined);\n };\n\n return {\n trackRef,\n thumbRef,\n isDragging,\n bounds: { left: minDragRange, right: maxDragRange },\n position: checked ? maxDragRange : minDragRange,\n onDrag,\n onStop,\n onChangeWithDrag,\n };\n};\n","import React, { forwardRef, useState } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as Switch from \"@radix-ui/react-switch\";\nimport c from \"classnames/bind\";\n\nimport { DraggableX } from \"./DraggableX\";\nimport { useToggleDrag } from \"./hooks/useToggleDrag\";\nimport styles from \"./toggle.module.scss\";\n\nexport type ToggleProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\" | \"id\"> & {\n /**\n * To use when no label is given.\n * */\n [\"aria-label\"]?: string;\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * The controlled state of the toggle. Must be used in conjunction with `onChange`.\n * */\n checked?: boolean;\n /**\n * The state of the toggle when it is initially rendered. Use when you do not need to control its state.\n * */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the toggle.\n * */\n disabled?: boolean;\n /**\n * When `true`, the toggle isn't draggable.\n * */\n disableDrag?: boolean;\n /**\n * ID of the toggle.\n * */\n id: string;\n /**\n * The label of the toggle.\n * */\n label?: string;\n /**\n * Set to decide which side of the toggle the label should be rendered.\n * */\n labelPosition?: \"left\" | \"right\";\n /**\n * The name of the toggle. Submitted with its owning form as part of a name/value pair, when wrapped in a form.\n * */\n name?: string;\n /**\n * Event handler called when the toggle is toggled.\n * */\n onChange?: (checked: boolean) => void;\n /**\n * When `true`, indicates that the user must check the toggle before the owning form can be submitted..\n * */\n required?: boolean;\n /**\n * The value given as data when wrapped with a form and submitted with a name.\n * */\n value?: string;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-toggle\";\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n className,\n label,\n onChange,\n labelPosition = \"right\",\n checked,\n disableDrag,\n defaultChecked,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = useState(\n typeof checked === \"boolean\" ? checked : !!defaultChecked\n );\n const isChecked = Boolean(typeof checked === \"boolean\" ? checked : internalChecked);\n const { thumbRef, trackRef, isDragging, onChangeWithDrag, ...draggableXProps } = useToggleDrag({\n checked: isChecked,\n onChange: (value) => {\n if (!props.disabled) {\n onChange?.(value);\n setInternalChecked(value);\n }\n },\n });\n\n const renderLabel = () => (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n className={cx(`${rootClassName}__label`, `${rootClassName}__label--${labelPosition}`)}\n >\n <Paragraph disabled={props.disabled}>{label}</Paragraph>\n </Label>\n );\n\n return (\n <div className={cx(className, `${rootClassName}__container`)}>\n {label && labelPosition === \"left\" && renderLabel()}\n <Switch.Root\n {...props}\n ref={ref}\n id={props.id}\n data-testid={dataTestId}\n className={cx(rootClassName)}\n onCheckedChange={onChangeWithDrag}\n checked={isChecked}\n >\n <span ref={trackRef} className={cx(`${rootClassName}__track`)}>\n <span className={cx(`${rootClassName}__checkmark-container`)}>\n <Icon className={cx(`${rootClassName}__checkmark`)} svg={checkmarkBold} size=\"xxs\" />\n </span>\n <DraggableX disabled={disableDrag} {...draggableXProps}>\n <Switch.Thumb\n ref={thumbRef}\n data-testid={dataTestId && `${dataTestId}-thumb`}\n className={cx(`${rootClassName}__thumb`, {\n [`${rootClassName}__thumb--dragging`]: isDragging,\n })}\n />\n </DraggableX>\n </span>\n </Switch.Root>\n {label && labelPosition === \"right\" && renderLabel()}\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n"],"names":["SWITCH_NAME","createSwitchContext","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","BubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","isTouchEvent","DraggableX","children","onStart","onDrag","onStop","bounds","position","style","dragX","setDragX","useState","dragStartX","setDragStartX","isDragging","setIsDragging","startDrag","e","clientX","onMouseMove","useCallback","dragDelta","nextDragX","nextDragXBounded","onMouseUp","useEffect","isValidElement","cloneElement","initialSize","useResizeObserver","options","box","round","width","height","setSize","isMounted","useIsMounted","previousSize","useRef","onResize","observer","entry","boxProp","newWidth","extractSize","newHeight","newSize","sizeType","useToggleDrag","onChange","trackRef","thumbRef","dragStopped","setDragStopped","thumbHeight","switchHeight","switchThumbHeightDelta","maxDragRange","minDragRange","halfMaxDragRange","isDraggedHalfway","x","cx","c","styles","rootClassName","Toggle","forwardRef","dataTestId","className","label","labelPosition","disableDrag","internalChecked","setInternalChecked","isChecked","onChangeWithDrag","draggableXProps","renderLabel","Label","Paragraph","Switch.Root","Icon","checkmarkBold","Switch.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"toggle-Cezg5MUc.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-switch@1.1.4_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_7c6a1205dfc0b547da67f2d77f280718/node_modules/@radix-ui/react-switch/dist/index.mjs","../../../components/toggle/src/DraggableX.tsx","../../../components/toggle/src/hooks/useResizeObserver.ts","../../../components/toggle/src/hooks/useToggleDrag.ts","../../../components/toggle/src/toggle.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/switch/src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","import {\n cloneElement,\n type CSSProperties,\n isValidElement,\n type ReactElement,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { type SwitchThumbProps } from \"@radix-ui/react-switch\";\n\nexport type DraggableXProps = {\n children?: ReactElement<SwitchThumbProps>;\n disabled?: boolean;\n position: number;\n bounds: { left: number; right: number };\n onStart?: () => void;\n onDrag?: (args: { x: number }) => void;\n onStop?: () => void;\n style?: CSSProperties;\n};\n\nconst isTouchEvent = (e: MouseEvent | TouchEvent): e is TouchEvent => e && \"touches\" in e;\n\n/**\n * Bare minimum to make the toggle draggable.\n * It is created for usage in the toggle only but could easily be extracted and used elsewhere.\n *\n * It is called `DraggableX` since it's only for dragging along the x-axis.\n */\nexport const DraggableX = ({\n children,\n disabled,\n onStart,\n onDrag,\n onStop,\n bounds,\n position,\n style,\n}: DraggableXProps) => {\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [dragStartX, setDragStartX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n\n const startDrag = (e: React.MouseEvent | React.TouchEvent) => {\n if (!disabled) {\n e.preventDefault();\n const clientX = isTouchEvent(e.nativeEvent)\n ? e.nativeEvent.touches[0].clientX\n : e.nativeEvent.clientX;\n setDragStartX(clientX);\n onStart?.();\n }\n };\n\n const onMouseMove = useCallback(\n (e: MouseEvent | TouchEvent) => {\n if (typeof dragStartX !== \"number\") {\n return;\n }\n\n const clientX = isTouchEvent(e) ? e.touches[0].clientX : e.clientX;\n const dragDelta = clientX - dragStartX;\n\n if (!dragDelta) {\n return;\n }\n\n const nextDragX = position + dragDelta;\n if (!isDragging && Math.abs(nextDragX)) {\n setIsDragging(true);\n }\n\n const nextDragXBounded = (() => {\n if (nextDragX > bounds.right) {\n return bounds.right;\n }\n\n if (nextDragX < bounds.left) {\n return bounds.left;\n }\n\n return nextDragX;\n })();\n\n setDragX(nextDragXBounded);\n onDrag?.({ x: nextDragXBounded });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onDrag, setDragX, isDragging, dragStartX]\n );\n\n const onMouseUp = useCallback(() => {\n setDragStartX(undefined);\n setDragX(undefined);\n setIsDragging(false);\n onStop?.();\n }, [onStop, setDragStartX]);\n\n useEffect(() => {\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"touchmove\", onMouseMove);\n\n return () => {\n window.removeEventListener(\"mousemove\", onMouseMove);\n window.removeEventListener(\"touchmove\", onMouseMove);\n };\n }, [onMouseMove]);\n\n useEffect(() => {\n window.addEventListener(\"mouseup\", onMouseUp);\n window.addEventListener(\"touchend\", onMouseUp);\n\n return () => {\n window.removeEventListener(\"mouseup\", onMouseUp);\n window.removeEventListener(\"touchend\", onMouseUp);\n };\n }, [onMouseUp]);\n\n return isValidElement(children)\n ? cloneElement<SwitchThumbProps>(children, {\n onMouseDown: startDrag,\n onTouchStart: startDrag,\n style: { ...style, transform: `translateX(${isDragging ? dragX : position}px)` },\n })\n : null;\n};\n","import type { RefObject } from \"react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\n// This hook is a clone of useResizeObserver in b2c-sales/hooks\n\ntype Size = {\n width: number | undefined;\n height: number | undefined;\n};\n\ntype UseResizeObserverOptions<T extends HTMLElement = HTMLElement> = {\n ref: RefObject<T | null>;\n onResize?: (size: Size) => void;\n box?: \"border-box\" | \"content-box\" | \"device-pixel-content-box\";\n round?: boolean;\n};\n\nconst initialSize: Size = {\n width: undefined,\n height: undefined,\n};\n\nexport function useResizeObserver<T extends HTMLElement = HTMLElement>(\n options: UseResizeObserverOptions<T>\n): Size {\n const { ref, box = \"content-box\", round } = options;\n const [{ width, height }, setSize] = useState<Size>(initialSize);\n const isMounted = useIsMounted();\n const previousSize = useRef<Size>({ ...initialSize });\n const onResize = useRef<((size: Size) => void) | undefined>(undefined);\n onResize.current = options.onResize;\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (typeof window === \"undefined\" || !(\"ResizeObserver\" in window)) {\n return;\n }\n\n const observer = new ResizeObserver(([entry]) => {\n const boxProp =\n\n box === \"border-box\"\n ? \"borderBoxSize\"\n : box === \"device-pixel-content-box\"\n ? \"devicePixelContentBoxSize\"\n : \"contentBoxSize\";\n\n const newWidth = extractSize(entry, boxProp, \"inlineSize\");\n const newHeight = extractSize(entry, boxProp, \"blockSize\");\n\n const hasChanged =\n previousSize.current.width !== newWidth || previousSize.current.height !== newHeight;\n\n if (hasChanged) {\n const newSize: Size = {\n width: newWidth && round ? Math.round(newWidth) : newWidth,\n height: newHeight && round ? Math.round(newHeight) : newHeight,\n };\n previousSize.current.width = newWidth;\n previousSize.current.height = newHeight;\n\n if (onResize.current) {\n onResize.current(newSize);\n } else {\n if (isMounted()) {\n setSize(newSize);\n }\n }\n }\n });\n\n observer.observe(ref.current, { box });\n\n return () => {\n observer.disconnect();\n };\n }, [box, ref, isMounted, round]);\n\n return { width, height };\n}\n\ntype BoxSizesKey = keyof Pick<\n ResizeObserverEntry,\n \"borderBoxSize\" | \"contentBoxSize\" | \"devicePixelContentBoxSize\"\n>;\n\nfunction extractSize(\n entry: ResizeObserverEntry,\n box: BoxSizesKey,\n sizeType: keyof ResizeObserverSize\n): number | undefined {\n if (!entry[box]) {\n if (box === \"contentBoxSize\") {\n return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n }\n return undefined;\n }\n\n return Array.isArray(entry[box])\n ? entry[box][0][sizeType]\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Support Firefox's non-standard behavior\n (entry[box][sizeType] as number);\n}\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n\n useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return useCallback(() => isMounted.current, []);\n}\n","import { type RefObject, useRef, useState } from \"react\";\n\nimport { useResizeObserver } from \"./useResizeObserver\";\n\ntype UseToggleDragProps = {\n checked: boolean;\n onChange: ((checked: boolean) => void) | undefined;\n};\n\nexport const useToggleDrag = ({ checked, onChange }: UseToggleDragProps) => {\n const trackRef: RefObject<HTMLDivElement | null> = useRef(null);\n const thumbRef = useRef<HTMLSpanElement>(null);\n const [dragX, setDragX] = useState<number | undefined>(undefined);\n const [isDragging, setIsDragging] = useState(false);\n const [dragStopped, setDragStopped] = useState(0);\n\n const { height: thumbHeight = 0 } = useResizeObserver({ ref: thumbRef, round: true });\n const { height: switchHeight = 0 } = useResizeObserver({ ref: trackRef, round: true });\n\n const switchThumbHeightDelta = (switchHeight || 0) - thumbHeight;\n const maxDragRange = thumbHeight + switchThumbHeightDelta;\n const minDragRange = switchThumbHeightDelta / 2;\n const halfMaxDragRange = maxDragRange / 2;\n const isDraggedHalfway =\n typeof dragX === \"number\" && (checked ? dragX < halfMaxDragRange : dragX > halfMaxDragRange);\n\n const onDrag = ({ x }: { x: number }) => {\n setDragX(x);\n const dragDelta = Math.abs((checked ? maxDragRange : minDragRange) - x);\n\n // Add a threshold here for then accidentally dragging when clicking/touching\n dragDelta > 2 && setIsDragging(true);\n };\n\n const onStop = () => {\n setIsDragging(false);\n isDragging && setDragStopped(Date.now());\n if (isDraggedHalfway) {\n onChange?.(!checked);\n }\n };\n\n const onChangeWithDrag = () => {\n if (Date.now() - dragStopped > 50) {\n onChange?.(!checked);\n }\n setDragX(undefined);\n };\n\n return {\n trackRef,\n thumbRef,\n isDragging,\n bounds: { left: minDragRange, right: maxDragRange },\n position: checked ? maxDragRange : minDragRange,\n onDrag,\n onStop,\n onChangeWithDrag,\n };\n};\n","import React, { forwardRef, useState } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Icon } from \"@purpur/icon\";\nimport { checkmarkBold } from \"@purpur/icon/assets/checkmark-bold\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport * as Switch from \"@radix-ui/react-switch\";\nimport c from \"classnames/bind\";\n\nimport { DraggableX } from \"./DraggableX\";\nimport { useToggleDrag } from \"./hooks/useToggleDrag\";\nimport styles from \"./toggle.module.scss\";\n\nexport type ToggleProps = Omit<BaseProps<\"button\">, \"onChange\" | \"children\" | \"id\"> & {\n /**\n * To use when no label is given.\n * */\n [\"aria-label\"]?: string;\n /**\n * To use with custom label (not recommended).\n * */\n [\"aria-labelledby\"]?: string;\n /**\n * The controlled state of the toggle. Must be used in conjunction with `onChange`.\n * */\n checked?: boolean;\n /**\n * The state of the toggle when it is initially rendered. Use when you do not need to control its state.\n * */\n defaultChecked?: boolean;\n /**\n * When `true`, prevents the user from interacting with the toggle.\n * */\n disabled?: boolean;\n /**\n * When `true`, the toggle isn't draggable.\n * */\n disableDrag?: boolean;\n /**\n * ID of the toggle.\n * */\n id: string;\n /**\n * The label of the toggle.\n * */\n label?: string;\n /**\n * Set to decide which side of the toggle the label should be rendered.\n * */\n labelPosition?: \"left\" | \"right\";\n /**\n * The name of the toggle. Submitted with its owning form as part of a name/value pair, when wrapped in a form.\n * */\n name?: string;\n /**\n * Event handler called when the toggle is toggled.\n * */\n onChange?: (checked: boolean) => void;\n /**\n * When `true`, indicates that the user must check the toggle before the owning form can be submitted..\n * */\n required?: boolean;\n /**\n * The value given as data when wrapped with a form and submitted with a name.\n * */\n value?: string;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-toggle\";\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n className,\n label,\n onChange,\n labelPosition = \"right\",\n checked,\n disableDrag,\n defaultChecked,\n ...props\n },\n ref\n ) => {\n const [internalChecked, setInternalChecked] = useState(\n typeof checked === \"boolean\" ? checked : !!defaultChecked\n );\n const isChecked = Boolean(typeof checked === \"boolean\" ? checked : internalChecked);\n const { thumbRef, trackRef, isDragging, onChangeWithDrag, ...draggableXProps } = useToggleDrag({\n checked: isChecked,\n onChange: (value) => {\n if (!props.disabled) {\n onChange?.(value);\n setInternalChecked(value);\n }\n },\n });\n\n const renderLabel = () => (\n <Label\n htmlFor={props.id}\n data-testid={dataTestId && `${dataTestId}-label`}\n disabled={props.disabled}\n className={cx(`${rootClassName}__label`, `${rootClassName}__label--${labelPosition}`)}\n >\n <Paragraph disabled={props.disabled}>{label}</Paragraph>\n </Label>\n );\n\n return (\n <div className={cx(className, `${rootClassName}__container`)}>\n {label && labelPosition === \"left\" && renderLabel()}\n <Switch.Root\n {...props}\n ref={ref}\n id={props.id}\n data-testid={dataTestId}\n className={cx(rootClassName)}\n onCheckedChange={onChangeWithDrag}\n checked={isChecked}\n >\n <span ref={trackRef} className={cx(`${rootClassName}__track`)}>\n <span className={cx(`${rootClassName}__checkmark-container`)}>\n <Icon className={cx(`${rootClassName}__checkmark`)} svg={checkmarkBold} size=\"xxs\" />\n </span>\n <DraggableX disabled={disableDrag} {...draggableXProps}>\n <Switch.Thumb\n ref={thumbRef}\n data-testid={dataTestId && `${dataTestId}-thumb`}\n className={cx(`${rootClassName}__thumb`, {\n [`${rootClassName}__thumb--dragging`]: isDragging,\n })}\n />\n </DraggableX>\n </span>\n </Switch.Root>\n {label && labelPosition === \"right\" && renderLabel()}\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n"],"names":["SWITCH_NAME","createSwitchContext","createContextScope","SwitchProvider","useSwitchContext","Switch","React","props","forwardedRef","__scopeSwitch","name","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","useComposedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","checked","setChecked","useControllableState","jsxs","jsx","Primitive","getState","composeEventHandlers","event","prevChecked","BubbleInput","THUMB_NAME","SwitchThumb","thumbProps","context","control","bubbles","inputProps","ref","usePrevious","controlSize","useSize","input","inputProto","Root","Thumb","isTouchEvent","DraggableX","children","onStart","onDrag","onStop","bounds","position","style","dragX","setDragX","useState","dragStartX","setDragStartX","isDragging","setIsDragging","startDrag","e","clientX","onMouseMove","useCallback","dragDelta","nextDragX","nextDragXBounded","onMouseUp","useEffect","isValidElement","cloneElement","initialSize","useResizeObserver","options","box","round","width","height","setSize","isMounted","useIsMounted","previousSize","useRef","onResize","observer","entry","boxProp","newWidth","extractSize","newHeight","newSize","sizeType","useToggleDrag","onChange","trackRef","thumbRef","dragStopped","setDragStopped","thumbHeight","switchHeight","switchThumbHeightDelta","maxDragRange","minDragRange","halfMaxDragRange","isDraggedHalfway","x","cx","c","styles","rootClassName","Toggle","forwardRef","dataTestId","className","label","labelPosition","disableDrag","internalChecked","setInternalChecked","isChecked","onChangeWithDrag","draggableXProps","renderLabel","Label","Paragraph","Switch.Root","Icon","checkmarkBold","Switch.Thumb"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const p=require("react/jsx-runtime"),z=require("react"),le=require("./button-ChYUPi2k.js"),at=require("./info.es-Br84jly5.js"),ue=require("./paragraph-BsI53OR0.js"),ct=require("./variables-BSBunpiY.js"),he=require("react-dom"),T=require("./floating-ui.react-dom-z0lMBJ4R.js"),lt=require("./bind-DeUYJ6m9.js");function ve(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const i=ve(z),ut=ve(he);function _(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),n===!1||!o.defaultPrevented)return t?.(o)}}function de(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function me(...e){return t=>{let n=!1;const r=e.map(o=>{const s=de(o,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let o=0;o<r.length;o++){const s=r[o];typeof s=="function"?s():de(e[o],null)}}}}function S(...e){return i.useCallback(me(...e),e)}function ye(e,t=[]){let n=[];function r(s,a){const u=i.createContext(a),c=n.length;n=[...n,a];const l=f=>{const{scope:v,children:h,...m}=f,y=v?.[e]?.[c]||u,x=i.useMemo(()=>m,Object.values(m));return p.jsx(y.Provider,{value:x,children:h})};l.displayName=s+"Provider";function d(f,v){const h=v?.[e]?.[c]||u,m=i.useContext(h);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[l,d]}const o=()=>{const s=n.map(a=>i.createContext(a));return function(u){const c=u?.[e]||s;return i.useMemo(()=>({[`__scope${e}`]:{...u,[e]:c}}),[u,c])}};return o.scopeName=e,[r,dt(o,...t)]}function dt(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const a=r.reduce((u,{useScope:c,scopeName:l})=>{const f=c(s)[`__scope${l}`];return{...u,...f}},{});return i.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var ge=i.forwardRef((e,t)=>{const{children:n,...r}=e,o=i.Children.toArray(n),s=o.find(pt);if(s){const a=s.props.children,u=o.map(c=>c===s?i.Children.count(a)>1?i.Children.only(null):i.isValidElement(a)?a.props.children:null:c);return p.jsx(X,{...r,ref:t,children:i.isValidElement(a)?i.cloneElement(a,void 0,u):null})}return p.jsx(X,{...r,ref:t,children:n})});ge.displayName="Slot";var X=i.forwardRef((e,t)=>{const{children:n,...r}=e;if(i.isValidElement(n)){const o=ht(n),s=ft(r,n.props);return n.type!==i.Fragment&&(s.ref=t?me(t,o):o),i.cloneElement(n,s)}return i.Children.count(n)>1?i.Children.only(null):null});X.displayName="SlotClone";var xe=({children:e})=>p.jsx(p.Fragment,{children:e});function pt(e){return i.isValidElement(e)&&e.type===xe}function ft(e,t){const n={...t};for(const r in t){const o=e[r],s=t[r];/^on[A-Z]/.test(r)?o&&s?n[r]=(...u)=>{s(...u),o(...u)}:o&&(n[r]=o):r==="style"?n[r]={...o,...s}:r==="className"&&(n[r]=[o,s].filter(Boolean).join(" "))}return{...e,...n}}function ht(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var vt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],A=vt.reduce((e,t)=>{const n=i.forwardRef((r,o)=>{const{asChild:s,...a}=r,u=s?ge:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(u,{...a,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function mt(e,t){e&&ut.flushSync(()=>e.dispatchEvent(t))}function j(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>(...n)=>t.current?.(...n),[])}function yt(e,t=globalThis?.document){const n=j(e);i.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var gt="DismissableLayer",K="dismissableLayer.update",xt="dismissableLayer.pointerDownOutside",wt="dismissableLayer.focusOutside",pe,we=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Pe=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:a,onDismiss:u,...c}=e,l=i.useContext(we),[d,f]=i.useState(null),v=d?.ownerDocument??globalThis?.document,[,h]=i.useState({}),m=S(t,g=>f(g)),y=Array.from(l.layers),[x]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),P=y.indexOf(x),w=d?y.indexOf(d):-1,C=l.layersWithOutsidePointerEventsDisabled.size>0,E=w>=P,b=Ct(g=>{const R=g.target,$=[...l.branches].some(k=>k.contains(R));!E||$||(o?.(g),a?.(g),g.defaultPrevented||u?.())},v),O=bt(g=>{const R=g.target;[...l.branches].some(k=>k.contains(R))||(s?.(g),a?.(g),g.defaultPrevented||u?.())},v);return yt(g=>{w===l.layers.size-1&&(r?.(g),!g.defaultPrevented&&u&&(g.preventDefault(),u()))},v),i.useEffect(()=>{if(d)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(pe=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(d)),l.layers.add(d),fe(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=pe)}},[d,v,n,l]),i.useEffect(()=>()=>{d&&(l.layers.delete(d),l.layersWithOutsidePointerEventsDisabled.delete(d),fe())},[d,l]),i.useEffect(()=>{const g=()=>h({});return document.addEventListener(K,g),()=>document.removeEventListener(K,g)},[]),p.jsx(A.div,{...c,ref:m,style:{pointerEvents:C?E?"auto":"none":void 0,...e.style},onFocusCapture:_(e.onFocusCapture,O.onFocusCapture),onBlurCapture:_(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:_(e.onPointerDownCapture,b.onPointerDownCapture)})});Pe.displayName=gt;var Pt="DismissableLayerBranch",Et=i.forwardRef((e,t)=>{const n=i.useContext(we),r=i.useRef(null),o=S(t,r);return i.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),p.jsx(A.div,{...e,ref:o})});Et.displayName=Pt;function Ct(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1),o=i.useRef(()=>{});return i.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let c=function(){Ee(xt,n,l,{discrete:!0})};const l={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=c,t.addEventListener("click",o.current,{once:!0})):c()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",s),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function bt(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1);return i.useEffect(()=>{const o=s=>{s.target&&!r.current&&Ee(wt,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function fe(){const e=new CustomEvent(K);document.dispatchEvent(e)}function Ee(e,t,n,{discrete:r}){const o=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?mt(o,s):o.dispatchEvent(s)}var N=globalThis?.document?i.useLayoutEffect:()=>{},Tt=i.useId||(()=>{}),_t=0;function Ot(e){const[t,n]=i.useState(Tt());return N(()=>{n(r=>r??String(_t++))},[e]),t?`radix-${t}`:""}var At="Arrow",Ce=i.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...s}=e;return p.jsx(A.svg,{...s,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:p.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ce.displayName=At;var Rt=Ce;function Nt(e){const[t,n]=i.useState(void 0);return N(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let a,u;if("borderBoxSize"in s){const c=s.borderBoxSize,l=Array.isArray(c)?c[0]:c;a=l.inlineSize,u=l.blockSize}else a=e.offsetWidth,u=e.offsetHeight;n({width:a,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Q="Popper",[be,Te]=ye(Q),[St,_e]=be(Q),Oe=e=>{const{__scopePopper:t,children:n}=e,[r,o]=i.useState(null);return p.jsx(St,{scope:t,anchor:r,onAnchorChange:o,children:n})};Oe.displayName=Q;var Ae="PopperAnchor",Re=i.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,s=_e(Ae,n),a=i.useRef(null),u=S(t,a);return i.useEffect(()=>{s.onAnchorChange(r?.current||a.current)}),r?null:p.jsx(A.div,{...o,ref:u})});Re.displayName=Ae;var ee="PopperContent",[Dt,Lt]=be(ee),Ne=i.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:s="center",alignOffset:a=0,arrowPadding:u=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:v=!1,updatePositionStrategy:h="optimized",onPlaced:m,...y}=e,x=_e(ee,n),[P,w]=i.useState(null),C=S(t,M=>w(M)),[E,b]=i.useState(null),O=Nt(E),g=O?.width??0,R=O?.height??0,$=r+(s!=="center"?"-"+s:""),k=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},oe=Array.isArray(l)?l:[l],Ye=oe.length>0,H={padding:k,boundary:oe.filter(jt),altBoundary:Ye},{refs:Xe,floatingStyles:se,placement:Ke,isPositioned:W,middlewareData:D}=T.useFloating({strategy:"fixed",placement:$,whileElementsMounted:(...M)=>T.autoUpdate(...M,{animationFrame:h==="always"}),elements:{reference:x.anchor},middleware:[T.offset({mainAxis:o+R,alignmentAxis:a}),c&&T.shift({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?T.limitShift():void 0,...H}),c&&T.flip({...H}),T.size({...H,apply:({elements:M,rects:ce,availableWidth:rt,availableHeight:ot})=>{const{width:st,height:it}=ce.reference,B=M.floating.style;B.setProperty("--radix-popper-available-width",`${rt}px`),B.setProperty("--radix-popper-available-height",`${ot}px`),B.setProperty("--radix-popper-anchor-width",`${st}px`),B.setProperty("--radix-popper-anchor-height",`${it}px`)}}),E&&T.arrow({element:E,padding:u}),kt({arrowWidth:g,arrowHeight:R}),v&&T.hide({strategy:"referenceHidden",...H})]}),[ie,Ze]=Le(Ke),ae=j(m);N(()=>{W&&ae?.()},[W,ae]);const Je=D.arrow?.x,Qe=D.arrow?.y,et=D.arrow?.centerOffset!==0,[tt,nt]=i.useState();return N(()=>{P&&nt(window.getComputedStyle(P).zIndex)},[P]),p.jsx("div",{ref:Xe.setFloating,"data-radix-popper-content-wrapper":"",style:{...se,transform:W?se.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:tt,"--radix-popper-transform-origin":[D.transformOrigin?.x,D.transformOrigin?.y].join(" "),...D.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:p.jsx(Dt,{scope:n,placedSide:ie,onArrowChange:b,arrowX:Je,arrowY:Qe,shouldHideArrow:et,children:p.jsx(A.div,{"data-side":ie,"data-align":Ze,...y,ref:C,style:{...y.style,animation:W?void 0:"none"}})})})});Ne.displayName=ee;var Se="PopperArrow",It={top:"bottom",right:"left",bottom:"top",left:"right"},De=i.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,s=Lt(Se,r),a=It[s.placedSide];return p.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:p.jsx(Rt,{...o,ref:n,style:{...o.style,display:"block"}})})});De.displayName=Se;function jt(e){return e!==null}var kt=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,a=o.arrow?.centerOffset!==0,u=a?0:e.arrowWidth,c=a?0:e.arrowHeight,[l,d]=Le(n),f={start:"0%",center:"50%",end:"100%"}[d],v=(o.arrow?.x??0)+u/2,h=(o.arrow?.y??0)+c/2;let m="",y="";return l==="bottom"?(m=a?f:`${v}px`,y=`${-c}px`):l==="top"?(m=a?f:`${v}px`,y=`${r.floating.height+c}px`):l==="right"?(m=`${-c}px`,y=a?f:`${h}px`):l==="left"&&(m=`${r.floating.width+c}px`,y=a?f:`${h}px`),{data:{x:m,y}}}});function Le(e){const[t,n="center"]=e.split("-");return[t,n]}var Mt=Oe,Ft=Re,$t=Ne,Ht=De,Wt="Portal",Ie=i.forwardRef((e,t)=>{const{container:n,...r}=e,[o,s]=i.useState(!1);N(()=>s(!0),[]);const a=n||o&&globalThis?.document?.body;return a?he.createPortal(p.jsx(A.div,{...r,ref:t}),a):null});Ie.displayName=Wt;function Bt(e,t){return i.useReducer((n,r)=>t[n][r]??n,e)}var te=e=>{const{present:t,children:n}=e,r=Ut(t),o=typeof n=="function"?n({present:r.isPresent}):i.Children.only(n),s=S(r.ref,zt(o));return typeof n=="function"||r.isPresent?i.cloneElement(o,{ref:s}):null};te.displayName="Presence";function Ut(e){const[t,n]=i.useState(),r=i.useRef({}),o=i.useRef(e),s=i.useRef("none"),a=e?"mounted":"unmounted",[u,c]=Bt(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return i.useEffect(()=>{const l=U(r.current);s.current=u==="mounted"?l:"none"},[u]),N(()=>{const l=r.current,d=o.current;if(d!==e){const v=s.current,h=U(l);e?c("MOUNT"):h==="none"||l?.display==="none"?c("UNMOUNT"):c(d&&v!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,c]),N(()=>{if(t){let l;const d=t.ownerDocument.defaultView??window,f=h=>{const y=U(r.current).includes(h.animationName);if(h.target===t&&y&&(c("ANIMATION_END"),!o.current)){const x=t.style.animationFillMode;t.style.animationFillMode="forwards",l=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=x)})}},v=h=>{h.target===t&&(s.current=U(r.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(l),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:i.useCallback(l=>{l&&(r.current=getComputedStyle(l)),n(l)},[])}}function U(e){return e?.animationName||"none"}function zt(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Vt({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=Gt({defaultProp:t,onChange:n}),s=e!==void 0,a=s?e:r,u=j(n),c=i.useCallback(l=>{if(s){const f=typeof l=="function"?l(e):l;f!==e&&u(f)}else o(l)},[s,e,o,u]);return[a,c]}function Gt({defaultProp:e,onChange:t}){const n=i.useState(e),[r]=n,o=i.useRef(r),s=j(t);return i.useEffect(()=>{o.current!==r&&(s(r),o.current=r)},[r,o,s]),n}var qt="VisuallyHidden",je=i.forwardRef((e,t)=>p.jsx(A.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));je.displayName=qt;var Yt=je,[V]=ye("Tooltip",[Te]),G=Te(),ke="TooltipProvider",Xt=700,Z="tooltip.open",[Kt,ne]=V(ke),Me=e=>{const{__scopeTooltip:t,delayDuration:n=Xt,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:s}=e,[a,u]=i.useState(!0),c=i.useRef(!1),l=i.useRef(0);return i.useEffect(()=>{const d=l.current;return()=>window.clearTimeout(d)},[]),p.jsx(Kt,{scope:t,isOpenDelayed:a,delayDuration:n,onOpen:i.useCallback(()=>{window.clearTimeout(l.current),u(!1)},[]),onClose:i.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>u(!0),r)},[r]),isPointerInTransitRef:c,onPointerInTransitChange:i.useCallback(d=>{c.current=d},[]),disableHoverableContent:o,children:s})};Me.displayName=ke;var q="Tooltip",[Zt,F]=V(q),Fe=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o=!1,onOpenChange:s,disableHoverableContent:a,delayDuration:u}=e,c=ne(q,e.__scopeTooltip),l=G(t),[d,f]=i.useState(null),v=Ot(),h=i.useRef(0),m=a??c.disableHoverableContent,y=u??c.delayDuration,x=i.useRef(!1),[P=!1,w]=Vt({prop:r,defaultProp:o,onChange:g=>{g?(c.onOpen(),document.dispatchEvent(new CustomEvent(Z))):c.onClose(),s?.(g)}}),C=i.useMemo(()=>P?x.current?"delayed-open":"instant-open":"closed",[P]),E=i.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x.current=!1,w(!0)},[w]),b=i.useCallback(()=>{window.clearTimeout(h.current),h.current=0,w(!1)},[w]),O=i.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{x.current=!0,w(!0),h.current=0},y)},[y,w]);return i.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),p.jsx(Mt,{...l,children:p.jsx(Zt,{scope:t,contentId:v,open:P,stateAttribute:C,trigger:d,onTriggerChange:f,onTriggerEnter:i.useCallback(()=>{c.isOpenDelayed?O():E()},[c.isOpenDelayed,O,E]),onTriggerLeave:i.useCallback(()=>{m?b():(window.clearTimeout(h.current),h.current=0)},[b,m]),onOpen:E,onClose:b,disableHoverableContent:m,children:n})})};Fe.displayName=q;var J="TooltipTrigger",$e=i.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=F(J,n),s=ne(J,n),a=G(n),u=i.useRef(null),c=S(t,u,o.onTriggerChange),l=i.useRef(!1),d=i.useRef(!1),f=i.useCallback(()=>l.current=!1,[]);return i.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),p.jsx(Ft,{asChild:!0,...a,children:p.jsx(A.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:c,onPointerMove:_(e.onPointerMove,v=>{v.pointerType!=="touch"&&!d.current&&!s.isPointerInTransitRef.current&&(o.onTriggerEnter(),d.current=!0)}),onPointerLeave:_(e.onPointerLeave,()=>{o.onTriggerLeave(),d.current=!1}),onPointerDown:_(e.onPointerDown,()=>{l.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:_(e.onFocus,()=>{l.current||o.onOpen()}),onBlur:_(e.onBlur,o.onClose),onClick:_(e.onClick,o.onClose)})})});$e.displayName=J;var re="TooltipPortal",[Jt,Qt]=V(re,{forceMount:void 0}),He=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,s=F(re,t);return p.jsx(Jt,{scope:t,forceMount:n,children:p.jsx(te,{present:n||s.open,children:p.jsx(Ie,{asChild:!0,container:o,children:r})})})};He.displayName=re;var I="TooltipContent",We=i.forwardRef((e,t)=>{const n=Qt(I,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...s}=e,a=F(I,e.__scopeTooltip);return p.jsx(te,{present:r||a.open,children:a.disableHoverableContent?p.jsx(Be,{side:o,...s,ref:t}):p.jsx(en,{side:o,...s,ref:t})})}),en=i.forwardRef((e,t)=>{const n=F(I,e.__scopeTooltip),r=ne(I,e.__scopeTooltip),o=i.useRef(null),s=S(t,o),[a,u]=i.useState(null),{trigger:c,onClose:l}=n,d=o.current,{onPointerInTransitChange:f}=r,v=i.useCallback(()=>{u(null),f(!1)},[f]),h=i.useCallback((m,y)=>{const x=m.currentTarget,P={x:m.clientX,y:m.clientY},w=rn(P,x.getBoundingClientRect()),C=on(P,w),E=sn(y.getBoundingClientRect()),b=cn([...C,...E]);u(b),f(!0)},[f]);return i.useEffect(()=>()=>v(),[v]),i.useEffect(()=>{if(c&&d){const m=x=>h(x,d),y=x=>h(x,c);return c.addEventListener("pointerleave",m),d.addEventListener("pointerleave",y),()=>{c.removeEventListener("pointerleave",m),d.removeEventListener("pointerleave",y)}}},[c,d,h,v]),i.useEffect(()=>{if(a){const m=y=>{const x=y.target,P={x:y.clientX,y:y.clientY},w=c?.contains(x)||d?.contains(x),C=!an(P,a);w?v():C&&(v(),l())};return document.addEventListener("pointermove",m),()=>document.removeEventListener("pointermove",m)}},[c,d,a,l,v]),p.jsx(Be,{...e,ref:s})}),[tn,nn]=V(q,{isInside:!1}),Be=i.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:s,onPointerDownOutside:a,...u}=e,c=F(I,n),l=G(n),{onClose:d}=c;return i.useEffect(()=>(document.addEventListener(Z,d),()=>document.removeEventListener(Z,d)),[d]),i.useEffect(()=>{if(c.trigger){const f=v=>{v.target?.contains(c.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[c.trigger,d]),p.jsx(Pe,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:p.jsxs($t,{"data-state":c.stateAttribute,...l,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[p.jsx(xe,{children:r}),p.jsx(tn,{scope:n,isInside:!0,children:p.jsx(Yt,{id:c.contentId,role:"tooltip",children:o||r})})]})})});We.displayName=I;var Ue="TooltipArrow",ze=i.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=G(n);return nn(Ue,n).isInside?null:p.jsx(Ht,{...o,...r,ref:t})});ze.displayName=Ue;function rn(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,o,s)){case s:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function on(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function sn(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function an(e,t){const{x:n,y:r}=e;let o=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const u=t[s].x,c=t[s].y,l=t[a].x,d=t[a].y;c>r!=d>r&&n<(l-u)*(r-c)/(d-c)+u&&(o=!o)}return o}function cn(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),ln(t)}function ln(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const o=e[r];for(;t.length>=2;){const s=t[t.length-1],a=t[t.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const s=n[n.length-1],a=n[n.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var un=Me,dn=Fe,pn=$e,fn=He,hn=We,vn=ze;const mn="_slideDownAndFade_fkagk_1",yn="_slideLeftAndFade_fkagk_1",gn="_slideUpAndFade_fkagk_1",xn="_slideRightAndFade_fkagk_1",wn={"purpur-tooltip":"_purpur-tooltip_fkagk_1","purpur-tooltip__content":"_purpur-tooltip__content_fkagk_4","purpur-tooltip__content--primary":"_purpur-tooltip__content--primary_fkagk_14","purpur-tooltip__content--primary-negative":"_purpur-tooltip__content--primary-negative_fkagk_17",slideDownAndFade:mn,slideLeftAndFade:yn,slideUpAndFade:gn,slideRightAndFade:xn,"purpur-tooltip__arrow--primary":"_purpur-tooltip__arrow--primary_fkagk_32","purpur-tooltip__arrow--primary-negative":"_purpur-tooltip__arrow--primary-negative_fkagk_35"},Y=lt.c.bind(wn),Ve={TOP:"top",BOTTOM:"bottom",LEFT:"left",RIGHT:"right"},Ge={START:"start",CENTER:"center",END:"end"},L="purpur-tooltip",qe=z.forwardRef(({["data-testid"]:e,buttonSize:t="md",children:n,className:r,contentClassName:o,negative:s=!1,position:a=Ve.TOP,align:u=Ge.CENTER,triggerAriaLabel:c,triggerElement:l,...d},f)=>{const[v,h]=z.useState(!1),m=Y(r,L,`${L}--primary${s?"-negative":""}`),y=p.jsx(le.Button,{ref:f,"aria-label":c,"aria-expanded":v,variant:le.BUTTON_VARIANT.TERTIARY_PURPLE,negative:s,iconOnly:!0,"data-testid":`${e}-trigger-button`,size:t,children:p.jsx(at.r,{size:"md"})});return p.jsx("div",{"data-testid":e,className:m,children:p.jsx(un,{delayDuration:parseInt(ct.purpurMotionDuration400),children:p.jsxs(dn,{open:v,onOpenChange:h,...d,children:[p.jsx(pn,{asChild:!0,onClick:x=>{x.preventDefault(),h(!0)},children:z.Children.count(l)===0?y:l}),p.jsx(fn,{children:p.jsxs(hn,{side:a,align:u,className:Y(o,`${L}__content`,`${L}__content--primary${s?"-negative":""}`),sideOffset:-5,"data-testid":`${e}-content`,children:[typeof n=="string"?p.jsx(ue.Paragraph,{variant:ue.ParagraphVariant.PARAGRAPH100,negative:!s,"data-testid":`${e}-paragraph`,children:n}):n,p.jsx(vn,{className:Y(`${L}__arrow`,`${L}__arrow--primary${s?"-negative":""}`)})]})})]})})})});qe.displayName="Tooltip";exports.TOOLTIP_ALIGN=Ge;exports.TOOLTIP_POSITION=Ve;exports.Tooltip=qe;
|
|
2
|
-
//# sourceMappingURL=tooltip-
|
|
1
|
+
"use strict";const p=require("react/jsx-runtime"),z=require("react"),le=require("./button-ChYUPi2k.js"),at=require("./info.es-Br84jly5.js"),ue=require("./paragraph-BsI53OR0.js"),ct=require("./variables-BSBunpiY.js"),he=require("react-dom"),T=require("./floating-ui.react-dom-Cc_YSprQ.js"),lt=require("./bind-DeUYJ6m9.js");function ve(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const i=ve(z),ut=ve(he);function _(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),n===!1||!o.defaultPrevented)return t?.(o)}}function de(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function me(...e){return t=>{let n=!1;const r=e.map(o=>{const s=de(o,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let o=0;o<r.length;o++){const s=r[o];typeof s=="function"?s():de(e[o],null)}}}}function S(...e){return i.useCallback(me(...e),e)}function ye(e,t=[]){let n=[];function r(s,a){const u=i.createContext(a),c=n.length;n=[...n,a];const l=f=>{const{scope:v,children:h,...m}=f,y=v?.[e]?.[c]||u,x=i.useMemo(()=>m,Object.values(m));return p.jsx(y.Provider,{value:x,children:h})};l.displayName=s+"Provider";function d(f,v){const h=v?.[e]?.[c]||u,m=i.useContext(h);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[l,d]}const o=()=>{const s=n.map(a=>i.createContext(a));return function(u){const c=u?.[e]||s;return i.useMemo(()=>({[`__scope${e}`]:{...u,[e]:c}}),[u,c])}};return o.scopeName=e,[r,dt(o,...t)]}function dt(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const a=r.reduce((u,{useScope:c,scopeName:l})=>{const f=c(s)[`__scope${l}`];return{...u,...f}},{});return i.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var ge=i.forwardRef((e,t)=>{const{children:n,...r}=e,o=i.Children.toArray(n),s=o.find(pt);if(s){const a=s.props.children,u=o.map(c=>c===s?i.Children.count(a)>1?i.Children.only(null):i.isValidElement(a)?a.props.children:null:c);return p.jsx(X,{...r,ref:t,children:i.isValidElement(a)?i.cloneElement(a,void 0,u):null})}return p.jsx(X,{...r,ref:t,children:n})});ge.displayName="Slot";var X=i.forwardRef((e,t)=>{const{children:n,...r}=e;if(i.isValidElement(n)){const o=ht(n),s=ft(r,n.props);return n.type!==i.Fragment&&(s.ref=t?me(t,o):o),i.cloneElement(n,s)}return i.Children.count(n)>1?i.Children.only(null):null});X.displayName="SlotClone";var xe=({children:e})=>p.jsx(p.Fragment,{children:e});function pt(e){return i.isValidElement(e)&&e.type===xe}function ft(e,t){const n={...t};for(const r in t){const o=e[r],s=t[r];/^on[A-Z]/.test(r)?o&&s?n[r]=(...u)=>{s(...u),o(...u)}:o&&(n[r]=o):r==="style"?n[r]={...o,...s}:r==="className"&&(n[r]=[o,s].filter(Boolean).join(" "))}return{...e,...n}}function ht(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var vt=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],A=vt.reduce((e,t)=>{const n=i.forwardRef((r,o)=>{const{asChild:s,...a}=r,u=s?ge:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(u,{...a,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function mt(e,t){e&&ut.flushSync(()=>e.dispatchEvent(t))}function j(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>(...n)=>t.current?.(...n),[])}function yt(e,t=globalThis?.document){const n=j(e);i.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var gt="DismissableLayer",K="dismissableLayer.update",xt="dismissableLayer.pointerDownOutside",wt="dismissableLayer.focusOutside",pe,we=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Pe=i.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:a,onDismiss:u,...c}=e,l=i.useContext(we),[d,f]=i.useState(null),v=d?.ownerDocument??globalThis?.document,[,h]=i.useState({}),m=S(t,g=>f(g)),y=Array.from(l.layers),[x]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),P=y.indexOf(x),w=d?y.indexOf(d):-1,C=l.layersWithOutsidePointerEventsDisabled.size>0,E=w>=P,b=Ct(g=>{const R=g.target,$=[...l.branches].some(k=>k.contains(R));!E||$||(o?.(g),a?.(g),g.defaultPrevented||u?.())},v),O=bt(g=>{const R=g.target;[...l.branches].some(k=>k.contains(R))||(s?.(g),a?.(g),g.defaultPrevented||u?.())},v);return yt(g=>{w===l.layers.size-1&&(r?.(g),!g.defaultPrevented&&u&&(g.preventDefault(),u()))},v),i.useEffect(()=>{if(d)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(pe=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(d)),l.layers.add(d),fe(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=pe)}},[d,v,n,l]),i.useEffect(()=>()=>{d&&(l.layers.delete(d),l.layersWithOutsidePointerEventsDisabled.delete(d),fe())},[d,l]),i.useEffect(()=>{const g=()=>h({});return document.addEventListener(K,g),()=>document.removeEventListener(K,g)},[]),p.jsx(A.div,{...c,ref:m,style:{pointerEvents:C?E?"auto":"none":void 0,...e.style},onFocusCapture:_(e.onFocusCapture,O.onFocusCapture),onBlurCapture:_(e.onBlurCapture,O.onBlurCapture),onPointerDownCapture:_(e.onPointerDownCapture,b.onPointerDownCapture)})});Pe.displayName=gt;var Pt="DismissableLayerBranch",Et=i.forwardRef((e,t)=>{const n=i.useContext(we),r=i.useRef(null),o=S(t,r);return i.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),p.jsx(A.div,{...e,ref:o})});Et.displayName=Pt;function Ct(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1),o=i.useRef(()=>{});return i.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let c=function(){Ee(xt,n,l,{discrete:!0})};const l={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=c,t.addEventListener("click",o.current,{once:!0})):c()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",s),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function bt(e,t=globalThis?.document){const n=j(e),r=i.useRef(!1);return i.useEffect(()=>{const o=s=>{s.target&&!r.current&&Ee(wt,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function fe(){const e=new CustomEvent(K);document.dispatchEvent(e)}function Ee(e,t,n,{discrete:r}){const o=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?mt(o,s):o.dispatchEvent(s)}var N=globalThis?.document?i.useLayoutEffect:()=>{},Tt=i.useId||(()=>{}),_t=0;function Ot(e){const[t,n]=i.useState(Tt());return N(()=>{n(r=>r??String(_t++))},[e]),t?`radix-${t}`:""}var At="Arrow",Ce=i.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...s}=e;return p.jsx(A.svg,{...s,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:p.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ce.displayName=At;var Rt=Ce;function Nt(e){const[t,n]=i.useState(void 0);return N(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let a,u;if("borderBoxSize"in s){const c=s.borderBoxSize,l=Array.isArray(c)?c[0]:c;a=l.inlineSize,u=l.blockSize}else a=e.offsetWidth,u=e.offsetHeight;n({width:a,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Q="Popper",[be,Te]=ye(Q),[St,_e]=be(Q),Oe=e=>{const{__scopePopper:t,children:n}=e,[r,o]=i.useState(null);return p.jsx(St,{scope:t,anchor:r,onAnchorChange:o,children:n})};Oe.displayName=Q;var Ae="PopperAnchor",Re=i.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,s=_e(Ae,n),a=i.useRef(null),u=S(t,a);return i.useEffect(()=>{s.onAnchorChange(r?.current||a.current)}),r?null:p.jsx(A.div,{...o,ref:u})});Re.displayName=Ae;var ee="PopperContent",[Dt,Lt]=be(ee),Ne=i.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:s="center",alignOffset:a=0,arrowPadding:u=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:d=0,sticky:f="partial",hideWhenDetached:v=!1,updatePositionStrategy:h="optimized",onPlaced:m,...y}=e,x=_e(ee,n),[P,w]=i.useState(null),C=S(t,M=>w(M)),[E,b]=i.useState(null),O=Nt(E),g=O?.width??0,R=O?.height??0,$=r+(s!=="center"?"-"+s:""),k=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},oe=Array.isArray(l)?l:[l],Ye=oe.length>0,H={padding:k,boundary:oe.filter(jt),altBoundary:Ye},{refs:Xe,floatingStyles:se,placement:Ke,isPositioned:W,middlewareData:D}=T.useFloating({strategy:"fixed",placement:$,whileElementsMounted:(...M)=>T.autoUpdate(...M,{animationFrame:h==="always"}),elements:{reference:x.anchor},middleware:[T.offset({mainAxis:o+R,alignmentAxis:a}),c&&T.shift({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?T.limitShift():void 0,...H}),c&&T.flip({...H}),T.size({...H,apply:({elements:M,rects:ce,availableWidth:rt,availableHeight:ot})=>{const{width:st,height:it}=ce.reference,B=M.floating.style;B.setProperty("--radix-popper-available-width",`${rt}px`),B.setProperty("--radix-popper-available-height",`${ot}px`),B.setProperty("--radix-popper-anchor-width",`${st}px`),B.setProperty("--radix-popper-anchor-height",`${it}px`)}}),E&&T.arrow({element:E,padding:u}),kt({arrowWidth:g,arrowHeight:R}),v&&T.hide({strategy:"referenceHidden",...H})]}),[ie,Ze]=Le(Ke),ae=j(m);N(()=>{W&&ae?.()},[W,ae]);const Je=D.arrow?.x,Qe=D.arrow?.y,et=D.arrow?.centerOffset!==0,[tt,nt]=i.useState();return N(()=>{P&&nt(window.getComputedStyle(P).zIndex)},[P]),p.jsx("div",{ref:Xe.setFloating,"data-radix-popper-content-wrapper":"",style:{...se,transform:W?se.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:tt,"--radix-popper-transform-origin":[D.transformOrigin?.x,D.transformOrigin?.y].join(" "),...D.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:p.jsx(Dt,{scope:n,placedSide:ie,onArrowChange:b,arrowX:Je,arrowY:Qe,shouldHideArrow:et,children:p.jsx(A.div,{"data-side":ie,"data-align":Ze,...y,ref:C,style:{...y.style,animation:W?void 0:"none"}})})})});Ne.displayName=ee;var Se="PopperArrow",It={top:"bottom",right:"left",bottom:"top",left:"right"},De=i.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,s=Lt(Se,r),a=It[s.placedSide];return p.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:p.jsx(Rt,{...o,ref:n,style:{...o.style,display:"block"}})})});De.displayName=Se;function jt(e){return e!==null}var kt=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,a=o.arrow?.centerOffset!==0,u=a?0:e.arrowWidth,c=a?0:e.arrowHeight,[l,d]=Le(n),f={start:"0%",center:"50%",end:"100%"}[d],v=(o.arrow?.x??0)+u/2,h=(o.arrow?.y??0)+c/2;let m="",y="";return l==="bottom"?(m=a?f:`${v}px`,y=`${-c}px`):l==="top"?(m=a?f:`${v}px`,y=`${r.floating.height+c}px`):l==="right"?(m=`${-c}px`,y=a?f:`${h}px`):l==="left"&&(m=`${r.floating.width+c}px`,y=a?f:`${h}px`),{data:{x:m,y}}}});function Le(e){const[t,n="center"]=e.split("-");return[t,n]}var Mt=Oe,Ft=Re,$t=Ne,Ht=De,Wt="Portal",Ie=i.forwardRef((e,t)=>{const{container:n,...r}=e,[o,s]=i.useState(!1);N(()=>s(!0),[]);const a=n||o&&globalThis?.document?.body;return a?he.createPortal(p.jsx(A.div,{...r,ref:t}),a):null});Ie.displayName=Wt;function Bt(e,t){return i.useReducer((n,r)=>t[n][r]??n,e)}var te=e=>{const{present:t,children:n}=e,r=Ut(t),o=typeof n=="function"?n({present:r.isPresent}):i.Children.only(n),s=S(r.ref,zt(o));return typeof n=="function"||r.isPresent?i.cloneElement(o,{ref:s}):null};te.displayName="Presence";function Ut(e){const[t,n]=i.useState(),r=i.useRef({}),o=i.useRef(e),s=i.useRef("none"),a=e?"mounted":"unmounted",[u,c]=Bt(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return i.useEffect(()=>{const l=U(r.current);s.current=u==="mounted"?l:"none"},[u]),N(()=>{const l=r.current,d=o.current;if(d!==e){const v=s.current,h=U(l);e?c("MOUNT"):h==="none"||l?.display==="none"?c("UNMOUNT"):c(d&&v!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,c]),N(()=>{if(t){let l;const d=t.ownerDocument.defaultView??window,f=h=>{const y=U(r.current).includes(h.animationName);if(h.target===t&&y&&(c("ANIMATION_END"),!o.current)){const x=t.style.animationFillMode;t.style.animationFillMode="forwards",l=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=x)})}},v=h=>{h.target===t&&(s.current=U(r.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(l),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:i.useCallback(l=>{l&&(r.current=getComputedStyle(l)),n(l)},[])}}function U(e){return e?.animationName||"none"}function zt(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Vt({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=Gt({defaultProp:t,onChange:n}),s=e!==void 0,a=s?e:r,u=j(n),c=i.useCallback(l=>{if(s){const f=typeof l=="function"?l(e):l;f!==e&&u(f)}else o(l)},[s,e,o,u]);return[a,c]}function Gt({defaultProp:e,onChange:t}){const n=i.useState(e),[r]=n,o=i.useRef(r),s=j(t);return i.useEffect(()=>{o.current!==r&&(s(r),o.current=r)},[r,o,s]),n}var qt="VisuallyHidden",je=i.forwardRef((e,t)=>p.jsx(A.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));je.displayName=qt;var Yt=je,[V]=ye("Tooltip",[Te]),G=Te(),ke="TooltipProvider",Xt=700,Z="tooltip.open",[Kt,ne]=V(ke),Me=e=>{const{__scopeTooltip:t,delayDuration:n=Xt,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:s}=e,[a,u]=i.useState(!0),c=i.useRef(!1),l=i.useRef(0);return i.useEffect(()=>{const d=l.current;return()=>window.clearTimeout(d)},[]),p.jsx(Kt,{scope:t,isOpenDelayed:a,delayDuration:n,onOpen:i.useCallback(()=>{window.clearTimeout(l.current),u(!1)},[]),onClose:i.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>u(!0),r)},[r]),isPointerInTransitRef:c,onPointerInTransitChange:i.useCallback(d=>{c.current=d},[]),disableHoverableContent:o,children:s})};Me.displayName=ke;var q="Tooltip",[Zt,F]=V(q),Fe=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o=!1,onOpenChange:s,disableHoverableContent:a,delayDuration:u}=e,c=ne(q,e.__scopeTooltip),l=G(t),[d,f]=i.useState(null),v=Ot(),h=i.useRef(0),m=a??c.disableHoverableContent,y=u??c.delayDuration,x=i.useRef(!1),[P=!1,w]=Vt({prop:r,defaultProp:o,onChange:g=>{g?(c.onOpen(),document.dispatchEvent(new CustomEvent(Z))):c.onClose(),s?.(g)}}),C=i.useMemo(()=>P?x.current?"delayed-open":"instant-open":"closed",[P]),E=i.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x.current=!1,w(!0)},[w]),b=i.useCallback(()=>{window.clearTimeout(h.current),h.current=0,w(!1)},[w]),O=i.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{x.current=!0,w(!0),h.current=0},y)},[y,w]);return i.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),p.jsx(Mt,{...l,children:p.jsx(Zt,{scope:t,contentId:v,open:P,stateAttribute:C,trigger:d,onTriggerChange:f,onTriggerEnter:i.useCallback(()=>{c.isOpenDelayed?O():E()},[c.isOpenDelayed,O,E]),onTriggerLeave:i.useCallback(()=>{m?b():(window.clearTimeout(h.current),h.current=0)},[b,m]),onOpen:E,onClose:b,disableHoverableContent:m,children:n})})};Fe.displayName=q;var J="TooltipTrigger",$e=i.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=F(J,n),s=ne(J,n),a=G(n),u=i.useRef(null),c=S(t,u,o.onTriggerChange),l=i.useRef(!1),d=i.useRef(!1),f=i.useCallback(()=>l.current=!1,[]);return i.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),p.jsx(Ft,{asChild:!0,...a,children:p.jsx(A.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:c,onPointerMove:_(e.onPointerMove,v=>{v.pointerType!=="touch"&&!d.current&&!s.isPointerInTransitRef.current&&(o.onTriggerEnter(),d.current=!0)}),onPointerLeave:_(e.onPointerLeave,()=>{o.onTriggerLeave(),d.current=!1}),onPointerDown:_(e.onPointerDown,()=>{l.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:_(e.onFocus,()=>{l.current||o.onOpen()}),onBlur:_(e.onBlur,o.onClose),onClick:_(e.onClick,o.onClose)})})});$e.displayName=J;var re="TooltipPortal",[Jt,Qt]=V(re,{forceMount:void 0}),He=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,s=F(re,t);return p.jsx(Jt,{scope:t,forceMount:n,children:p.jsx(te,{present:n||s.open,children:p.jsx(Ie,{asChild:!0,container:o,children:r})})})};He.displayName=re;var I="TooltipContent",We=i.forwardRef((e,t)=>{const n=Qt(I,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...s}=e,a=F(I,e.__scopeTooltip);return p.jsx(te,{present:r||a.open,children:a.disableHoverableContent?p.jsx(Be,{side:o,...s,ref:t}):p.jsx(en,{side:o,...s,ref:t})})}),en=i.forwardRef((e,t)=>{const n=F(I,e.__scopeTooltip),r=ne(I,e.__scopeTooltip),o=i.useRef(null),s=S(t,o),[a,u]=i.useState(null),{trigger:c,onClose:l}=n,d=o.current,{onPointerInTransitChange:f}=r,v=i.useCallback(()=>{u(null),f(!1)},[f]),h=i.useCallback((m,y)=>{const x=m.currentTarget,P={x:m.clientX,y:m.clientY},w=rn(P,x.getBoundingClientRect()),C=on(P,w),E=sn(y.getBoundingClientRect()),b=cn([...C,...E]);u(b),f(!0)},[f]);return i.useEffect(()=>()=>v(),[v]),i.useEffect(()=>{if(c&&d){const m=x=>h(x,d),y=x=>h(x,c);return c.addEventListener("pointerleave",m),d.addEventListener("pointerleave",y),()=>{c.removeEventListener("pointerleave",m),d.removeEventListener("pointerleave",y)}}},[c,d,h,v]),i.useEffect(()=>{if(a){const m=y=>{const x=y.target,P={x:y.clientX,y:y.clientY},w=c?.contains(x)||d?.contains(x),C=!an(P,a);w?v():C&&(v(),l())};return document.addEventListener("pointermove",m),()=>document.removeEventListener("pointermove",m)}},[c,d,a,l,v]),p.jsx(Be,{...e,ref:s})}),[tn,nn]=V(q,{isInside:!1}),Be=i.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:s,onPointerDownOutside:a,...u}=e,c=F(I,n),l=G(n),{onClose:d}=c;return i.useEffect(()=>(document.addEventListener(Z,d),()=>document.removeEventListener(Z,d)),[d]),i.useEffect(()=>{if(c.trigger){const f=v=>{v.target?.contains(c.trigger)&&d()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[c.trigger,d]),p.jsx(Pe,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:f=>f.preventDefault(),onDismiss:d,children:p.jsxs($t,{"data-state":c.stateAttribute,...l,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[p.jsx(xe,{children:r}),p.jsx(tn,{scope:n,isInside:!0,children:p.jsx(Yt,{id:c.contentId,role:"tooltip",children:o||r})})]})})});We.displayName=I;var Ue="TooltipArrow",ze=i.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=G(n);return nn(Ue,n).isInside?null:p.jsx(Ht,{...o,...r,ref:t})});ze.displayName=Ue;function rn(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,o,s)){case s:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function on(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function sn(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function an(e,t){const{x:n,y:r}=e;let o=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const u=t[s].x,c=t[s].y,l=t[a].x,d=t[a].y;c>r!=d>r&&n<(l-u)*(r-c)/(d-c)+u&&(o=!o)}return o}function cn(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),ln(t)}function ln(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const o=e[r];for(;t.length>=2;){const s=t[t.length-1],a=t[t.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const s=n[n.length-1],a=n[n.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var un=Me,dn=Fe,pn=$e,fn=He,hn=We,vn=ze;const mn="_slideDownAndFade_fkagk_1",yn="_slideLeftAndFade_fkagk_1",gn="_slideUpAndFade_fkagk_1",xn="_slideRightAndFade_fkagk_1",wn={"purpur-tooltip":"_purpur-tooltip_fkagk_1","purpur-tooltip__content":"_purpur-tooltip__content_fkagk_4","purpur-tooltip__content--primary":"_purpur-tooltip__content--primary_fkagk_14","purpur-tooltip__content--primary-negative":"_purpur-tooltip__content--primary-negative_fkagk_17",slideDownAndFade:mn,slideLeftAndFade:yn,slideUpAndFade:gn,slideRightAndFade:xn,"purpur-tooltip__arrow--primary":"_purpur-tooltip__arrow--primary_fkagk_32","purpur-tooltip__arrow--primary-negative":"_purpur-tooltip__arrow--primary-negative_fkagk_35"},Y=lt.c.bind(wn),Ve={TOP:"top",BOTTOM:"bottom",LEFT:"left",RIGHT:"right"},Ge={START:"start",CENTER:"center",END:"end"},L="purpur-tooltip",qe=z.forwardRef(({["data-testid"]:e,buttonSize:t="md",children:n,className:r,contentClassName:o,negative:s=!1,position:a=Ve.TOP,align:u=Ge.CENTER,triggerAriaLabel:c,triggerElement:l,...d},f)=>{const[v,h]=z.useState(!1),m=Y(r,L,`${L}--primary${s?"-negative":""}`),y=p.jsx(le.Button,{ref:f,"aria-label":c,"aria-expanded":v,variant:le.BUTTON_VARIANT.TERTIARY_PURPLE,negative:s,iconOnly:!0,"data-testid":`${e}-trigger-button`,size:t,children:p.jsx(at.r,{size:"md"})});return p.jsx("div",{"data-testid":e,className:m,children:p.jsx(un,{delayDuration:parseInt(ct.purpurMotionDuration400),children:p.jsxs(dn,{open:v,onOpenChange:h,...d,children:[p.jsx(pn,{asChild:!0,onClick:x=>{x.preventDefault(),h(!0)},children:z.Children.count(l)===0?y:l}),p.jsx(fn,{children:p.jsxs(hn,{side:a,align:u,className:Y(o,`${L}__content`,`${L}__content--primary${s?"-negative":""}`),sideOffset:-5,"data-testid":`${e}-content`,children:[typeof n=="string"?p.jsx(ue.Paragraph,{variant:ue.ParagraphVariant.PARAGRAPH100,negative:!s,"data-testid":`${e}-paragraph`,children:n}):n,p.jsx(vn,{className:Y(`${L}__arrow`,`${L}__arrow--primary${s?"-negative":""}`)})]})})]})})})});qe.displayName="Tooltip";exports.TOOLTIP_ALIGN=Ge;exports.TOOLTIP_POSITION=Ve;exports.Tooltip=qe;
|
|
2
|
+
//# sourceMappingURL=tooltip-CLQLxoaf.js.map
|