@epic-web/workshop-app 4.12.0 → 4.12.2

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.
Files changed (30) hide show
  1. package/build/client/assets/{_exerciseNumber-DN5AsSNn.js → _exerciseNumber-DTITDRGx.js} +2 -2
  2. package/build/client/assets/{_exerciseNumber-DN5AsSNn.js.map → _exerciseNumber-DTITDRGx.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber_.finished-W3hcmvgu.js → _exerciseNumber_.finished-gEWcHsfL.js} +2 -2
  4. package/build/client/assets/{_exerciseNumber_.finished-W3hcmvgu.js.map → _exerciseNumber_.finished-gEWcHsfL.js.map} +1 -1
  5. package/build/client/assets/{_layout-qyqfsEt3.js → _layout-Bn9QhWq9.js} +2 -2
  6. package/build/client/assets/{_layout-qyqfsEt3.js.map → _layout-Bn9QhWq9.js.map} +1 -1
  7. package/build/client/assets/{_layout-CLLcE4oc.js → _layout-dHX2Hcew.js} +2 -2
  8. package/build/client/assets/{_layout-CLLcE4oc.js.map → _layout-dHX2Hcew.js.map} +1 -1
  9. package/build/client/assets/{diff-DczVYWk4.js → diff-Bd9WnUnR.js} +2 -2
  10. package/build/client/assets/{diff-DczVYWk4.js.map → diff-Bd9WnUnR.js.map} +1 -1
  11. package/build/client/assets/{diff-hpVBklM0.js → diff-CpG96hGZ.js} +2 -2
  12. package/build/client/assets/{diff-hpVBklM0.js.map → diff-CpG96hGZ.js.map} +1 -1
  13. package/build/client/assets/{epic-video--ydmGfR4.js → epic-video-DJN9_SUj.js} +2 -2
  14. package/build/client/assets/{epic-video--ydmGfR4.js.map → epic-video-DJN9_SUj.js.map} +1 -1
  15. package/build/client/assets/{finished-3FuL-PiH.js → finished-B9qjUR4B.js} +2 -2
  16. package/build/client/assets/{finished-3FuL-PiH.js.map → finished-B9qjUR4B.js.map} +1 -1
  17. package/build/client/assets/{index-DCO6tIXL.js → index-6edM1tdB.js} +2 -2
  18. package/build/client/assets/{index-DCO6tIXL.js.map → index-6edM1tdB.js.map} +1 -1
  19. package/build/client/assets/{index-DMhFsRrG.js → index-yEAxvbDV.js} +2 -2
  20. package/build/client/assets/{index-DMhFsRrG.js.map → index-yEAxvbDV.js.map} +1 -1
  21. package/build/client/assets/{manifest-b955f6ee.js → manifest-d58796c3.js} +1 -1
  22. package/build/client/assets/{mdx-DF11h1m-.js → mdx-BENF-kTQ.js} +2 -2
  23. package/build/client/assets/{mdx-DF11h1m-.js.map → mdx-BENF-kTQ.js.map} +1 -1
  24. package/build/client/assets/{onboarding-CBm-xBhv.js → onboarding-FD1FkQuu.js} +2 -2
  25. package/build/client/assets/{onboarding-CBm-xBhv.js.map → onboarding-FD1FkQuu.js.map} +1 -1
  26. package/build/client/assets/{root-CW5sLiRQ.js → root-BvoAKOBJ.js} +2 -2
  27. package/build/client/assets/{root-CW5sLiRQ.js.map → root-BvoAKOBJ.js.map} +1 -1
  28. package/build/server/index.js +4 -3
  29. package/build/server/index.js.map +1 -1
  30. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"diff-hpVBklM0.js","sources":["../../../../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../../../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../../../../node_modules/@radix-ui/number/dist/index.mjs","../../../../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../../node_modules/@radix-ui/react-select/dist/index.mjs","../../../app/components/accordion.tsx","../../../app/components/diff.tsx"],"sourcesContent":["\"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/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/collapsible/src/Collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef();\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/accordion/src/Accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: value ? [value] : [],\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value = [], setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/select/src/Select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\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 { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? Boolean(trigger.closest(\"form\")) : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n BubbleSelect,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = () => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false) {\n handleOpen();\n context.triggerPointerDownPosRef.current = {\n x: Math.round(event.pageX),\n y: Math.round(event.pageY)\n };\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [CONTENT_MARGIN, rightEdge - contentWidth]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [CONTENT_MARGIN, leftEdge - contentWidth]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n overflow: \"auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, handleSelect),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n if (disabled) {\n contentContext.onItemLeave?.();\n } else {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nvar BubbleSelect = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx(\"select\", { ...selectProps, ref: composedRefs, defaultValue: value }) });\n }\n);\nBubbleSelect.displayName = \"BubbleSelect\";\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as Accordion from '@radix-ui/react-accordion'\nimport { clsx } from 'clsx'\nimport * as React from 'react'\nimport { Icon } from './icons.tsx'\n\ntype AccordionProps = {\n\ttitle: string\n\tchildren: React.ReactElement\n\tvariant?: 'changed' | 'added' | 'deleted' | 'renamed'\n\ticon?: React.ReactElement\n\tforceMount?: boolean\n}\n\nconst AccordionComponent: React.FC<AccordionProps> = ({\n\ttitle,\n\tchildren,\n\tvariant,\n\ticon,\n\tforceMount = false,\n}) => {\n\tconst getVariantIcon = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'renamed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Renamed\"\n\t\t\t\t\t\taria-label=\"Renamed\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'added':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon name=\"Added\" aria-label=\"Added\" className=\"text-[#10b981]\" />\n\t\t\t\t)\n\t\t\tcase 'deleted':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Deleted\"\n\t\t\t\t\t\taria-label=\"Deleted\"\n\t\t\t\t\t\tclassName=\"text-[#ef4444]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t}\n\t}\n\tconst getVariantLabel = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn 'modified'\n\t\t\tdefault:\n\t\t\t\treturn variant\n\t\t}\n\t}\n\n\t// Somehow on windows we get double backslashes in the title\n\t// so we'll just remove those 🤷‍♂️\n\tconst fixedTitle = title.replace(/\\\\\\\\/g, '\\\\')\n\treturn (\n\t\t<Accordion.Item value={title}>\n\t\t\t<AccordionTrigger variant={getVariantLabel()}>\n\t\t\t\t{icon ? icon : getVariantIcon()} {fixedTitle}\n\t\t\t</AccordionTrigger>\n\t\t\t<AccordionContent\n\t\t\t\tforceMount={forceMount}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'prose max-w-none whitespace-pre-wrap dark:prose-invert prose-pre:m-0 prose-pre:mb-1 prose-pre:rounded-none',\n\t\t\t\t\t{\n\t\t\t\t\t\t'radix-state-closed:hidden': forceMount,\n\t\t\t\t\t},\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</AccordionContent>\n\t\t</Accordion.Item>\n\t)\n}\n\nexport default AccordionComponent\n\nconst AccordionTrigger: React.FC<any> = React.forwardRef(\n\t({ children, className, variant, ...props }, forwardedRef) => (\n\t\t<Accordion.Header className=\"flex\" asChild>\n\t\t\t<Accordion.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'group flex w-full items-center justify-between border-b p-4 pr-3 font-mono text-sm font-medium leading-none hover:bg-foreground/20',\n\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t\tref={forwardedRef}\n\t\t\t>\n\t\t\t\t<div className=\"flex items-center gap-1.5\">{children}</div>\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<span className=\"font-mono text-xs font-normal uppercase text-muted-foreground\">\n\t\t\t\t\t\t{variant}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"TriangleDownSmall\"\n\t\t\t\t\t\tclassName=\"transition group-radix-state-open:rotate-180\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Accordion.Trigger>\n\t\t</Accordion.Header>\n\t),\n)\n\nconst AccordionContent: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => (\n\t\t<Accordion.Content\n\t\t\tclassName={clsx('', className)}\n\t\t\t{...props}\n\t\t\tref={forwardedRef}\n\t\t>\n\t\t\t<div>{children}</div>\n\t\t</Accordion.Content>\n\t),\n)\n","import * as Accordion from '@radix-ui/react-accordion'\nimport * as Select from '@radix-ui/react-select'\nimport {\n\tAwait,\n\tForm,\n\tLink,\n\tuseNavigation,\n\tuseSearchParams,\n\tuseSubmit,\n} from '@remix-run/react'\nimport { clsx } from 'clsx'\nimport React, { Suspense } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { Icon } from './icons.tsx'\nimport { SimpleTooltip } from './ui/tooltip.tsx'\n\ntype diffProp = {\n\tapp1?: string\n\tapp2?: string\n\tdiffCode?: string | null\n}\n\nconst pre = (props: any) => <pre {...props} />\n\nconst mdxComponents = {\n\tAccordion: AccordionComponent,\n\t// override the pre-with-buttons\n\tpre,\n}\n\nexport function Diff({\n\tdiff,\n\tallApps,\n}: {\n\tdiff: Promise<diffProp> | diffProp\n\tallApps: Array<{ name: string; displayName: string }>\n}) {\n\tconst submit = useSubmit()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst spinnerNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 0,\n\t\tminDuration: 1000,\n\t})\n\n\tconst hiddenInputs: Array<React.ReactNode> = []\n\tfor (const [key, value] of params.entries()) {\n\t\tif (key === 'app1' || key === 'app2') continue\n\t\thiddenInputs.push(\n\t\t\t<input key={key} type=\"hidden\" name={key} value={value} />,\n\t\t)\n\t}\n\n\treturn (\n\t\t<Suspense\n\t\t\tfallback={\n\t\t\t\t<div className=\"flex items-center justify-center p-8\">\n\t\t\t\t\t<SimpleTooltip content=\"Loading diff\">\n\t\t\t\t\t\t<Icon name=\"Refresh\" className=\"animate-spin\" />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t}\n\t\t>\n\t\t\t<Await\n\t\t\t\tresolve={diff}\n\t\t\t\terrorElement={\n\t\t\t\t\t<p className=\"p-6 text-foreground-danger\">\n\t\t\t\t\t\tThere was an error calculating the diff. Sorry.\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{(diff) => (\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<div className=\"flex h-14 min-h-14 w-full overflow-x-hidden border-b\">\n\t\t\t\t\t\t\t<div className=\"border-r\">\n\t\t\t\t\t\t\t\t<SimpleTooltip content=\"Reload diff\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`.?${paramsWithForcedRefresh}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex h-full w-14 items-center justify-center\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tname=\"Refresh\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn({ 'animate-spin': spinnerNavigating })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Form\n\t\t\t\t\t\t\t\tonChange={(e) => submit(e.currentTarget)}\n\t\t\t\t\t\t\t\tclassName=\"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\tkey={`${diff.app1}${diff.app2}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{hiddenInputs}\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app1\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 1\"\n\t\t\t\t\t\t\t\t\tclassName=\"border-r\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app2\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 2\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app2}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t{diff.diffCode ? (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t\t\t\t\t\t\t<Mdx code={diff.diffCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : diff.app1 && diff.app2 ? (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tThere was a problem generating the diff\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tSelect two apps to compare\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Await>\n\t\t</Suspense>\n\t)\n}\n\nfunction SelectFileToDiff({\n\tname,\n\tlabel,\n\tclassName,\n\tallApps,\n\tdefaultValue,\n}: {\n\tname: string\n\tlabel: string\n\tclassName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tdefaultValue?: string\n}) {\n\treturn (\n\t\t<Select.Root name={name} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-label={`Select ${label} for git Diff`}\n\t\t\t>\n\t\t\t\t<span className=\"overflow-hidden text-ellipsis whitespace-nowrap\">\n\t\t\t\t\t{label}:{' '}\n\t\t\t\t\t<SelectValue\n\t\t\t\t\t\tplaceholder={`Select ${label}`}\n\t\t\t\t\t\tclassName=\"inline-block w-40 text-ellipsis\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<Select.Icon className=\"\">\n\t\t\t\t\t<Icon name=\"TriangleDownSmall\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content\n\t\t\t\t\tposition=\"popper\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tclassName=\"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]\"\n\t\t\t\t>\n\t\t\t\t\t<Select.ScrollUpButton className=\"flex h-5 cursor-default items-center justify-center \">\n\t\t\t\t\t\t<Icon name=\"ChevronUp\" />\n\t\t\t\t\t</Select.ScrollUpButton>\n\t\t\t\t\t<Select.Viewport className=\"p-3\">\n\t\t\t\t\t\t<Select.Group>\n\t\t\t\t\t\t\t<Select.Label className=\"px-5 pb-3 font-mono uppercase\">\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</Select.Label>\n\t\t\t\t\t\t\t{allApps.map((app) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SelectItem key={app.name} value={app.name}>\n\t\t\t\t\t\t\t\t\t\t{app.displayName}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Select.Group>\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t\t<Select.ScrollDownButton className=\"flex h-5 cursor-default items-center justify-center \">\n\t\t\t\t\t\t<Icon name=\"ChevronDown\" />\n\t\t\t\t\t</Select.ScrollDownButton>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t)\n}\n\nconst SelectItem: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Item\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100',\n\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t\tref={forwardedRef}\n\t\t\t>\n\t\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t\t<Select.ItemIndicator className=\"absolute left-0 inline-flex w-[25px] items-center justify-center\">\n\t\t\t\t\t<Icon name=\"CheckSmall\" />\n\t\t\t\t</Select.ItemIndicator>\n\t\t\t</Select.Item>\n\t\t)\n\t},\n)\n\nconst SelectValue: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Value {...props} ref={forwardedRef}>\n\t\t\t\t{props.value}\n\t\t\t</Select.Value>\n\t\t)\n\t},\n)\n"],"names":["createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","createContextScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","props","scope","children","ref","React","itemMap","jsx","COLLECTION_SLOT_NAME","CollectionSlot","forwardedRef","context","composedRefs","useComposedRefs","Slot","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","a","b","DirectionContext","React.createContext","useDirection","localDir","globalDir","React.useContext","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","React.forwardRef","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","useControllableState","useId","React.useCallback","prevOpen","Primitive","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","composeEventHandlers","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","Presence","present","CollapsibleContentImpl","isPresent","setIsPresent","React.useState","React.useRef","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","React.useEffect","rAF","useLayoutEffect","node","rect","Root","Trigger","Content","ACCORDION_NAME","ACCORDION_KEYS","Collection","createAccordionContext","createAccordionScope","useCollapsibleScope","Accordion","type","accordionProps","singleProps","multipleProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","valueProp","defaultValue","onValueChange","collapsible","accordionSingleProps","value","setValue","AccordionImpl","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","value2","AccordionImplProvider","useAccordionContext","__scopeAccordion","dir","orientation","accordionRef","getItems","isDirectionLTR","handleKeyDown","event","target","triggerCollection","item","_a","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","ITEM_NAME","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","open2","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Root2","Item","Header","Trigger2","Content2","clamp","min","max","usePrevious","React.useMemo","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","createSelectContext","createSelectScope","createPopperScope","usePopperScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","autoComplete","required","popperScope","trigger","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","triggerPointerDownPosRef","isFormControl","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","option","PopperPrimitive.Root","jsxs","prev","optionsSet","BubbleSelect","SelectTrigger","isDisabled","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","currentItem","nextItem","findNextItem","handleOpen","PopperPrimitive.Anchor","shouldShowPlaceholder","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","SelectPortal","PortalPrimitive","SelectContent","fragment","setFragment","frag","ReactDOM.createPortal","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","content","setContent","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","_b","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","selectProps","select","selectProto","VisuallyHidden","onSearchChange","handleSearchChange","useCallbackRef","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","v","array","startIndex","_","index","Value","Icon","Portal","Viewport","Group","Label","ItemText","ItemIndicator","ScrollUpButton","ScrollDownButton","AccordionComponent","title","variant","icon","getVariantIcon","getVariantLabel","fixedTitle","Accordion.Item","clsx","Accordion.Header","Accordion.Trigger","Accordion.Content","pre","mdxComponents","Diff","diff","allApps","submit","useSubmit","params","useSearchParams","paramsWithForcedRefresh","navigation","useNavigation","spinnerNavigating","useSpinDelay","hiddenInputs","Suspense","SimpleTooltip","Await","Link","cn","Form","e","SelectFileToDiff","Accordion.Root","Mdx","label","Select.Root","Select.Trigger","Select.Icon","Select.Portal","Select.Content","Select.ScrollUpButton","Select.Viewport","Select.Group","Select.Label","app","Select.ScrollDownButton","Select.Item","Select.ItemText","Select.ItemIndicator","Select.Value"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
1
+ {"version":3,"file":"diff-CpG96hGZ.js","sources":["../../../../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../../../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../../../../node_modules/@radix-ui/number/dist/index.mjs","../../../../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../../../../node_modules/@radix-ui/react-select/dist/index.mjs","../../../app/components/accordion.tsx","../../../app/components/diff.tsx"],"sourcesContent":["\"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/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/collapsible/src/Collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef();\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/accordion/src/Accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: value ? [value] : [],\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value = [], setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/select/src/Select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\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 { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? Boolean(trigger.closest(\"form\")) : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n BubbleSelect,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = () => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false) {\n handleOpen();\n context.triggerPointerDownPosRef.current = {\n x: Math.round(event.pageX),\n y: Math.round(event.pageY)\n };\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [CONTENT_MARGIN, rightEdge - contentWidth]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [CONTENT_MARGIN, leftEdge - contentWidth]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n overflow: \"auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, handleSelect),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n if (disabled) {\n contentContext.onItemLeave?.();\n } else {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nvar BubbleSelect = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...selectProps } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(VisuallyHidden, { asChild: true, children: /* @__PURE__ */ jsx(\"select\", { ...selectProps, ref: composedRefs, defaultValue: value }) });\n }\n);\nBubbleSelect.displayName = \"BubbleSelect\";\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as Accordion from '@radix-ui/react-accordion'\nimport { clsx } from 'clsx'\nimport * as React from 'react'\nimport { Icon } from './icons.tsx'\n\ntype AccordionProps = {\n\ttitle: string\n\tchildren: React.ReactElement\n\tvariant?: 'changed' | 'added' | 'deleted' | 'renamed'\n\ticon?: React.ReactElement\n\tforceMount?: boolean\n}\n\nconst AccordionComponent: React.FC<AccordionProps> = ({\n\ttitle,\n\tchildren,\n\tvariant,\n\ticon,\n\tforceMount = false,\n}) => {\n\tconst getVariantIcon = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'renamed':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Renamed\"\n\t\t\t\t\t\taria-label=\"Renamed\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tcase 'added':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon name=\"Added\" aria-label=\"Added\" className=\"text-[#10b981]\" />\n\t\t\t\t)\n\t\t\tcase 'deleted':\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Deleted\"\n\t\t\t\t\t\taria-label=\"Deleted\"\n\t\t\t\t\t\tclassName=\"text-[#ef4444]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"Modified\"\n\t\t\t\t\t\taria-label=\"Modified\"\n\t\t\t\t\t\tclassName=\"text-[#fb923c]\"\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t}\n\t}\n\tconst getVariantLabel = () => {\n\t\tswitch (variant) {\n\t\t\tcase 'changed':\n\t\t\t\treturn 'modified'\n\t\t\tdefault:\n\t\t\t\treturn variant\n\t\t}\n\t}\n\n\t// Somehow on windows we get double backslashes in the title\n\t// so we'll just remove those 🤷‍♂️\n\tconst fixedTitle = title.replace(/\\\\\\\\/g, '\\\\')\n\treturn (\n\t\t<Accordion.Item value={title}>\n\t\t\t<AccordionTrigger variant={getVariantLabel()}>\n\t\t\t\t{icon ? icon : getVariantIcon()} {fixedTitle}\n\t\t\t</AccordionTrigger>\n\t\t\t<AccordionContent\n\t\t\t\tforceMount={forceMount}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'prose max-w-none whitespace-pre-wrap dark:prose-invert prose-pre:m-0 prose-pre:mb-1 prose-pre:rounded-none',\n\t\t\t\t\t{\n\t\t\t\t\t\t'radix-state-closed:hidden': forceMount,\n\t\t\t\t\t},\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</AccordionContent>\n\t\t</Accordion.Item>\n\t)\n}\n\nexport default AccordionComponent\n\nconst AccordionTrigger: React.FC<any> = React.forwardRef(\n\t({ children, className, variant, ...props }, forwardedRef) => (\n\t\t<Accordion.Header className=\"flex\" asChild>\n\t\t\t<Accordion.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'group flex w-full items-center justify-between border-b p-4 pr-3 font-mono text-sm font-medium leading-none hover:bg-foreground/20',\n\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t\tref={forwardedRef}\n\t\t\t>\n\t\t\t\t<div className=\"flex items-center gap-1.5\">{children}</div>\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<span className=\"font-mono text-xs font-normal uppercase text-muted-foreground\">\n\t\t\t\t\t\t{variant}\n\t\t\t\t\t</span>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tname=\"TriangleDownSmall\"\n\t\t\t\t\t\tclassName=\"transition group-radix-state-open:rotate-180\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Accordion.Trigger>\n\t\t</Accordion.Header>\n\t),\n)\n\nconst AccordionContent: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => (\n\t\t<Accordion.Content\n\t\t\tclassName={clsx('', className)}\n\t\t\t{...props}\n\t\t\tref={forwardedRef}\n\t\t>\n\t\t\t<div>{children}</div>\n\t\t</Accordion.Content>\n\t),\n)\n","import * as Accordion from '@radix-ui/react-accordion'\nimport * as Select from '@radix-ui/react-select'\nimport {\n\tAwait,\n\tForm,\n\tLink,\n\tuseNavigation,\n\tuseSearchParams,\n\tuseSubmit,\n} from '@remix-run/react'\nimport { clsx } from 'clsx'\nimport React, { Suspense } from 'react'\nimport { useSpinDelay } from 'spin-delay'\nimport AccordionComponent from '#app/components/accordion.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { Icon } from './icons.tsx'\nimport { SimpleTooltip } from './ui/tooltip.tsx'\n\ntype diffProp = {\n\tapp1?: string\n\tapp2?: string\n\tdiffCode?: string | null\n}\n\nconst pre = (props: any) => <pre {...props} />\n\nconst mdxComponents = {\n\tAccordion: AccordionComponent,\n\t// override the pre-with-buttons\n\tpre,\n}\n\nexport function Diff({\n\tdiff,\n\tallApps,\n}: {\n\tdiff: Promise<diffProp> | diffProp\n\tallApps: Array<{ name: string; displayName: string }>\n}) {\n\tconst submit = useSubmit()\n\tconst [params] = useSearchParams()\n\tconst paramsWithForcedRefresh = new URLSearchParams(params)\n\tparamsWithForcedRefresh.set('forceFresh', 'diff')\n\tconst navigation = useNavigation()\n\tconst spinnerNavigating = useSpinDelay(navigation.state !== 'idle', {\n\t\tdelay: 0,\n\t\tminDuration: 1000,\n\t})\n\n\tconst hiddenInputs: Array<React.ReactNode> = []\n\tfor (const [key, value] of params.entries()) {\n\t\tif (key === 'app1' || key === 'app2') continue\n\t\thiddenInputs.push(\n\t\t\t<input key={key} type=\"hidden\" name={key} value={value} />,\n\t\t)\n\t}\n\n\treturn (\n\t\t<Suspense\n\t\t\tfallback={\n\t\t\t\t<div className=\"flex items-center justify-center p-8\">\n\t\t\t\t\t<SimpleTooltip content=\"Loading diff\">\n\t\t\t\t\t\t<Icon name=\"Refresh\" className=\"animate-spin\" />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t}\n\t\t>\n\t\t\t<Await\n\t\t\t\tresolve={diff}\n\t\t\t\terrorElement={\n\t\t\t\t\t<p className=\"p-6 text-foreground-danger\">\n\t\t\t\t\t\tThere was an error calculating the diff. Sorry.\n\t\t\t\t\t</p>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{(diff) => (\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">\n\t\t\t\t\t\t<div className=\"flex h-14 min-h-14 w-full overflow-x-hidden border-b\">\n\t\t\t\t\t\t\t<div className=\"border-r\">\n\t\t\t\t\t\t\t\t<SimpleTooltip content=\"Reload diff\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`.?${paramsWithForcedRefresh}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex h-full w-14 items-center justify-center\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tname=\"Refresh\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn({ 'animate-spin': spinnerNavigating })}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Form\n\t\t\t\t\t\t\t\tonChange={(e) => submit(e.currentTarget)}\n\t\t\t\t\t\t\t\tclassName=\"flex h-full flex-1 items-center overflow-x-auto scrollbar-thin scrollbar-thumb-scrollbar\"\n\t\t\t\t\t\t\t\tkey={`${diff.app1}${diff.app2}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{hiddenInputs}\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app1\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 1\"\n\t\t\t\t\t\t\t\t\tclassName=\"border-r\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app1}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<SelectFileToDiff\n\t\t\t\t\t\t\t\t\tname=\"app2\"\n\t\t\t\t\t\t\t\t\tlabel=\"App 2\"\n\t\t\t\t\t\t\t\t\tallApps={allApps}\n\t\t\t\t\t\t\t\t\tdefaultValue={diff.app2}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Form>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex-grow overflow-y-scroll scrollbar-thin scrollbar-thumb-scrollbar\">\n\t\t\t\t\t\t\t{diff.diffCode ? (\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<Accordion.Root className=\"w-full\" type=\"multiple\">\n\t\t\t\t\t\t\t\t\t\t<Mdx code={diff.diffCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : diff.app1 && diff.app2 ? (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tThere was a problem generating the diff\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"m-5 inline-flex items-center justify-center bg-foreground px-1 py-0.5 font-mono text-sm uppercase text-background\">\n\t\t\t\t\t\t\t\t\tSelect two apps to compare\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Await>\n\t\t</Suspense>\n\t)\n}\n\nfunction SelectFileToDiff({\n\tname,\n\tlabel,\n\tclassName,\n\tallApps,\n\tdefaultValue,\n}: {\n\tname: string\n\tlabel: string\n\tclassName?: string\n\tallApps: Array<{ name: string; displayName: string }>\n\tdefaultValue?: string\n}) {\n\treturn (\n\t\t<Select.Root name={name} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'flex h-full w-full max-w-[50%] items-center justify-between px-3 text-left radix-placeholder:text-gray-500 focus-visible:outline-none',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-label={`Select ${label} for git Diff`}\n\t\t\t>\n\t\t\t\t<span className=\"overflow-hidden text-ellipsis whitespace-nowrap\">\n\t\t\t\t\t{label}:{' '}\n\t\t\t\t\t<SelectValue\n\t\t\t\t\t\tplaceholder={`Select ${label}`}\n\t\t\t\t\t\tclassName=\"inline-block w-40 text-ellipsis\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<Select.Icon className=\"\">\n\t\t\t\t\t<Icon name=\"TriangleDownSmall\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content\n\t\t\t\t\tposition=\"popper\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tclassName=\"z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]\"\n\t\t\t\t>\n\t\t\t\t\t<Select.ScrollUpButton className=\"flex h-5 cursor-default items-center justify-center \">\n\t\t\t\t\t\t<Icon name=\"ChevronUp\" />\n\t\t\t\t\t</Select.ScrollUpButton>\n\t\t\t\t\t<Select.Viewport className=\"p-3\">\n\t\t\t\t\t\t<Select.Group>\n\t\t\t\t\t\t\t<Select.Label className=\"px-5 pb-3 font-mono uppercase\">\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</Select.Label>\n\t\t\t\t\t\t\t{allApps.map((app) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<SelectItem key={app.name} value={app.name}>\n\t\t\t\t\t\t\t\t\t\t{app.displayName}\n\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Select.Group>\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t\t<Select.ScrollDownButton className=\"flex h-5 cursor-default items-center justify-center \">\n\t\t\t\t\t\t<Icon name=\"ChevronDown\" />\n\t\t\t\t\t</Select.ScrollDownButton>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t)\n}\n\nconst SelectItem: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Item\n\t\t\t\tclassName={clsx(\n\t\t\t\t\t'relative flex cursor-pointer select-none items-center rounded px-10 py-2 leading-none opacity-80 radix-disabled:text-red-500 radix-highlighted:opacity-100 radix-highlighted:outline-none radix-state-checked:opacity-100',\n\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t\tref={forwardedRef}\n\t\t\t>\n\t\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t\t<Select.ItemIndicator className=\"absolute left-0 inline-flex w-[25px] items-center justify-center\">\n\t\t\t\t\t<Icon name=\"CheckSmall\" />\n\t\t\t\t</Select.ItemIndicator>\n\t\t\t</Select.Item>\n\t\t)\n\t},\n)\n\nconst SelectValue: React.FC<any> = React.forwardRef(\n\t({ children, className, ...props }, forwardedRef) => {\n\t\treturn (\n\t\t\t<Select.Value {...props} ref={forwardedRef}>\n\t\t\t\t{props.value}\n\t\t\t</Select.Value>\n\t\t)\n\t},\n)\n"],"names":["createCollection","name","PROVIDER_NAME","createCollectionContext","createCollectionScope","createContextScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","props","scope","children","ref","React","itemMap","jsx","COLLECTION_SLOT_NAME","CollectionSlot","forwardedRef","context","composedRefs","useComposedRefs","Slot","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","a","b","DirectionContext","React.createContext","useDirection","localDir","globalDir","React.useContext","COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","CollapsibleProvider","useCollapsibleContext","Collapsible","React.forwardRef","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","useControllableState","useId","React.useCallback","prevOpen","Primitive","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","composeEventHandlers","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","Presence","present","CollapsibleContentImpl","isPresent","setIsPresent","React.useState","React.useRef","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","React.useEffect","rAF","useLayoutEffect","node","rect","Root","Trigger","Content","ACCORDION_NAME","ACCORDION_KEYS","Collection","createAccordionContext","createAccordionScope","useCollapsibleScope","Accordion","type","accordionProps","singleProps","multipleProps","AccordionImplMultiple","AccordionImplSingle","AccordionValueProvider","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","valueProp","defaultValue","onValueChange","collapsible","accordionSingleProps","value","setValue","AccordionImpl","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","value2","AccordionImplProvider","useAccordionContext","__scopeAccordion","dir","orientation","accordionRef","getItems","isDirectionLTR","handleKeyDown","event","target","triggerCollection","item","_a","triggerIndex","triggerCount","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","ITEM_NAME","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","collapsibleScope","triggerId","CollapsiblePrimitive.Root","open2","HEADER_NAME","AccordionHeader","headerProps","itemContext","AccordionTrigger","collapsibleContext","CollapsiblePrimitive.Trigger","AccordionContent","CollapsiblePrimitive.Content","Root2","Item","Header","Trigger2","Content2","clamp","min","max","usePrevious","React.useMemo","OPEN_KEYS","SELECTION_KEYS","SELECT_NAME","createSelectContext","createSelectScope","createPopperScope","usePopperScope","SelectProvider","useSelectContext","SelectNativeOptionsProvider","useSelectNativeOptionsContext","Select","__scopeSelect","autoComplete","required","popperScope","trigger","setTrigger","valueNode","setValueNode","valueNodeHasChildren","setValueNodeHasChildren","direction","triggerPointerDownPosRef","isFormControl","nativeOptionsSet","setNativeOptionsSet","nativeSelectKey","option","PopperPrimitive.Root","jsxs","prev","optionsSet","BubbleSelect","SelectTrigger","isDisabled","searchRef","handleTypeaheadSearch","resetTypeahead","useTypeaheadSearch","search","enabledItems","currentItem","nextItem","findNextItem","handleOpen","PopperPrimitive.Anchor","shouldShowPlaceholder","isTypingAhead","VALUE_NAME","SelectValue","className","style","placeholder","valueProps","onValueNodeHasChildrenChange","hasChildren","Fragment","ICON_NAME","SelectIcon","iconProps","PORTAL_NAME","SelectPortal","PortalPrimitive","SelectContent","fragment","setFragment","frag","ReactDOM.createPortal","SelectContentProvider","SelectContentImpl","CONTENT_MARGIN","useSelectContentContext","CONTENT_IMPL_NAME","position","onCloseAutoFocus","onEscapeKeyDown","onPointerDownOutside","side","sideOffset","align","alignOffset","arrowPadding","collisionBoundary","collisionPadding","sticky","hideWhenDetached","avoidCollisions","content","setContent","viewport","setViewport","selectedItem","setSelectedItem","selectedItemText","setSelectedItemText","isPositioned","setIsPositioned","firstValidItemFoundRef","hideOthers","useFocusGuards","focusFirst","candidates","firstItem","restItems","lastItem","PREVIOUSLY_FOCUSED_ELEMENT","candidate","focusSelectedItem","pointerMoveDelta","handlePointerMove","_b","handlePointerUp","close","itemRefCallback","isFirstValidItem","handleItemLeave","itemTextRefCallback","SelectPosition","SelectPopperPosition","SelectItemAlignedPosition","popperContentProps","RemoveScroll","FocusScope","DismissableLayer","isModifierKey","candidateNodes","currentElement","currentIndex","ITEM_ALIGNED_POSITION_NAME","onPlaced","popperProps","contentContext","contentWrapper","setContentWrapper","shouldExpandOnScrollRef","shouldRepositionRef","triggerRect","contentRect","valueNodeRect","itemTextRect","itemTextOffset","left","leftDelta","minContentWidth","contentWidth","rightEdge","clampedLeft","right","rightDelta","leftEdge","clampedRight","items","availableHeight","itemsHeight","contentStyles","contentBorderTopWidth","contentPaddingTop","contentBorderBottomWidth","contentPaddingBottom","fullContentHeight","minContentHeight","viewportStyles","viewportPaddingTop","viewportPaddingBottom","topEdgeToTriggerMiddle","triggerMiddleToBottomEdge","selectedItemHalfHeight","itemOffsetMiddle","contentTopToItemMiddle","itemMiddleToContentBottom","isLastItem","viewportOffsetBottom","clampedTriggerMiddleToBottomEdge","isFirstItem","contentZIndex","setContentZIndex","handleScrollButtonChange","SelectViewportProvider","POPPER_POSITION_NAME","PopperPrimitive.Content","useSelectViewportContext","VIEWPORT_NAME","SelectViewport","nonce","viewportProps","viewportContext","prevScrollTopRef","scrolledBy","cssMinHeight","cssHeight","prevHeight","nextHeight","clampedNextHeight","heightDiff","GROUP_NAME","SelectGroupContextProvider","useSelectGroupContext","SelectGroup","groupProps","groupId","LABEL_NAME","SelectLabel","labelProps","groupContext","SelectItemContextProvider","useSelectItemContext","SelectItem","textValueProp","itemProps","isSelected","textValue","setTextValue","isFocused","setIsFocused","textId","handleSelect","prevTextValue","ITEM_TEXT_NAME","SelectItemText","itemTextProps","nativeOptionsContext","itemTextNode","setItemTextNode","textContent","nativeOption","onNativeOptionAdd","onNativeOptionRemove","ITEM_INDICATOR_NAME","SelectItemIndicator","itemIndicatorProps","SCROLL_UP_BUTTON_NAME","SelectScrollUpButton","canScrollUp","setCanScrollUp","handleScroll2","canScrollUp2","SelectScrollButtonImpl","SCROLL_DOWN_BUTTON_NAME","SelectScrollDownButton","canScrollDown","setCanScrollDown","maxScroll","canScrollDown2","onAutoScroll","scrollIndicatorProps","autoScrollTimerRef","clearAutoScrollTimer","activeItem","SEPARATOR_NAME","SelectSeparator","separatorProps","ARROW_NAME","SelectArrow","arrowProps","PopperPrimitive.Arrow","selectProps","select","selectProto","VisuallyHidden","onSearchChange","handleSearchChange","useCallbackRef","timerRef","key","updateSearch","normalizedSearch","char","currentItemIndex","wrappedItems","wrapArray","v","array","startIndex","_","index","Value","Icon","Portal","Viewport","Group","Label","ItemText","ItemIndicator","ScrollUpButton","ScrollDownButton","AccordionComponent","title","variant","icon","getVariantIcon","getVariantLabel","fixedTitle","Accordion.Item","clsx","Accordion.Header","Accordion.Trigger","Accordion.Content","pre","mdxComponents","Diff","diff","allApps","submit","useSubmit","params","useSearchParams","paramsWithForcedRefresh","navigation","useNavigation","spinnerNavigating","useSpinDelay","hiddenInputs","Suspense","SimpleTooltip","Await","Link","cn","Form","e","SelectFileToDiff","Accordion.Root","Mdx","label","Select.Root","Select.Trigger","Select.Icon","Select.Portal","Select.Content","Select.ScrollUpButton","Select.Viewport","Select.Group","Select.Label","app","Select.ScrollDownButton","Select.Item","Select.ItemText","Select.ItemIndicator","Select.Value"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}