@purpurds/tabs 6.11.1 → 6.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LICENSE.txt +1 -1
- package/dist/styles.css +1 -1
- package/dist/tab-content.d.ts.map +1 -1
- package/dist/tab-header.d.ts.map +1 -1
- package/dist/tabs.cjs.js +3 -3
- package/dist/tabs.cjs.js.map +1 -1
- package/dist/tabs.d.ts +4 -0
- package/dist/tabs.d.ts.map +1 -1
- package/dist/tabs.es.js +390 -371
- package/dist/tabs.es.js.map +1 -1
- package/package.json +8 -6
- package/src/tab-content.tsx +5 -7
- package/src/tab-header.tsx +7 -2
- package/src/tabs.module.scss +20 -3
- package/src/tabs.stories.tsx +46 -3
- package/src/tabs.tsx +38 -7
package/dist/tabs.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.cjs.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(\" \"), b = ({ 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(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n \"aria-label\": s,\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n y 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 ComponentPropsWithoutRef,\n ForwardedRef,\n forwardRef,\n isValidElement,\n ReactElement,\n 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 * The text that will be displayed in the tab.\n * */\n name: string;\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 className?: string;\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 ...rest\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 {...rest}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (\n child?: ReactNode\n): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, { FocusEventHandler, ForwardedRef, forwardRef, ReactNode } from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { 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 { 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, 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 { createTabChangeDetailEvent, TabChangeDetail, TabsCmp, TabsVariant } 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 \"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 \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\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 window.addEventListener(\"resize\", handleLinePosition);\n\n return () => {\n window.removeEventListener(\"resize\", handleLinePosition);\n };\n }, []); // 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 className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\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","b","S","y","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","rest","isTabContent","isValidElement","TabHeader","variant","negative","onFocus","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","fullWidth","scrollClasses","setScrollClasses","useState","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","useRef","tabChildren","sideScrollAdjustmentSize","isLineVariant","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","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.cjs.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(\" \"), b = ({ 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(), y = ({\n [\"data-testid\"]: r,\n svg: e,\n allyTitle: s,\n className: u,\n size: i = g,\n ...t\n}) => {\n const n = b({\n content: S(e.svg),\n title: s\n }), o = x(u, l, `${l}--${i}`);\n return /* @__PURE__ */ a(\n \"span\",\n {\n \"aria-label\": s,\n className: o,\n \"data-testid\": r,\n dangerouslySetInnerHTML: { __html: n },\n ...t\n }\n );\n};\ny.displayName = \"Icon\";\nexport {\n g as DEFAULT_SIZE,\n y 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 * The text that will be displayed in the tab.\n * */\n name: string;\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 className?: string;\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 ...rest\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 {...rest}\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 { 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={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","b","S","y","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","rest","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]}
|
package/dist/tabs.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ type TabsProps = {
|
|
|
16
16
|
* */
|
|
17
17
|
onChange?: (event: CustomEvent<TabChangeDetail>) => void;
|
|
18
18
|
defaultValue?: string;
|
|
19
|
+
/**
|
|
20
|
+
* When true, animates the height of the component when switching tabs.
|
|
21
|
+
* */
|
|
22
|
+
animateHeight?: boolean;
|
|
19
23
|
"data-testid"?: string;
|
|
20
24
|
} & Pick<React.HTMLAttributes<HTMLDivElement>, "style" | "className">;
|
|
21
25
|
export declare const Tabs: TabsCmp<TabsProps>;
|
package/dist/tabs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAY,YAAY,EAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAY,KAAK,YAAY,EAA+B,MAAM,OAAO,CAAC;AAOxF,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;IACnF,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;SAEK;IACL,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;SAEK;IACL,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;AA4CtE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,SAAS,CAiOnC,CAAC;AAIF,cAAc,cAAc,CAAC"}
|