@epic-web/workshop-app 5.3.7 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_-CWSCXcBv.js → _-BrkpfnBb.js} +2 -2
- package/build/client/assets/{_-CWSCXcBv.js.map → _-BrkpfnBb.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber-BnwWTYFw.js → _exerciseNumber-DCSM0NCG.js} +2 -2
- package/build/client/assets/{_exerciseNumber-BnwWTYFw.js.map → _exerciseNumber-DCSM0NCG.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-BA2Xhzqs.js → _exerciseNumber_._stepNumber-BIMJh_sg.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-BA2Xhzqs.js.map → _exerciseNumber_._stepNumber-BIMJh_sg.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_.finished-BfeMSie-.js → _exerciseNumber_.finished-nbpk1ToO.js} +2 -2
- package/build/client/assets/{_exerciseNumber_.finished-BfeMSie-.js.map → _exerciseNumber_.finished-nbpk1ToO.js.map} +1 -1
- package/build/client/assets/{_layout-pUNfVRe2.js → _layout-Cbz7Qt-S.js} +2 -2
- package/build/client/assets/{_layout-pUNfVRe2.js.map → _layout-Cbz7Qt-S.js.map} +1 -1
- package/build/client/assets/{_layout-Bpho30KN.js → _layout-DTAM9xh5.js} +2 -2
- package/build/client/assets/{_layout-Bpho30KN.js.map → _layout-DTAM9xh5.js.map} +1 -1
- package/build/client/assets/_layout-Dfmv2zcn.js +2 -0
- package/build/client/assets/_layout-Dfmv2zcn.js.map +1 -0
- package/build/client/assets/{accordion-DC885Li1.js → accordion-D9-D-n9p.js} +2 -2
- package/build/client/assets/{accordion-DC885Li1.js.map → accordion-D9-D-n9p.js.map} +1 -1
- package/build/client/assets/account-C4Piztoz.js +2 -0
- package/build/client/assets/account-C4Piztoz.js.map +1 -0
- package/build/client/assets/app-DgTXXO8s.js +2 -0
- package/build/client/assets/{app-CM8yuYni.js.map → app-DgTXXO8s.js.map} +1 -1
- package/build/client/assets/{button-DQ001ob0.js → button-_qPvcoqR.js} +2 -2
- package/build/client/assets/{button-DQ001ob0.js.map → button-_qPvcoqR.js.map} +1 -1
- package/build/client/assets/{components-9EGYHTc_.js → components-Be92gVxW.js} +2 -2
- package/build/client/assets/{components-9EGYHTc_.js.map → components-Be92gVxW.js.map} +1 -1
- package/build/client/assets/{diff-CyIaJAoJ.js → diff-8nlDkmpc.js} +2 -2
- package/build/client/assets/{diff-CyIaJAoJ.js.map → diff-8nlDkmpc.js.map} +1 -1
- package/build/client/assets/diff-BhRAIPKc.js +2 -0
- package/build/client/assets/{diff-Cnw7IcG5.js.map → diff-BhRAIPKc.js.map} +1 -1
- package/build/client/assets/discord-BUWZUTEC.js +2 -0
- package/build/client/assets/discord-BUWZUTEC.js.map +1 -0
- package/build/client/assets/discord-Bdnx7fu-.js +2 -0
- package/build/client/assets/discord-Bdnx7fu-.js.map +1 -0
- package/build/client/assets/{entry.client-BTYTUpFV.js → entry.client-DqIWuxf8.js} +2 -2
- package/build/client/assets/{entry.client-BTYTUpFV.js.map → entry.client-DqIWuxf8.js.map} +1 -1
- package/build/client/assets/{epic-video-1XLXSFCL.js → epic-video-Bp4BOD2R.js} +2 -2
- package/build/client/assets/{epic-video-1XLXSFCL.js.map → epic-video-Bp4BOD2R.js.map} +1 -1
- package/build/client/assets/{error-boundary-1-dmC941.js → error-boundary-BZA-ffa8.js} +2 -2
- package/build/client/assets/{error-boundary-1-dmC941.js.map → error-boundary-BZA-ffa8.js.map} +1 -1
- package/build/client/assets/{finished-DjF_kSoF.js → finished-C0cpfAFL.js} +2 -2
- package/build/client/assets/{finished-DjF_kSoF.js.map → finished-C0cpfAFL.js.map} +1 -1
- package/build/client/assets/{index-BuoaxPEj.js → index-BCTr8uu6.js} +2 -2
- package/build/client/assets/{index-BuoaxPEj.js.map → index-BCTr8uu6.js.map} +1 -1
- package/build/client/assets/{index-_J-F_Dnc.js → index-Bdg3v8tC.js} +2 -2
- package/build/client/assets/{index-_J-F_Dnc.js.map → index-Bdg3v8tC.js.map} +1 -1
- package/build/client/assets/index-Bi1TbRTj.js +2 -0
- package/build/client/assets/index-Bi1TbRTj.js.map +1 -0
- package/build/client/assets/{index-DRH72MzK.js → index-C9Hx0Dey.js} +2 -2
- package/build/client/assets/{index-DRH72MzK.js.map → index-C9Hx0Dey.js.map} +1 -1
- package/build/client/assets/{index-f5Q6XZEy.js → index-Ca4vBON4.js} +2 -2
- package/build/client/assets/{index-f5Q6XZEy.js.map → index-Ca4vBON4.js.map} +1 -1
- package/build/client/assets/{index-BuA_RWlU.js → index-DZDhtMuq.js} +2 -2
- package/build/client/assets/{index-BuA_RWlU.js.map → index-DZDhtMuq.js.map} +1 -1
- package/build/client/assets/index-pkiQppkK.js +2 -0
- package/build/client/assets/index-pkiQppkK.js.map +1 -0
- package/build/client/assets/{loading-Dk0n07O3.js → loading-XhMtj4mp.js} +2 -2
- package/build/client/assets/{loading-Dk0n07O3.js.map → loading-XhMtj4mp.js.map} +1 -1
- package/build/client/assets/{login-pZYDEC_l.js → login-C1oOgi98.js} +2 -2
- package/build/client/assets/{login-pZYDEC_l.js.map → login-C1oOgi98.js.map} +1 -1
- package/build/client/assets/manifest-bc809ee6.js +1 -0
- package/build/client/assets/{mdx-DiFCTSLR.js → mdx-CEjzXoEx.js} +2 -2
- package/build/client/assets/{mdx-DiFCTSLR.js.map → mdx-CEjzXoEx.js.map} +1 -1
- package/build/client/assets/{misc-BJtHv_Jh.js → misc-DUy_whwE.js} +2 -2
- package/build/client/assets/{misc-BJtHv_Jh.js.map → misc-DUy_whwE.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-CgbSMLeb.js → nav-chevrons-DnR25VLp.js} +2 -2
- package/build/client/assets/{nav-chevrons-CgbSMLeb.js.map → nav-chevrons-DnR25VLp.js.map} +1 -1
- package/build/client/assets/{onboarding-DXICEaMi.js → onboarding-C2YNq60k.js} +2 -2
- package/build/client/assets/{onboarding-DXICEaMi.js.map → onboarding-C2YNq60k.js.map} +1 -1
- package/build/client/assets/{presence-DyppfK2V.js → presence-DJGFvdDh.js} +2 -2
- package/build/client/assets/{presence-DyppfK2V.js.map → presence-DJGFvdDh.js.map} +1 -1
- package/build/client/assets/{preview-CW_12I0i.js → preview-DaZd0wMb.js} +2 -2
- package/build/client/assets/{preview-CW_12I0i.js.map → preview-DaZd0wMb.js.map} +1 -1
- package/build/client/assets/{product-C1ynnrN_.js → product-DIAmCwmZ.js} +2 -2
- package/build/client/assets/{product-C1ynnrN_.js.map → product-DIAmCwmZ.js.map} +1 -1
- package/build/client/assets/{progress-DAB3nDa2.js → progress-DQt_Bn9o.js} +2 -2
- package/build/client/assets/{progress-DAB3nDa2.js.map → progress-DQt_Bn9o.js.map} +1 -1
- package/build/client/assets/{progress-bar-Cj5R4Zk7.js → progress-bar-BaTU3Yx_.js} +2 -2
- package/build/client/assets/{progress-bar-Cj5R4Zk7.js.map → progress-bar-BaTU3Yx_.js.map} +1 -1
- package/build/client/assets/{request-info-DCIQLE6H.js → request-info-ByUEfOil.js} +2 -2
- package/build/client/assets/{request-info-DCIQLE6H.js.map → request-info-ByUEfOil.js.map} +1 -1
- package/build/client/assets/{revalidation-ws-DU-PzW-_.js → revalidation-ws-dUa9CAqr.js} +2 -2
- package/build/client/assets/{revalidation-ws-DU-PzW-_.js.map → revalidation-ws-dUa9CAqr.js.map} +1 -1
- package/build/client/assets/{root-DCfiv1cO.js → root-a3d3Qwip.js} +2 -2
- package/build/client/assets/{root-DCfiv1cO.js.map → root-a3d3Qwip.js.map} +1 -1
- package/build/client/assets/{set-playground-S_rIwJAa.js → set-playground-CBHBA46B.js} +2 -2
- package/build/client/assets/{set-playground-S_rIwJAa.js.map → set-playground-CBHBA46B.js.map} +1 -1
- package/build/client/assets/{support-BNS-kEhc.js → support-CIz02V_r.js} +2 -2
- package/build/client/assets/{support-BNS-kEhc.js.map → support-CIz02V_r.js.map} +1 -1
- package/build/client/assets/test-DoKJvNug.js +2 -0
- package/build/client/assets/{test-CvzcNTDp.js.map → test-DoKJvNug.js.map} +1 -1
- package/build/client/assets/{tests-Bp85P9FF.js → tests-DbuyD2cI.js} +2 -2
- package/build/client/assets/{tests-Bp85P9FF.js.map → tests-DbuyD2cI.js.map} +1 -1
- package/build/client/assets/{tooltip-BgynKV2c.js → tooltip-DO9uwurQ.js} +2 -2
- package/build/client/assets/{tooltip-BgynKV2c.js.map → tooltip-DO9uwurQ.js.map} +1 -1
- package/build/client/assets/user-Bv6wYhQP.js +2 -0
- package/build/client/assets/user-Bv6wYhQP.js.map +1 -0
- package/build/client/assets/version-CaywAlNQ.js +2 -0
- package/build/client/assets/version-CaywAlNQ.js.map +1 -0
- package/build/client/assets/{workshop-config-DJY2cXU_.js → workshop-config-WVltG_BV.js} +2 -2
- package/build/client/assets/{workshop-config-DJY2cXU_.js.map → workshop-config-WVltG_BV.js.map} +1 -1
- package/build/server/index.js +420 -361
- package/build/server/index.js.map +1 -1
- package/package.json +3 -3
- package/start.js +6 -0
- package/build/client/assets/_layout-gyrNluke.js +0 -2
- package/build/client/assets/_layout-gyrNluke.js.map +0 -1
- package/build/client/assets/account-RJjysGnp.js +0 -2
- package/build/client/assets/account-RJjysGnp.js.map +0 -1
- package/build/client/assets/app-CM8yuYni.js +0 -2
- package/build/client/assets/diff-Cnw7IcG5.js +0 -2
- package/build/client/assets/discord-DxisvcaU.js +0 -2
- package/build/client/assets/discord-DxisvcaU.js.map +0 -1
- package/build/client/assets/discord-lXkS53K3.js +0 -2
- package/build/client/assets/discord-lXkS53K3.js.map +0 -1
- package/build/client/assets/discord.callback-l0sNRNKZ.js +0 -2
- package/build/client/assets/discord.callback-l0sNRNKZ.js.map +0 -1
- package/build/client/assets/index-DZ0It6pH.js +0 -2
- package/build/client/assets/index-DZ0It6pH.js.map +0 -1
- package/build/client/assets/manifest-9328c766.js +0 -1
- package/build/client/assets/test-CvzcNTDp.js +0 -2
- package/build/client/assets/user-DJiL1Lk-.js +0 -2
- package/build/client/assets/user-DJiL1Lk-.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion-DC885Li1.js","sources":["../../../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../../app/components/accordion.tsx"],"sourcesContent":["\"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","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"],"names":["COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","createContextScope","CollapsibleProvider","useCollapsibleContext","Collapsible","React.forwardRef","props","forwardedRef","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","useControllableState","jsx","useId","React.useCallback","prevOpen","Primitive","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","composeEventHandlers","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","Presence","present","CollapsibleContentImpl","children","isPresent","setIsPresent","React.useState","ref","React.useRef","composedRefs","useComposedRefs","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","React.useEffect","rAF","useLayoutEffect","node","rect","Root","Trigger","Content","ACCORDION_NAME","ACCORDION_KEYS","Collection","useCollection","createCollectionScope","createCollection","createAccordionContext","createAccordionScope","useCollapsibleScope","Accordion","React","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","useDirection","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","AccordionComponent","title","variant","icon","getVariantIcon","Icon","getVariantLabel","fixedTitle","jsxs","Accordion.Item","clsx","className","Accordion.Header","Accordion.Trigger","Accordion.Content"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"accordion-D9-D-n9p.js","sources":["../../../../../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../../../../../node_modules/@radix-ui/react-accordion/dist/index.mjs","../../../app/components/accordion.tsx"],"sourcesContent":["\"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","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"],"names":["COLLAPSIBLE_NAME","createCollapsibleContext","createCollapsibleScope","createContextScope","CollapsibleProvider","useCollapsibleContext","Collapsible","React.forwardRef","props","forwardedRef","__scopeCollapsible","openProp","defaultOpen","disabled","onOpenChange","collapsibleProps","open","setOpen","useControllableState","jsx","useId","React.useCallback","prevOpen","Primitive","getState","TRIGGER_NAME","CollapsibleTrigger","triggerProps","context","composeEventHandlers","CONTENT_NAME","CollapsibleContent","forceMount","contentProps","Presence","present","CollapsibleContentImpl","children","isPresent","setIsPresent","React.useState","ref","React.useRef","composedRefs","useComposedRefs","heightRef","height","widthRef","width","isOpen","isMountAnimationPreventedRef","originalStylesRef","React.useEffect","rAF","useLayoutEffect","node","rect","Root","Trigger","Content","ACCORDION_NAME","ACCORDION_KEYS","Collection","useCollection","createCollectionScope","createCollection","createAccordionContext","createAccordionScope","useCollapsibleScope","Accordion","React","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","useDirection","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","AccordionComponent","title","variant","icon","getVariantIcon","Icon","getVariantLabel","fixedTitle","jsxs","Accordion.Item","clsx","className","Accordion.Header","Accordion.Trigger","Accordion.Content"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"./index-BFGhCX_U.js";import{B as r}from"./button-_qPvcoqR.js";import{I as i}from"./misc-DUy_whwE.js";import{S as o}from"./tooltip-DO9uwurQ.js";import{u as d,a as m}from"./user-Bv6wYhQP.js";import{u}from"./workshop-config-WVltG_BV.js";import{u as x}from"./presence-DJGFvdDh.js";import{L as a,F as l}from"./components-Be92gVxW.js";import"./request-info-ByUEfOil.js";const k={getSitemapEntries:()=>null};function h(){const{product:{host:s}}=u();return`https://${s}/discord`}function L(){const s=d(),t=m(),n=x(),c=h();return e.jsxs("main",{className:"container flex h-full w-full max-w-3xl flex-grow flex-col items-center justify-center gap-4",children:[s.imageUrlLarge?e.jsx("img",{className:"h-36 w-36 rounded-full",alt:(t==null?void 0:t.displayName)??s.name??s.email,src:s.imageUrlLarge}):e.jsx(i,{name:"User",className:"flex-shrink-0",size:"lg"}),e.jsx("h1",{className:"mb-1 text-2xl",children:"Your Account"}),e.jsx("p",{className:"text-center text-gray-700 dark:text-gray-300",children:s.name?`Hi ${(t==null?void 0:t.displayName)??s.name}, your device is logged in with ${s.email}.`:`Your device is logged in with ${s.email}.`}),t?e.jsx(e.Fragment,{children:e.jsxs("p",{className:"text-center text-gray-700 dark:text-gray-300",children:["And you are connected to discord as"," ",e.jsx("a",{href:`https://discord.com/users/${t.id}`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:t.displayName}),"."]})}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(a,{to:c,className:"inline-flex items-center gap-2 underline",children:[e.jsx(i,{name:"Discord",size:"lg"}),"Connect Discord"]}),e.jsx(o,{content:"This will give you access to the exclusive Discord channels for Epic Web",children:e.jsx(i,{name:"Question",tabIndex:0})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(l,{method:"POST",children:[e.jsx("input",{name:"optOut",type:"hidden",value:n!=null&&n.optOut?"false":"true"}),e.jsxs(r,{varient:"mono",name:"intent",value:"presence-opt-out",children:[n!=null&&n.optOut?"Opt in to":"Opt out of"," presence"]})]}),e.jsx(o,{content:"This controls whether your name and avatar are displayed in the pile of faces in navigation",children:e.jsx(i,{name:"Question",tabIndex:0})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(l,{method:"post",children:e.jsx(r,{varient:"mono",name:"intent",value:"logout",children:"Log device out"})}),e.jsx(o,{content:e.jsxs("div",{children:["Note: it is your ",e.jsx("i",{className:"italic",children:"device"})," that's logged in, not your browser.",e.jsx("br",{}),"So all browsers on this device will be logged in with the same account on this device."]}),children:e.jsx(i,{name:"Question",tabIndex:0})})]}),e.jsxs("p",{children:["Check"," ",e.jsx(a,{to:"/onboarding",className:"underline",children:"/onboarding"})," ","if you'd like to review onboarding again."]}),e.jsxs("p",{children:["Check"," ",e.jsx(a,{to:"/support",className:"underline",children:"/support"})," ","if you need support."]})]})}export{L as default,k as handle};
|
|
2
|
+
//# sourceMappingURL=account-C4Piztoz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-C4Piztoz.js","sources":["../../../app/routes/_app+/account.tsx"],"sourcesContent":["import { deleteCache } from '@epic-web/workshop-utils/cache.server'\nimport {\n\tdeleteDb,\n\trequireAuthInfo,\n\tsetPresencePreferences,\n} from '@epic-web/workshop-utils/db.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport { redirect, type LoaderFunctionArgs } from '@remix-run/node'\nimport { Form, Link } from '@remix-run/react'\nimport { Button } from '#app/components/button.tsx'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.js'\nimport { useOptionalDiscordMember, useUser } from '#app/components/user.tsx'\nimport { useWorkshopConfig } from '#app/components/workshop-config.tsx'\nimport { ensureUndeployed } from '#app/utils/misc.tsx'\nimport { usePresencePreferences } from '#app/utils/presence.tsx'\nimport { redirectWithToast } from '#app/utils/toast.server.ts'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => null,\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tensureUndeployed()\n\tawait requireAuthInfo({ request })\n\treturn {}\n}\n\nexport async function action({ request }: { request: Request }) {\n\tensureUndeployed()\n\tconst formData = await request.formData()\n\tconst intent = formData.get('intent')\n\tif (intent === 'logout') {\n\t\tawait deleteDb()\n\t\tawait deleteCache()\n\t\treturn redirectWithToast('/login', {\n\t\t\ttype: 'success',\n\t\t\ttitle: 'Logged out',\n\t\t\tdescription: 'Goodbye! Come back soon!',\n\t\t})\n\t} else if (intent === 'presence-opt-out') {\n\t\tconst optOut = formData.get('optOut') === 'true'\n\t\tawait setPresencePreferences({ optOut })\n\t\treturn redirectWithToast('/account', {\n\t\t\ttitle: optOut ? 'Opted out' : 'Opted in',\n\t\t\tdescription: `You are now ${optOut ? 'invisible' : 'visible'}.`,\n\t\t\ttype: 'success',\n\t\t})\n\t}\n\n\treturn redirect('/account')\n}\n\nfunction useConnectDiscordURL() {\n\tconst {\n\t\tproduct: { host },\n\t} = useWorkshopConfig()\n\treturn `https://${host}/discord`\n}\n\nexport default function Account() {\n\tconst user = useUser()\n\tconst discordMember = useOptionalDiscordMember()\n\tconst presencePreferences = usePresencePreferences()\n\tconst connectDiscordURL = useConnectDiscordURL()\n\treturn (\n\t\t<main className=\"container flex h-full w-full max-w-3xl flex-grow flex-col items-center justify-center gap-4\">\n\t\t\t{user.imageUrlLarge ? (\n\t\t\t\t<img\n\t\t\t\t\tclassName=\"h-36 w-36 rounded-full\"\n\t\t\t\t\talt={discordMember?.displayName ?? user.name ?? user.email}\n\t\t\t\t\tsrc={user.imageUrlLarge}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Icon name=\"User\" className=\"flex-shrink-0\" size=\"lg\" />\n\t\t\t)}\n\t\t\t<h1 className=\"mb-1 text-2xl\">Your Account</h1>\n\t\t\t<p className=\"text-center text-gray-700 dark:text-gray-300\">\n\t\t\t\t{user.name\n\t\t\t\t\t? `Hi ${\n\t\t\t\t\t\t\tdiscordMember?.displayName ?? user.name\n\t\t\t\t\t\t}, your device is logged in with ${user.email}.`\n\t\t\t\t\t: `Your device is logged in with ${user.email}.`}\n\t\t\t</p>\n\t\t\t{discordMember ? (\n\t\t\t\t<>\n\t\t\t\t\t<p className=\"text-center text-gray-700 dark:text-gray-300\">\n\t\t\t\t\t\tAnd you are connected to discord as{' '}\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={`https://discord.com/users/${discordMember.id}`}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\tclassName=\"underline\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{discordMember.displayName}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t\t.\n\t\t\t\t\t</p>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t<Link\n\t\t\t\t\t\tto={connectDiscordURL}\n\t\t\t\t\t\tclassName=\"inline-flex items-center gap-2 underline\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon name=\"Discord\" size=\"lg\" />\n\t\t\t\t\t\tConnect Discord\n\t\t\t\t\t</Link>\n\t\t\t\t\t<SimpleTooltip content=\"This will give you access to the exclusive Discord channels for Epic Web\">\n\t\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t\t</SimpleTooltip>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Form method=\"POST\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tname=\"optOut\"\n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\tvalue={presencePreferences?.optOut ? 'false' : 'true'}\n\t\t\t\t\t/>\n\t\t\t\t\t<Button varient=\"mono\" name=\"intent\" value=\"presence-opt-out\">\n\t\t\t\t\t\t{presencePreferences?.optOut ? 'Opt in to' : 'Opt out of'} presence\n\t\t\t\t\t</Button>\n\t\t\t\t</Form>\n\t\t\t\t<SimpleTooltip content=\"This controls whether your name and avatar are displayed in the pile of faces in navigation\">\n\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Form method=\"post\">\n\t\t\t\t\t<Button varient=\"mono\" name=\"intent\" value=\"logout\">\n\t\t\t\t\t\tLog device out\n\t\t\t\t\t</Button>\n\t\t\t\t</Form>\n\t\t\t\t<SimpleTooltip\n\t\t\t\t\tcontent={\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\tNote: it is your <i className=\"italic\">device</i> that's logged\n\t\t\t\t\t\t\tin, not your browser.\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\tSo all browsers on this device will be logged in with the same\n\t\t\t\t\t\t\taccount on this device.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<Icon name=\"Question\" tabIndex={0} />\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<p>\n\t\t\t\tCheck{' '}\n\t\t\t\t<Link to=\"/onboarding\" className=\"underline\">\n\t\t\t\t\t/onboarding\n\t\t\t\t</Link>{' '}\n\t\t\t\tif you'd like to review onboarding again.\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\tCheck{' '}\n\t\t\t\t<Link to=\"/support\" className=\"underline\">\n\t\t\t\t\t/support\n\t\t\t\t</Link>{' '}\n\t\t\t\tif you need support.\n\t\t\t</p>\n\t\t</main>\n\t)\n}\n"],"names":["handle","getSitemapEntries","useConnectDiscordURL","product","host","useWorkshopConfig","Account","user","useUser","discordMember","useOptionalDiscordMember","presencePreferences","usePresencePreferences","connectDiscordURL","jsxs","className","children","imageUrlLarge","jsx","alt","displayName","name","email","src","Icon","size","Fragment","href","id","target","rel","Link","to","SimpleTooltip","content","tabIndex","Form","method","type","value","optOut","Button","varient"],"mappings":"+XAkBO,MAAMA,EAAoB,CAChCC,kBAAmBA,IAAM,IAC1B,EAiCA,SAASC,GAAuB,CACzB,KAAA,CACLC,QAAS,CAAEC,KAAAA,CAAK,GACbC,EAAkB,EACtB,MAAO,WAAWD,CAAI,UACvB,CAEA,SAAwBE,GAAU,CACjC,MAAMC,EAAOC,IACPC,EAAgBC,IAChBC,EAAsBC,IACtBC,EAAoBX,IAEzB,OAAAY,EAAAA,KAAC,OAAK,CAAAC,UAAU,8FACdC,SAAA,CAAAT,EAAKU,cACLC,EAAAA,IAAC,MAAA,CACAH,UAAU,yBACVI,KAAKV,GAAAA,YAAAA,EAAeW,cAAeb,EAAKc,MAAQd,EAAKe,MACrDC,IAAKhB,EAAKU,aAAA,CACX,QAECO,EAAK,CAAAH,KAAK,OAAON,UAAU,gBAAgBU,KAAK,IAAK,CAAA,EAEtDP,EAAA,IAAA,KAAA,CAAGH,UAAU,gBAAgBC,SAAY,cAAA,CAAA,QACzC,IAAE,CAAAD,UAAU,+CACXC,SAAKT,EAAAc,KACH,OACAZ,GAAAA,YAAAA,EAAeW,cAAeb,EAAKc,IACpC,mCAAmCd,EAAKe,KAAK,IAC5C,iCAAiCf,EAAKe,KAAK,IAC/C,EACCb,EACAS,EAAA,IAAAQ,WAAA,CACCV,SAACF,EAAA,KAAA,IAAA,CAAEC,UAAU,+CAA+CC,SAAA,CAAA,sCACvB,IACpCE,EAAAA,IAAC,IAAA,CACAS,KAAM,6BAA6BlB,EAAcmB,EAAE,GACnDC,OAAO,SACPC,IAAI,sBACJf,UAAU,YAETC,SAAcP,EAAAW,WAChB,CAAA,EAAI,GAAA,EAEL,CACD,CAAA,EAECN,EAAA,KAAA,MAAA,CAAIC,UAAU,0BACdC,SAAA,CAAAF,EAAA,KAACiB,EAAA,CACAC,GAAInB,EACJE,UAAU,2CAEVC,SAAA,CAAAE,EAAA,IAACM,EAAK,CAAAH,KAAK,UAAUI,KAAK,IAAK,CAAA,EAAE,iBAAA,CAAA,CAElC,EACAP,EAAA,IAACe,EAAc,CAAAC,QAAQ,2EACtBlB,SAAAE,EAAA,IAACM,GAAKH,KAAK,WAAWc,SAAU,EAAG,CACpC,CAAA,CAAA,CACD,CAAA,EAEDrB,EAAA,KAAC,MAAI,CAAAC,UAAU,0BACdC,SAAA,CAACF,EAAA,KAAAsB,EAAA,CAAKC,OAAO,OACZrB,SAAA,CAAAE,EAAA,IAAC,QAAA,CACAG,KAAK,SACLiB,KAAK,SACLC,MAAO5B,GAAAA,MAAAA,EAAqB6B,OAAS,QAAU,MAAA,CAChD,SACCC,EAAO,CAAAC,QAAQ,OAAOrB,KAAK,SAASkB,MAAM,mBACzCvB,SAAA,CAAAL,GAAAA,MAAAA,EAAqB6B,OAAS,YAAc,aAAa,WAAA,CAC3D,CAAA,CAAA,CACD,CAAA,EACAtB,EAAA,IAACe,EAAc,CAAAC,QAAQ,8FACtBlB,SAAAE,EAAA,IAACM,GAAKH,KAAK,WAAWc,SAAU,EAAG,CACpC,CAAA,CAAA,CACD,CAAA,EACArB,EAAA,KAAC,MAAI,CAAAC,UAAU,0BACdC,SAAA,CAAAE,EAAA,IAACkB,EAAK,CAAAC,OAAO,OACZrB,SAAAE,EAAA,IAACuB,EAAO,CAAAC,QAAQ,OAAOrB,KAAK,SAASkB,MAAM,SAASvB,SAAA,iBAEpD,CACD,CAAA,EACAE,EAAA,IAACe,EAAA,CACAC,eACE,MAAI,CAAAlB,SAAA,CAAA,oBACcE,EAAA,IAAA,IAAA,CAAEH,UAAU,SAASC,SAAM,QAAA,CAAA,EAAI,6CAEhD,KAAG,CAAA,CAAA,EAAE,wFAAA,CAGP,CAAA,EAGDA,SAACE,EAAA,IAAAM,EAAA,CAAKH,KAAK,WAAWc,SAAU,EAAG,CAAA,CACpC,CAAA,CACD,CAAA,SACC,IAAE,CAAAnB,SAAA,CAAA,QACI,UACLe,EAAK,CAAAC,GAAG,cAAcjB,UAAU,YAAYC,SAE7C,aAAA,CAAA,EAAQ,IAAI,2CAAA,CAEb,CAAA,SACC,IAAE,CAAAA,SAAA,CAAA,QACI,UACLe,EAAK,CAAAC,GAAG,WAAWjB,UAAU,YAAYC,SAE1C,UAAA,CAAA,EAAQ,IAAI,sBAAA,CAEb,CAAA,CAAA,CACD,CAAA,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,j as s}from"./index-BFGhCX_U.js";import{P as e}from"./preview-DaZd0wMb.js";import{u as i}from"./components-Be92gVxW.js";import"./misc-DUy_whwE.js";import"./request-info-ByUEfOil.js";import"./button-_qPvcoqR.js";import"./loading-XhMtj4mp.js";import"./index-Bdg3v8tC.js";import"./tooltip-DO9uwurQ.js";import"./pe-ChIwTk8v.js";import"./progress-bar-BaTU3Yx_.js";function R(){const{appInfo:r}=i(),o=t.useRef(null);return s.jsx(e,{appInfo:r,inBrowserBrowserRef:o})}export{R as default};
|
|
2
|
+
//# sourceMappingURL=app-DgTXXO8s.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-
|
|
1
|
+
{"version":3,"file":"app-DgTXXO8s.js","sources":["../../../app/routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app.tsx"],"sourcesContent":["import { requireExerciseApp } from '@epic-web/workshop-utils/apps.server'\nimport {\n\tcombineServerTimings,\n\tmakeTimings,\n} from '@epic-web/workshop-utils/timing.server'\nimport {\n\tunstable_data as data,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n} from '@remix-run/node'\nimport { useLoaderData } from '@remix-run/react'\nimport { useRef } from 'react'\nimport { type InBrowserBrowserRef } from '#app/components/in-browser-browser.js'\nimport { Preview } from './__shared/preview.tsx'\nimport { getAppRunningState } from './__shared/utils.tsx'\n\nexport async function loader({ request, params }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('exercise-step-test')\n\tconst exerciseStepApp = await requireExerciseApp(params, { request, timings })\n\tconst { isRunning, portIsAvailable } =\n\t\tawait getAppRunningState(exerciseStepApp)\n\n\treturn data(\n\t\t{\n\t\t\tappInfo: {\n\t\t\t\tisRunning,\n\t\t\t\tname: exerciseStepApp.name,\n\t\t\t\ttitle: exerciseStepApp.title,\n\t\t\t\tportIsAvailable,\n\t\t\t\ttype: exerciseStepApp.type,\n\t\t\t\tfullPath: exerciseStepApp.fullPath,\n\t\t\t\tdev: exerciseStepApp.dev,\n\t\t\t\ttest: exerciseStepApp.test,\n\t\t\t\tstackBlitzUrl: exerciseStepApp.stackBlitzUrl,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': timings.toString(),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nexport default function TestsList() {\n\tconst { appInfo } = useLoaderData<typeof loader>()\n\tconst ref = useRef<InBrowserBrowserRef>(null)\n\n\treturn <Preview appInfo={appInfo} inBrowserBrowserRef={ref} />\n}\n"],"names":["TestsList","appInfo","useLoaderData","ref","useRef","jsx","Preview","inBrowserBrowserRef"],"mappings":"qXAmDA,SAAwBA,GAAY,CAC7B,KAAA,CAAEC,QAAAA,CAAQ,EAAIC,EAA6B,EAC3CC,EAAMC,SAA4B,IAAI,EAE5C,OAAQC,EAAAA,IAAAC,EAAA,CAAQL,QAAAA,EAAkBM,oBAAqBJ,CAAK,CAAA,CAC7D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as n}from"./index-BFGhCX_U.js";import{c as r}from"./misc-
|
|
2
|
-
//# sourceMappingURL=button-
|
|
1
|
+
import{j as n}from"./index-BFGhCX_U.js";import{c as r}from"./misc-DUy_whwE.js";import{L as u}from"./components-Be92gVxW.js";function l(){return n.jsx("span",{className:"inline-block animate-spin",children:"🌀"})}function d(){return n.jsx("span",{children:"✅"})}function m(){return n.jsx("span",{children:"❌"})}function a({varient:e,clip:o=!0}){const t="inline-flex bg-foreground text-background outline-none hover:bg-background hover:text-foreground focus:bg-background focus:text-foreground",s="px-8 py-4 font-bold",c="px-8 py-4 text-xl font-bold",i="px-8 py-4 font-mono text-sm uppercase";return r(t,{"clip-path-button":o,[s]:e==="primary",[c]:e==="big",[i]:e==="mono"})}function g({varient:e,status:o="idle",...t}){const s={pending:n.jsx(l,{}),success:n.jsx(d,{}),error:n.jsx(m,{}),idle:null}[o];return n.jsx("div",{className:"clip-path-button-outer w-fit border-2 border-foreground bg-foreground",children:n.jsxs("button",{...t,className:r(t.className,a({varient:e}),"flex justify-center gap-4"),children:[n.jsx("div",{children:t.children}),s]})})}function j({varient:e,...o}){return n.jsx("div",{className:"clip-path-button-outer w-fit border-2 border-foreground bg-foreground",children:n.jsx(u,{...o,className:r(o.className,a({varient:e}))})})}export{g as B,j as a};
|
|
2
|
+
//# sourceMappingURL=button-_qPvcoqR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-
|
|
1
|
+
{"version":3,"file":"button-_qPvcoqR.js","sources":["../../../app/components/button.tsx"],"sourcesContent":["import { Link } from '@remix-run/react'\nimport { clsx } from 'clsx'\n\nfunction PendingState() {\n\treturn <span className=\"inline-block animate-spin\">🌀</span>\n}\n\nfunction SuccessState() {\n\treturn <span>✅</span>\n}\n\nfunction ErrorState() {\n\treturn <span>❌</span>\n}\n\nexport function getButtonClassName({\n\tvarient,\n\tclip = true,\n}: {\n\tvarient: 'primary' | 'big' | 'mono'\n\tclip?: boolean\n}) {\n\tconst baseClassName =\n\t\t'inline-flex bg-foreground text-background outline-none hover:bg-background hover:text-foreground focus:bg-background focus:text-foreground'\n\tconst primaryClassName = 'px-8 py-4 font-bold'\n\tconst bigClassName = 'px-8 py-4 text-xl font-bold'\n\tconst monoClassName = 'px-8 py-4 font-mono text-sm uppercase'\n\tconst className = clsx(baseClassName, {\n\t\t'clip-path-button': clip,\n\t\t[primaryClassName]: varient === 'primary',\n\t\t[bigClassName]: varient === 'big',\n\t\t[monoClassName]: varient === 'mono',\n\t})\n\treturn className\n}\n\nexport function Button({\n\tvarient,\n\tstatus = 'idle',\n\t...props\n}: React.ComponentPropsWithoutRef<'button'> &\n\tParameters<typeof getButtonClassName>[0] & {\n\t\tstatus?: 'pending' | 'success' | 'error' | 'idle'\n\t}) {\n\tconst companion = {\n\t\tpending: <PendingState />,\n\t\tsuccess: <SuccessState />,\n\t\terror: <ErrorState />,\n\t\tidle: null,\n\t}[status]\n\treturn (\n\t\t<div className=\"clip-path-button-outer w-fit border-2 border-foreground bg-foreground\">\n\t\t\t<button\n\t\t\t\t{...props}\n\t\t\t\tclassName={clsx(\n\t\t\t\t\tprops.className,\n\t\t\t\t\tgetButtonClassName({ varient }),\n\t\t\t\t\t'flex justify-center gap-4',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div>{props.children}</div>\n\t\t\t\t{companion}\n\t\t\t</button>\n\t\t</div>\n\t)\n}\n\nexport function ButtonLink({\n\tvarient,\n\t...props\n}: React.ComponentPropsWithoutRef<typeof Link> &\n\tParameters<typeof getButtonClassName>[0]) {\n\treturn (\n\t\t<div className=\"clip-path-button-outer w-fit border-2 border-foreground bg-foreground\">\n\t\t\t<Link\n\t\t\t\t{...props}\n\t\t\t\tclassName={clsx(props.className, getButtonClassName({ varient }))}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["PendingState","jsx","SuccessState","ErrorState","getButtonClassName","varient","clip","baseClassName","primaryClassName","bigClassName","monoClassName","clsx","Button","status","props","companion","jsxs","ButtonLink","Link"],"mappings":"4HAGA,SAASA,GAAe,CACvB,OAAQC,EAAAA,IAAA,OAAA,CAAK,UAAU,4BAA4B,SAAE,IAAA,CAAA,CACtD,CAEA,SAASC,GAAe,CAChB,OAAAD,EAAA,IAAC,QAAK,SAAC,GAAA,CAAA,CACf,CAEA,SAASE,GAAa,CACd,OAAAF,EAAA,IAAC,QAAK,SAAC,GAAA,CAAA,CACf,CAEO,SAASG,EAAmB,CAClC,QAAAC,EACA,KAAAC,EAAO,EACR,EAGG,CACF,MAAMC,EACL,6IACKC,EAAmB,sBACnBC,EAAe,8BACfC,EAAgB,wCAOf,OANWC,EAAKJ,EAAe,CACrC,mBAAoBD,EACpB,CAACE,CAAgB,EAAGH,IAAY,UAChC,CAACI,CAAY,EAAGJ,IAAY,MAC5B,CAACK,CAAa,EAAGL,IAAY,MAAA,CAC7B,CAEF,CAEO,SAASO,EAAO,CACtB,QAAAP,EACA,OAAAQ,EAAS,OACT,GAAGC,CACJ,EAGI,CACH,MAAMC,EAAY,CACjB,cAAUf,EAAa,EAAA,EACvB,cAAUE,EAAa,EAAA,EACvB,YAAQC,EAAW,EAAA,EACnB,KAAM,MACLU,CAAM,EAEP,OAAAZ,EAAAA,IAAC,MAAI,CAAA,UAAU,wEACd,SAAAe,EAAA,KAAC,SAAA,CACC,GAAGF,EACJ,UAAWH,EACVG,EAAM,UACNV,EAAmB,CAAE,QAAAC,EAAS,EAC9B,2BACD,EAEA,SAAA,CAACJ,EAAAA,IAAA,MAAA,CAAK,WAAM,QAAS,CAAA,EACpBc,CAAA,CAAA,CAEH,CAAA,CAAA,CAEF,CAEO,SAASE,EAAW,CAC1B,QAAAZ,EACA,GAAGS,CACJ,EAC2C,CAEzC,OAAAb,EAAAA,IAAC,MAAI,CAAA,UAAU,wEACd,SAAAA,EAAA,IAACiB,EAAA,CACC,GAAGJ,EACJ,UAAWH,EAAKG,EAAM,UAAWV,EAAmB,CAAE,QAAAC,CAAA,CAAS,CAAC,CAAA,CAElE,CAAA,CAAA,CAEF"}
|
|
@@ -154,5 +154,5 @@ ${p.map((A,P)=>`import * as route${P} from ${JSON.stringify(t.routes[A.route.id]
|
|
|
154
154
|
${h?`window.__remixManifest = ${JSON.stringify(Dn(t,s),null,2)};`:""}
|
|
155
155
|
window.__remixRouteModules = {${p.map((A,P)=>`${JSON.stringify(A.route.id)}:route${P}`).join(",")}};
|
|
156
156
|
|
|
157
|
-
import(${JSON.stringify(t.entry.module)});`:" ";return o.createElement(o.Fragment,null,o.createElement("script",O({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Ye(b),type:void 0})),o.createElement("script",O({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Ye(T),type:"module",async:!0})))},[]);if(!c&&typeof __remixContext=="object"&&__remixContext.a)for(let g=0;g<__remixContext.a;g++)v.push(o.createElement(We,{key:g,scriptProps:e,serializeData:S,serializeError:R}));let y=p.map(g=>{let x=t.routes[g.route.id];return(x.imports||[]).concat([x.module])}).flat(1),_=re?[]:t.entry.imports.concat(y);return re?null:o.createElement(o.Fragment,null,h?null:o.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),o.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),Yn(_).map(g=>o.createElement("link",{key:g,rel:"modulepreload",href:g,crossOrigin:e.crossOrigin})),w,v)}function We({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:i}){return typeof document>"u"&&t&&e&&r&&I(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),o.createElement(o.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:o.createElement("script",O({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?o.createElement(zn,{resolve:t.data[e],errorElement:o.createElement(Jn,{dataKey:e,routeId:r,scriptProps:n,serializeError:i}),children:u=>o.createElement("script",O({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,u)}}))}):o.createElement("script",O({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function Jn({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=Wt();return o.createElement("script",O({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function Yn(e){return[...new Set(e)]}function oa(){return Kt()}function la(e){return Gt(e)}function sa(e={}){return Cr(e)}function kt(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}export{zn as A,$n as F,jn as L,ia as M,In as N,tr as R,Bn as S,O as _,sa as a,
|
|
158
|
-
//# sourceMappingURL=components-
|
|
157
|
+
import(${JSON.stringify(t.entry.module)});`:" ";return o.createElement(o.Fragment,null,o.createElement("script",O({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Ye(b),type:void 0})),o.createElement("script",O({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Ye(T),type:"module",async:!0})))},[]);if(!c&&typeof __remixContext=="object"&&__remixContext.a)for(let g=0;g<__remixContext.a;g++)v.push(o.createElement(We,{key:g,scriptProps:e,serializeData:S,serializeError:R}));let y=p.map(g=>{let x=t.routes[g.route.id];return(x.imports||[]).concat([x.module])}).flat(1),_=re?[]:t.entry.imports.concat(y);return re?null:o.createElement(o.Fragment,null,h?null:o.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),o.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),Yn(_).map(g=>o.createElement("link",{key:g,rel:"modulepreload",href:g,crossOrigin:e.crossOrigin})),w,v)}function We({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:i}){return typeof document>"u"&&t&&e&&r&&I(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),o.createElement(o.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:o.createElement("script",O({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?o.createElement(zn,{resolve:t.data[e],errorElement:o.createElement(Jn,{dataKey:e,routeId:r,scriptProps:n,serializeError:i}),children:u=>o.createElement("script",O({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,u)}}))}):o.createElement("script",O({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function Jn({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=Wt();return o.createElement("script",O({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function Yn(e){return[...new Set(e)]}function oa(){return Kt()}function la(e){return Gt(e)}function sa(e={}){return Cr(e)}function kt(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}export{zn as A,$n as F,jn as L,ia as M,In as N,tr as R,Bn as S,O as _,sa as a,Qn as b,la as c,dt as d,Gn as e,ta as f,bn as g,Ae as h,I as i,qn as j,ra as k,na as l,Pt as m,ea as n,Wn as o,z as p,Zn as q,it as r,Cn as s,aa as t,oa as u};
|
|
158
|
+
//# sourceMappingURL=components-Be92gVxW.js.map
|