@purpurds/tabs 7.6.1 → 7.7.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.es.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/chevron-left.es.js","../../icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/tab-content.tsx","../src/tab-header.tsx","../src/tabs.utils.ts","../src/tabs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst d = /* @__PURE__ */ f(_), v = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = d.bind(v), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = y({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\nb.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n b as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, {\n type ComponentPropsWithoutRef,\n type ForwardedRef,\n forwardRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = {\n /**\n * Content to be rendered inside a `button` element.\n * Only pass ReactNodes that are valid as children of a `button`, such as plain text,\n * inline elements like `span` or other non-interactive elements. Avoid block-level or interactive elements.\n */\n name: ReactNode;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n \"data-testid\"?: string;\n};\n\nexport type TabContentPropsWithChildren = ComponentPropsWithoutRef<\"div\"> &\n TabContentProps & {\n children: ReactNode;\n };\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef(\n (\n {\n children,\n tabId,\n \"data-testid\": dataTestId,\n className,\n disableForceMount,\n ...props\n }: TabContentPropsWithChildren,\n ref: ForwardedRef<HTMLDivElement>\n ) => (\n <Content\n ref={ref}\n className={cx([\n rootClassName,\n className,\n { [`${rootClassName}--force-mount`]: !disableForceMount },\n ])}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...props}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (child?: ReactNode): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, {\n type FocusEventHandler,\n type ForwardedRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { type TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx([rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`])}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import { type TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = React.FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, { Children, type ReactElement, useEffect, useRef, useState } from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { chevronLeft } from \"@purpurds/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpurds/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport {\n createTabChangeDetailEvent,\n type TabChangeDetail,\n type TabsCmp,\n type TabsVariant,\n} from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n /**\n * When true, animates the height of the component when switching tabs.\n * */\n animateHeight?: boolean;\n \"data-testid\"?: string;\n} & Pick<React.HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n animateHeight = false,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = useState(-1);\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx([\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--fullWidth`]: fullWidth },\n className,\n ]);\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n const setNewHeight = () => {\n if (contentRef.current && animateHeight) {\n const newHeight = contentRef.current.offsetHeight;\n setHeight(newHeight);\n }\n };\n\n const handleResize = () => {\n setNewHeight();\n handleLinePosition();\n };\n\n setNewHeight();\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [activeIndex, animateHeight]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const onIntersection = (entries: IntersectionObserverEntry[]): void => {\n const allEntriesVisible =\n entries.every((entry) => entry.isIntersecting) &&\n entries.length === tabContentChildren.length;\n\n if (allEntriesVisible) {\n setScrollClasses({});\n return;\n }\n\n entries.forEach((entry) => {\n const entryIndex = Number(entry.target.getAttribute(\"data-index\"));\n const isStartEntry = entryIndex === 0;\n const isLastEntry = entryIndex === tabContentChildren.length - 1;\n\n setScrollClasses((currentScrollClasses) => ({\n ...currentScrollClasses,\n ...(isStartEntry && {\n [`${rootClassName}__wrapper--scroll-end`]: !entry.isIntersecting,\n }),\n ...(isLastEntry && {\n [`${rootClassName}__wrapper--scroll-start`]: !entry.isIntersecting,\n }),\n }));\n });\n };\n\n const observer = new IntersectionObserver(onIntersection, {\n threshold: [0.99],\n root: tabList.current,\n });\n\n const currentTabChildren = tabChildren.current;\n\n currentTabChildren.forEach((el) => observer.observe(el));\n\n return () => {\n currentTabChildren.forEach((el) => observer.unobserve(el));\n };\n }, [tabContentChildren.length]);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx([`${rootClassName}__wrapper`, scrollClasses])}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div\n className={animateHeight ? cx(`${rootClassName}__content-wrapper`) : \"\"}\n style={{ height: animateHeight && height > -1 ? `${height}px` : \"auto\" }}\n >\n <div ref={contentRef} className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","d","v","x","l","g","h","y","S","b","a","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React","index","Provider","props","scope","children","context","Context","_a","value","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn","_b","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","Root","Item","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","Content","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","cx","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","animateHeight","contentRef","useRef","height","setHeight","useState","scrollClasses","setScrollClasses","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","setNewHeight","newHeight","handleResize","onIntersection","entries","entry","entryIndex","isStartEntry","isLastEntry","currentScrollClasses","observer","currentTabChildren","el","jsxs","childDataTestId"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
1
+ {"version":3,"file":"tabs.es.js","sources":["../../icon/dist/icon.es.js","../../icon/dist/assets/chevron-left.es.js","../../icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+primitive@1.1.1/node_modules/@radix-ui/primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-context@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-context/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-slot@1.1.2_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-collection@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-collection/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-id@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-id/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-primitive@2.0.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-direction@1.1.0_@types+react@19.0.10_react@19.0.0/node_modules/@radix-ui/react-direction/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-roving-focus@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-presence@1.1.2_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.3_@types+react-dom@19.0.4_@types+react@19.0.10_react-dom@19.0.0_react@19.0.0/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/tab-content.tsx","../src/tab-header.tsx","../src/tabs.utils.ts","../src/tabs.tsx"],"sourcesContent":["import { jsx as a } from \"react/jsx-runtime\";\nfunction f(r) {\n return r && r.__esModule && Object.prototype.hasOwnProperty.call(r, \"default\") ? r.default : r;\n}\nvar c = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar p;\nfunction m() {\n return p || (p = 1, function(r) {\n (function() {\n var e = {}.hasOwnProperty;\n function s() {\n for (var t = \"\", n = 0; n < arguments.length; n++) {\n var o = arguments[n];\n o && (t = i(t, u.call(this, o)));\n }\n return t;\n }\n function u(t) {\n if (typeof t == \"string\" || typeof t == \"number\")\n return this && this[t] || t;\n if (typeof t != \"object\")\n return \"\";\n if (Array.isArray(t))\n return s.apply(this, t);\n if (t.toString !== Object.prototype.toString && !t.toString.toString().includes(\"[native code]\"))\n return t.toString();\n var n = \"\";\n for (var o in t)\n e.call(t, o) && t[o] && (n = i(n, this && this[o] || o));\n return n;\n }\n function i(t, n) {\n return n ? t ? t + \" \" + n : t + n : t;\n }\n r.exports ? (s.default = s, r.exports = s) : window.classNames = s;\n })();\n }(c)), c.exports;\n}\nvar _ = m();\nconst v = /* @__PURE__ */ f(_), d = {\n \"purpur-icon\": \"_purpur-icon_8u1lq_1\",\n \"purpur-icon--xxs\": \"_purpur-icon--xxs_8u1lq_4\",\n \"purpur-icon--xs\": \"_purpur-icon--xs_8u1lq_8\",\n \"purpur-icon--sm\": \"_purpur-icon--sm_8u1lq_12\",\n \"purpur-icon--md\": \"_purpur-icon--md_8u1lq_16\",\n \"purpur-icon--lg\": \"_purpur-icon--lg_8u1lq_20\",\n \"purpur-icon--xl\": \"_purpur-icon--xl_8u1lq_24\"\n}, x = v.bind(d), l = \"purpur-icon\", w = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"], g = \"md\", h = (r) => r.filter((e) => Object.keys(e).length >= 1).map((e) => `${e.name}=\"${e.value}\"`).join(\" \"), y = ({ content: r = \"\", title: e } = {}) => {\n const s = [\n { name: \"xmlns\", value: \"http://www.w3.org/2000/svg\" },\n { name: \"fill\", value: \"currentColor\" },\n { name: \"viewBox\", value: \"0 0 24 24\" },\n e ? { name: \"role\", value: \"img\" } : { name: \"aria-hidden\", value: \"true\" }\n ], u = e ? `<title>${e}</title>` : \"\";\n return `<svg ${h(s)}>${u}${r}</svg>`;\n}, S = (r) => r.replace(/<(\\/?)svg([^>]*)>/g, \"\").trim(), b = ({ svg: r, allyTitle: e, className: s, size: u = g, ...i }) => {\n const t = y({\n content: S(r.svg),\n title: e\n }), n = x(s, l, `${l}--${u}`);\n return /* @__PURE__ */ a(\"span\", { className: n, dangerouslySetInnerHTML: { __html: t }, ...i });\n};\nb.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n b as Icon,\n w as sizes\n};\n//# sourceMappingURL=icon.es.js.map\n","const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/roving-focus/src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n })\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/tabs/src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { forwardRef, isValidElement, type ReactElement, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpurds/common-types\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = Omit<BaseProps, \"children\"> & {\n /**\n * Content to be rendered inside a `button` element.\n * Only pass ReactNodes that are valid as children of a `button`, such as plain text,\n * inline elements like `span` or other non-interactive elements. Avoid block-level or interactive elements.\n */\n name: ReactNode;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef<HTMLDivElement, TabContentProps>(\n ({ children, tabId, \"data-testid\": dataTestId, className, disableForceMount, ...props }, ref) => (\n <Content\n ref={ref}\n className={cx(rootClassName, className, {\n [`${rootClassName}--force-mount`]: !disableForceMount,\n })}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...props}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (child?: ReactNode): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, {\n type FocusEventHandler,\n type ForwardedRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { type TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx(rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`)}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import type { FunctionComponent } from \"react\";\n\nimport type { TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, {\n Children,\n type HTMLAttributes,\n type ReactElement,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Icon } from \"@purpurds/icon\";\nimport { chevronLeft } from \"@purpurds/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpurds/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport {\n createTabChangeDetailEvent,\n type TabChangeDetail,\n type TabsCmp,\n type TabsVariant,\n} from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n /**\n * When true, animates the height of the component when switching tabs.\n * */\n animateHeight?: boolean;\n \"data-testid\"?: string;\n} & Pick<HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n animateHeight = false,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = useState(-1);\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx(\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--fullWidth`]: fullWidth },\n className\n );\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n const setNewHeight = () => {\n if (contentRef.current && animateHeight) {\n const newHeight = contentRef.current.offsetHeight;\n setHeight(newHeight);\n }\n };\n\n const handleResize = () => {\n setNewHeight();\n handleLinePosition();\n };\n\n setNewHeight();\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [activeIndex, animateHeight]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const onIntersection = (entries: IntersectionObserverEntry[]): void => {\n const allEntriesVisible =\n entries.every((entry) => entry.isIntersecting) &&\n entries.length === tabContentChildren.length;\n\n if (allEntriesVisible) {\n setScrollClasses({});\n return;\n }\n\n entries.forEach((entry) => {\n const entryIndex = Number(entry.target.getAttribute(\"data-index\"));\n const isStartEntry = entryIndex === 0;\n const isLastEntry = entryIndex === tabContentChildren.length - 1;\n\n setScrollClasses((currentScrollClasses) => ({\n ...currentScrollClasses,\n ...(isStartEntry && {\n [`${rootClassName}__wrapper--scroll-end`]: !entry.isIntersecting,\n }),\n ...(isLastEntry && {\n [`${rootClassName}__wrapper--scroll-start`]: !entry.isIntersecting,\n }),\n }));\n });\n };\n\n const observer = new IntersectionObserver(onIntersection, {\n threshold: [0.99],\n root: tabList.current,\n });\n\n const currentTabChildren = tabChildren.current;\n\n currentTabChildren.forEach((el) => observer.observe(el));\n\n return () => {\n currentTabChildren.forEach((el) => observer.unobserve(el));\n };\n }, [tabContentChildren.length]);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx(`${rootClassName}__wrapper`, scrollClasses)}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div\n className={animateHeight ? cx(`${rootClassName}__content-wrapper`) : \"\"}\n style={{ height: animateHeight && height > -1 ? `${height}px` : \"auto\" }}\n >\n <div ref={contentRef} className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["f","r","c","p","m","e","s","t","n","o","i","u","_","v","d","x","l","g","h","y","S","b","a","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React","index","Provider","props","scope","children","context","Context","_a","value","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","SlotClone","childrenRef","getElementRef","props2","mergeProps","Slottable","Fragment2","childProps","overrideProps","propName","slotPropValue","childPropValue","args","element","getter","mayWarn","_b","createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","useReactId","count","useId","deterministicId","id","setId","useLayoutEffect","reactId","NODES","Primitive","primitive","Node","asChild","primitiveProps","Comp","useCallbackRef","callback","callbackRef","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","handleChange","setValue","nextValue","value2","uncontrolledState","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","key","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","array","startIndex","Root","Item","useStateMachine","initialState","machine","state","Presence","present","presence","usePresence","React2","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","TABS_NAME","createTabsContext","createTabsScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","Content","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","module","cx","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","animateHeight","contentRef","useRef","height","setHeight","useState","scrollClasses","setScrollClasses","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","setNewHeight","newHeight","handleResize","onIntersection","entries","entry","entryIndex","isStartEntry","isLastEntry","currentScrollClasses","observer","currentTabChildren","el","jsxs","childDataTestId"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
@@ -1,6 +1,7 @@
1
+ import { FunctionComponent } from 'react';
1
2
  import { TabContent } from './tab-content';
2
3
 
3
- export type TabsCmp<P> = React.FunctionComponent<P> & {
4
+ export type TabsCmp<P> = FunctionComponent<P> & {
4
5
  Content: typeof TabContent;
5
6
  };
6
7
  export declare const tabsVariants: readonly ["line", "contained"];
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.utils.d.ts","sourceRoot":"","sources":["../src/tabs.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;IACpD,OAAO,EAAE,OAAO,UAAU,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,YAAY,gCAAiC,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,0BAA0B,UAAW,MAAM,iCACoB,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"tabs.utils.d.ts","sourceRoot":"","sources":["../src/tabs.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG;IAC9C,OAAO,EAAE,OAAO,UAAU,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,YAAY,gCAAiC,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,0BAA0B,UAAW,MAAM,iCACoB,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/tabs",
3
- "version": "7.6.1",
3
+ "version": "7.7.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/tabs.cjs.js",
6
6
  "types": "./dist/tabs.d.ts",
@@ -15,11 +15,12 @@
15
15
  },
16
16
  "source": "src/tabs.tsx",
17
17
  "dependencies": {
18
- "classnames": "~2.5.0",
19
18
  "@radix-ui/react-tabs": "~1.1.3",
20
- "@purpurds/icon": "7.6.1",
21
- "@purpurds/tokens": "7.6.1",
22
- "@purpurds/paragraph": "7.6.1"
19
+ "classnames": "~2.5.0",
20
+ "@purpurds/paragraph": "7.7.0",
21
+ "@purpurds/common-types": "7.7.0",
22
+ "@purpurds/tokens": "7.7.0",
23
+ "@purpurds/icon": "7.7.0"
23
24
  },
24
25
  "devDependencies": {
25
26
  "eslint": "9.24.0",
@@ -41,9 +42,9 @@
41
42
  "vite": "^6.2.1",
42
43
  "vitest": "^3.1.2",
43
44
  "@purpurds/component-rig": "1.0.0",
44
- "@purpurds/button": "7.6.1",
45
- "@purpurds/icon": "7.6.1",
46
- "@purpurds/paragraph": "7.6.1"
45
+ "@purpurds/icon": "7.7.0",
46
+ "@purpurds/paragraph": "7.7.0",
47
+ "@purpurds/button": "7.7.0"
47
48
  },
48
49
  "peerDependencies": {
49
50
  "@types/react": "^18 || ^19",